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