vortex_sparse/compute/
invert.rs1use vortex_array::compute::{InvertFn, invert};
2use vortex_array::{Array, ArrayRef};
3use vortex_error::VortexResult;
4
5use crate::{SparseArray, SparseEncoding};
6
7impl InvertFn<&SparseArray> for SparseEncoding {
8 fn invert(&self, array: &SparseArray) -> VortexResult<ArrayRef> {
9 let inverted_fill = array.fill_scalar().as_bool().invert().into_scalar();
10 let inverted_patches = array
11 .patches()
12 .clone()
13 .map_values(|values| invert(&values))?;
14 SparseArray::try_new_from_patches(inverted_patches, inverted_fill).map(|a| a.into_array())
15 }
16}