MCPcopy Create free account
hub / github.com/apache/arrow-rs / suffix_bytes_iter

Method suffix_bytes_iter

arrow-array/src/array/byte_view_array.rs:419–439  ·  view source on GitHub ↗

Returns an iterator over the last `suffix_len` bytes of each array element, including null values. Note that for [`StringViewArray`] the last bytes may start in the middle of a UTF-8 codepoint, and thus may not be a valid `&str`. If `suffix_len` is larger than the element's length, the iterator will return an empty slice (`&[]`).

(&self, suffix_len: usize)

Source from the content-addressed store, hash-verified

417 /// If `suffix_len` is larger than the element's length, the iterator will
418 /// return an empty slice (`&[]`).
419 pub fn suffix_bytes_iter(&self, suffix_len: usize) -> impl Iterator<Item = &[u8]> {
420 self.views().into_iter().map(move |v| {
421 let len = (*v as u32) as usize;
422
423 if len < suffix_len {
424 return &[] as &[u8];
425 }
426
427 if len as u32 <= MAX_INLINE_VIEW_LEN {
428 unsafe { &StringViewArray::inline_value(v, len)[len - suffix_len..] }
429 } else {
430 let view = ByteView::from(*v);
431 let data = unsafe {
432 self.data_buffers()
433 .get_unchecked(view.buffer_index as usize)
434 };
435 let offset = view.offset as usize;
436 unsafe { data.get_unchecked(offset + len - suffix_len..offset + len) }
437 }
438 })
439 }
440
441 /// Return an iterator over the length of each array element, including null values.
442 ///

Callers 2

evaluate_arrayMethod · 0.80
evaluate_arrayMethod · 0.80

Calls 3

viewsMethod · 0.80
data_buffersMethod · 0.80
into_iterMethod · 0.45

Tested by

no test coverage detected