Skip to main content

vortex_array/arrays/dict/vtable/
visitor.rs

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