(
buffer: &mut Vec<u8>,
byte_length: usize,
values_range: Range<usize>,
valid_mask: &[u8],
mut op: F,
)
| 272 | |
| 273 | #[inline] |
| 274 | fn 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 | |
| 296 | impl ValuesBuffer for FixedLenByteArrayBuffer { |
| 297 | fn with_capacity(capacity: usize) -> Self { |
no test coverage detected