vortex_array/compute/
mask.rs1use std::ops::Not;
5
6use vortex_error::VortexResult;
7use vortex_mask::Mask;
8
9use crate::Array;
10use crate::ArrayRef;
11use crate::IntoArray;
12use crate::arrays::ConstantArray;
13use crate::builtins::ArrayBuiltins;
14use crate::scalar::Scalar;
15
16#[deprecated(note = "use array.mask(mask_array) via ArrayBuiltins instead")]
24pub fn mask(array: &dyn Array, mask: &Mask) -> VortexResult<ArrayRef> {
25 let mask = mask.not();
26 match mask {
27 Mask::AllTrue(_) => array.to_array().cast(array.dtype().as_nullable()),
28 Mask::AllFalse(_) => Ok(ConstantArray::new(
29 Scalar::null(array.dtype().as_nullable()),
30 array.len(),
31 )
32 .into_array()),
33 Mask::Values(val) => array.to_array().mask(val.into_array()),
34 }
35}