Function mask

Source
pub fn mask(array: &dyn Array, mask: &Mask) -> VortexResult<ArrayRef>
Expand description

Replace values with null where the mask is true.

The returned array is nullable but otherwise has the same dtype and length as array.

ยงExamples

use vortex_array::IntoArray;
use vortex_array::arrays::{BoolArray, PrimitiveArray};
use vortex_array::compute::{ mask};
use vortex_mask::Mask;
use vortex_scalar::Scalar;

let array =
    PrimitiveArray::from_option_iter([Some(0i32), None, Some(1i32), None, Some(2i32)]);
let mask_array = Mask::try_from(
    &BoolArray::from_iter([true, false, false, false, true]),
)
.unwrap();

let masked = mask(array.as_ref(), &mask_array).unwrap();
assert_eq!(masked.len(), 5);
assert!(!masked.is_valid(0).unwrap());
assert!(!masked.is_valid(1).unwrap());
assert_eq!(masked.scalar_at(2).unwrap(), Scalar::from(Some(1)));
assert!(!masked.is_valid(3).unwrap());
assert!(!masked.is_valid(4).unwrap());