vortex_array/arrays/constant/vtable/
visitor.rs1use vortex_buffer::ByteBufferMut;
5
6use crate::ArrayBufferVisitor;
7use crate::ArrayChildVisitor;
8use crate::ArrayRef;
9use crate::arrays::ConstantArray;
10use crate::arrays::ConstantVTable;
11use crate::buffer::BufferHandle;
12use crate::scalar::ScalarValue;
13use crate::vtable::VisitorVTable;
14
15impl VisitorVTable<ConstantVTable> for ConstantVTable {
16 fn visit_buffers(array: &ConstantArray, visitor: &mut dyn ArrayBufferVisitor) {
17 let buffer = ScalarValue::to_proto_bytes::<ByteBufferMut>(array.scalar.value()).freeze();
18 visitor.visit_buffer_handle("scalar", &BufferHandle::new_host(buffer));
19 }
20
21 fn nbuffers(_array: &ConstantArray) -> usize {
22 1
23 }
24
25 fn visit_children(_array: &ConstantArray, _visitor: &mut dyn ArrayChildVisitor) {}
26
27 fn nchildren(_array: &ConstantArray) -> usize {
28 0
29 }
30
31 fn nth_child(_array: &ConstantArray, _idx: usize) -> Option<ArrayRef> {
32 None
33 }
34}