Skip to main content

vortex_array/arrays/primitive/vtable/
operations.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_dtype::match_each_native_ptype;
5use vortex_error::VortexResult;
6
7use crate::arrays::PrimitiveArray;
8use crate::arrays::PrimitiveVTable;
9use crate::scalar::Scalar;
10use crate::vtable::OperationsVTable;
11
12impl OperationsVTable<PrimitiveVTable> for PrimitiveVTable {
13    fn scalar_at(array: &PrimitiveArray, index: usize) -> VortexResult<Scalar> {
14        Ok(match_each_native_ptype!(array.ptype(), |T| {
15            Scalar::primitive(array.as_slice::<T>()[index], array.dtype().nullability())
16        }))
17    }
18}