vortex_array/arrays/struct_/vtable/
visitor.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use itertools::Itertools;
5
6use crate::arrays::struct_::{StructArray, StructVTable};
7use crate::vtable::{ValidityHelper, VisitorVTable};
8use crate::{ArrayBufferVisitor, ArrayChildVisitor};
9
10impl VisitorVTable<StructVTable> for StructVTable {
11    fn visit_buffers(_array: &StructArray, _visitor: &mut dyn ArrayBufferVisitor) {}
12
13    fn visit_children(array: &StructArray, visitor: &mut dyn ArrayChildVisitor) {
14        visitor.visit_validity(array.validity(), array.len());
15        for (name, field) in array.names().iter().zip_eq(array.fields().iter()) {
16            visitor.visit_child(name.as_ref(), field);
17        }
18    }
19}