vortex_array/arrays/constant/vtable/
encode.rs1use vortex_error::VortexResult;
5
6use crate::Canonical;
7use crate::arrays::ConstantArray;
8use crate::arrays::ConstantVTable;
9use crate::vtable::EncodeVTable;
10
11impl EncodeVTable<ConstantVTable> for ConstantVTable {
12 fn encode(
13 _vtable: &ConstantVTable,
14 canonical: &Canonical,
15 _like: Option<&ConstantArray>,
16 ) -> VortexResult<Option<ConstantArray>> {
17 let canonical = canonical.as_ref();
18 if canonical.is_constant() {
19 let scalar = canonical.scalar_at(0);
20 Ok(Some(ConstantArray::new(scalar, canonical.len())))
21 } else {
22 Ok(None)
23 }
24 }
25}