Skip to main content

vortex_array/arrays/varbinview/vtable/
operations.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_error::VortexResult;
5
6use crate::ExecutionCtx;
7use crate::array::ArrayView;
8use crate::array::OperationsVTable;
9use crate::arrays::VarBinView;
10use crate::arrays::varbin::varbin_scalar_unchecked;
11use crate::scalar::Scalar;
12
13impl OperationsVTable<VarBinView> for VarBinView {
14    type ProbeState = ();
15
16    fn scalar_at(
17        array: ArrayView<'_, VarBinView>,
18        index: usize,
19        _ctx: &mut ExecutionCtx,
20    ) -> VortexResult<Scalar> {
21        // SAFETY: `VarBinViewArray` has a Utf8 or Binary dtype, and it checks that all Utf8 data
22        // is valid UTF-8.
23        Ok(unsafe { varbin_scalar_unchecked(array.bytes_at(index), array.dtype()) })
24    }
25}