vortex_array/arrays/bool/vtable/
visitor.rs1use crate::ArrayBufferVisitor;
5use crate::ArrayChildVisitor;
6use crate::ArrayRef;
7use crate::arrays::BoolArray;
8use crate::arrays::BoolVTable;
9use crate::vtable::VisitorVTable;
10use crate::vtable::validity_nchildren;
11use crate::vtable::validity_to_child;
12
13impl VisitorVTable<BoolVTable> for BoolVTable {
14 fn visit_buffers(array: &BoolArray, visitor: &mut dyn ArrayBufferVisitor) {
15 visitor.visit_buffer_handle("bits", &array.bits);
16 }
17
18 fn nbuffers(_array: &BoolArray) -> usize {
19 1
20 }
21
22 fn visit_children(array: &BoolArray, visitor: &mut dyn ArrayChildVisitor) {
23 visitor.visit_validity(&array.validity, array.len());
24 }
25
26 fn nchildren(array: &BoolArray) -> usize {
27 validity_nchildren(&array.validity)
28 }
29
30 fn nth_child(array: &BoolArray, idx: usize) -> Option<ArrayRef> {
31 match idx {
32 0 => validity_to_child(&array.validity, array.len()),
33 _ => None,
34 }
35 }
36}