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::ArrayBufferVisitor;
7use crate::ArrayChildVisitor;
8use crate::arrays::struct_::StructArray;
9use crate::arrays::struct_::StructVTable;
10use crate::vtable::ValidityHelper;
11use crate::vtable::VisitorVTable;
12
13impl VisitorVTable<StructVTable> for StructVTable {
14    fn visit_buffers(_array: &StructArray, _visitor: &mut dyn ArrayBufferVisitor) {}
15
16    fn visit_children(array: &StructArray, visitor: &mut dyn ArrayChildVisitor) {
17        visitor.visit_validity(array.validity(), array.len());
18        for (name, field) in array.names().iter().zip_eq(array.fields().iter()) {
19            visitor.visit_child(name.as_ref(), field);
20        }
21    }
22}