vortex_array/arrays/list/compute/
mask.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_error::VortexResult;
5use vortex_mask::Mask;
6
7use crate::ArrayRef;
8use crate::IntoArray;
9use crate::arrays::ListArray;
10use crate::arrays::ListVTable;
11use crate::compute::MaskKernel;
12use crate::compute::MaskKernelAdapter;
13use crate::register_kernel;
14use crate::vtable::ValidityHelper;
15
16impl MaskKernel for ListVTable {
17    fn mask(&self, array: &ListArray, mask: &Mask) -> VortexResult<ArrayRef> {
18        ListArray::try_new(
19            array.elements().clone(),
20            array.offsets().clone(),
21            array.validity().mask(mask),
22        )
23        .map(|a| a.into_array())
24    }
25}
26
27register_kernel!(MaskKernelAdapter(ListVTable).lift());