vortex-array 0.54.0

Vortex in memory columnar data format
Documentation
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use vortex_error::VortexResult;

use crate::Canonical;
use crate::arrays::{ConstantArray, ConstantEncoding, ConstantVTable};
use crate::vtable::EncodeVTable;

impl EncodeVTable<ConstantVTable> for ConstantVTable {
    fn encode(
        _encoding: &ConstantEncoding,
        canonical: &Canonical,
        _like: Option<&ConstantArray>,
    ) -> VortexResult<Option<ConstantArray>> {
        let canonical = canonical.as_ref();
        if canonical.is_constant() {
            let scalar = canonical.scalar_at(0);
            Ok(Some(ConstantArray::new(scalar, canonical.len())))
        } else {
            Ok(None)
        }
    }
}