vortex_fastlanes/bitpacking/vtable/
visitor.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_array::ArrayBufferVisitor;
5use vortex_array::ArrayChildVisitor;
6use vortex_array::vtable::ValidityHelper;
7use vortex_array::vtable::VisitorVTable;
8
9use crate::BitPackedArray;
10use crate::BitPackedVTable;
11
12impl VisitorVTable<BitPackedVTable> for BitPackedVTable {
13    fn visit_buffers(array: &BitPackedArray, visitor: &mut dyn ArrayBufferVisitor) {
14        visitor.visit_buffer(array.packed());
15    }
16
17    fn visit_children(array: &BitPackedArray, visitor: &mut dyn ArrayChildVisitor) {
18        if let Some(patches) = array.patches() {
19            visitor.visit_patches(patches);
20        }
21        visitor.visit_validity(array.validity(), array.len());
22    }
23}