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

Method prefix_bytes_iter

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

Returns an iterator over the first `prefix_len` bytes of each array element, including null values. If `prefix_len` is larger than the element's length, the iterator will return an empty slice (`&[]`).

(&self, prefix_len: usize)

Source from the content-addressed store, hash-verified

387 /// If `prefix_len` is larger than the element's length, the iterator will
388 /// return an empty slice (`&[]`).
389 pub fn prefix_bytes_iter(&self, prefix_len: usize) -> impl Iterator<Item = &[u8]> {
390 self.views().into_iter().map(move |v| {
391 let len = (*v as u32) as usize;
392
393 if len < prefix_len {
394 return &[] as &[u8];
395 }
396
397 if prefix_len <= 4 || len as u32 <= MAX_INLINE_VIEW_LEN {
398 unsafe { StringViewArray::inline_value(v, prefix_len) }
399 } else {
400 let view = ByteView::from(*v);
401 let data = unsafe {
402 self.data_buffers()
403 .get_unchecked(view.buffer_index as usize)
404 };
405 let offset = view.offset as usize;
406 unsafe { data.get_unchecked(offset..offset + prefix_len) }
407 }
408 })
409 }
410
411 /// Returns an iterator over the last `suffix_len` bytes of each array
412 /// element, including null values.

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