use vortex_error::VortexResult;
use crate::ExecutionCtx;
use crate::array::ArrayView;
use crate::array::OperationsVTable;
use crate::arrays::Primitive;
use crate::match_each_native_ptype;
use crate::scalar::Scalar;
impl OperationsVTable<Primitive> for Primitive {
fn scalar_at(
array: ArrayView<'_, Primitive>,
index: usize,
_ctx: &mut ExecutionCtx,
) -> VortexResult<Scalar> {
Ok(match_each_native_ptype!(array.ptype(), |T| {
Scalar::primitive(array.as_slice::<T>()[index], array.dtype().nullability())
}))
}
}