vortex_array/arrays/constant/
encode.rs

1use 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}