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

Function build_extend

arrow-data/src/transform/variable_size.rs:42–60  ·  view source on GitHub ↗
(
    array: &ArrayData,
)

Source from the content-addressed store, hash-verified

40}
41
42pub(super) fn build_extend<T: ArrowNativeType + Integer + CheckedAdd + AsPrimitive<usize>>(
43 array: &ArrayData,
44) -> Extend<'_> {
45 let offsets = array.buffer::<T>(0);
46 let values = array.buffers()[1].as_slice();
47 Box::new(
48 move |mutable: &mut _MutableArrayData, _, start: usize, len: usize| {
49 let offset_buffer = &mut mutable.buffer1;
50 let values_buffer = &mut mutable.buffer2;
51
52 // this is safe due to how offset is built. See details on `get_last_offset`
53 let last_offset = unsafe { get_last_offset(offset_buffer) };
54
55 extend_offsets::<T>(offset_buffer, last_offset, &offsets[start..start + len + 1]);
56 // values
57 extend_offset_values::<T>(values_buffer, offsets, values, start, len);
58 },
59 )
60}
61
62pub(super) fn extend_nulls<T: ArrowNativeType>(mutable: &mut _MutableArrayData, len: usize) {
63 let offset_buffer = &mut mutable.buffer1;

Callers

nothing calls this directly

Calls 3

get_last_offsetFunction · 0.85
as_sliceMethod · 0.45
buffersMethod · 0.45

Tested by

no test coverage detected