vortex_fastlanes/rle/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::VisitorVTable;
7
8use super::RLEVTable;
9use crate::RLEArray;
10
11impl VisitorVTable<RLEVTable> for RLEVTable {
12    fn visit_buffers(_array: &RLEArray, _visitor: &mut dyn ArrayBufferVisitor) {
13        // RLE stores all data in child arrays, no direct buffers
14    }
15
16    fn visit_children(array: &RLEArray, visitor: &mut dyn ArrayChildVisitor) {
17        visitor.visit_child("values", array.values());
18        visitor.visit_child("indices", array.indices());
19        visitor.visit_child("values_idx_offsets", array.values_idx_offsets());
20        // Don't call visit_validity since the nullability is stored in the indices array.
21    }
22}