Skip to main content

vortex_array/arrays/extension/vtable/
visitor.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use crate::ArrayBufferVisitor;
5use crate::ArrayChildVisitor;
6use crate::ArrayRef;
7use crate::arrays::extension::ExtensionArray;
8use crate::arrays::extension::ExtensionVTable;
9use crate::vtable::VisitorVTable;
10
11impl VisitorVTable<ExtensionVTable> for ExtensionVTable {
12    fn visit_buffers(_array: &ExtensionArray, _visitor: &mut dyn ArrayBufferVisitor) {}
13
14    fn nbuffers(_array: &ExtensionArray) -> usize {
15        0
16    }
17
18    fn visit_children(array: &ExtensionArray, visitor: &mut dyn ArrayChildVisitor) {
19        visitor.visit_child("storage", &array.storage);
20    }
21
22    fn nchildren(_array: &ExtensionArray) -> usize {
23        1
24    }
25
26    fn nth_child(array: &ExtensionArray, idx: usize) -> Option<ArrayRef> {
27        match idx {
28            0 => Some(array.storage.clone()),
29            _ => None,
30        }
31    }
32}