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