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

Function move_values

parquet/src/arrow/array_reader/fixed_len_byte_array.rs:274–294  ·  view source on GitHub ↗
(
    buffer: &mut Vec<u8>,
    byte_length: usize,
    values_range: Range<usize>,
    valid_mask: &[u8],
    mut op: F,
)

Source from the content-addressed store, hash-verified

272
273#[inline]
274fn move_values<F>(
275 buffer: &mut Vec<u8>,
276 byte_length: usize,
277 values_range: Range<usize>,
278 valid_mask: &[u8],
279 mut op: F,
280) where
281 F: FnMut(&mut Vec<u8>, usize, usize, usize),
282{
283 for (value_pos, level_pos) in values_range.rev().zip(iter_set_bits_rev(valid_mask)) {
284 debug_assert!(level_pos >= value_pos);
285 if level_pos <= value_pos {
286 break;
287 }
288
289 let level_pos_bytes = level_pos * byte_length;
290 let value_pos_bytes = value_pos * byte_length;
291
292 op(buffer, level_pos_bytes, value_pos_bytes, byte_length)
293 }
294}
295
296impl ValuesBuffer for FixedLenByteArrayBuffer {
297 fn with_capacity(capacity: usize) -> Self {

Callers 1

pad_nullsMethod · 0.85

Calls 2

iter_set_bits_revFunction · 0.85
zipMethod · 0.80

Tested by

no test coverage detected