use vortex_error::VortexResult;
use vortex_error::vortex_bail;
use crate::ExecutionCtx;
use crate::array::ArrayView;
use crate::array::VTable;
use crate::scalar::Scalar;
use crate::vtable::NotSupported;
pub trait OperationsVTable<V: VTable> {
fn scalar_at(
array: ArrayView<'_, V>,
index: usize,
ctx: &mut ExecutionCtx,
) -> VortexResult<Scalar>;
}
impl<V: VTable> OperationsVTable<V> for NotSupported {
fn scalar_at(
array: ArrayView<'_, V>,
_index: usize,
_ctx: &mut ExecutionCtx,
) -> VortexResult<Scalar> {
vortex_bail!(
"Legacy scalar_at operation is not supported for {} arrays",
array.encoding_id()
)
}
}