vortex_array/arrays/bool/compute/
invert.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use std::ops::Not;
5
6use vortex_error::VortexResult;
7
8use crate::arrays::{BoolArray, BoolVTable};
9use crate::compute::{InvertKernel, InvertKernelAdapter};
10use crate::vtable::ValidityHelper;
11use crate::{ArrayRef, IntoArray, register_kernel};
12
13impl InvertKernel for BoolVTable {
14    fn invert(&self, array: &BoolArray) -> VortexResult<ArrayRef> {
15        Ok(BoolArray::new(array.boolean_buffer().not(), array.validity().clone()).into_array())
16    }
17}
18
19register_kernel!(InvertKernelAdapter(BoolVTable).lift());