vortex_array/arrays/list/compute/
mask.rs

1use vortex_error::VortexResult;
2use vortex_mask::Mask;
3
4use crate::arrays::{ListArray, ListVTable};
5use crate::compute::{MaskKernel, MaskKernelAdapter};
6use crate::vtable::ValidityHelper;
7use crate::{ArrayRef, IntoArray, register_kernel};
8
9impl MaskKernel for ListVTable {
10    fn mask(&self, array: &ListArray, mask: &Mask) -> VortexResult<ArrayRef> {
11        ListArray::try_new(
12            array.elements().clone(),
13            array.offsets().clone(),
14            array.validity().mask(mask)?,
15        )
16        .map(|a| a.into_array())
17    }
18}
19
20register_kernel!(MaskKernelAdapter(ListVTable).lift());