vortex_array/arrays/chunked/vtable/
visitor.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use crate::arrays::{ChunkedArray, ChunkedVTable, PrimitiveArray};
5use crate::validity::Validity;
6use crate::vtable::VisitorVTable;
7use crate::{ArrayBufferVisitor, ArrayChildVisitor};
8
9impl VisitorVTable<ChunkedVTable> for ChunkedVTable {
10    fn visit_buffers(_array: &ChunkedArray, _visitor: &mut dyn ArrayBufferVisitor) {}
11
12    fn visit_children(array: &ChunkedArray, visitor: &mut dyn ArrayChildVisitor) {
13        let chunk_offsets =
14            PrimitiveArray::new(array.chunk_offsets().clone(), Validity::NonNullable);
15        visitor.visit_child("chunk_offsets", chunk_offsets.as_ref());
16
17        for (idx, chunk) in array.chunks().iter().enumerate() {
18            visitor.visit_child(format!("chunks[{idx}]").as_str(), chunk);
19        }
20    }
21}