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::ArrayRef;
9use crate::IntoArray;
10use crate::arrays::BoolArray;
11use crate::arrays::BoolVTable;
12use crate::compute::InvertKernel;
13use crate::compute::InvertKernelAdapter;
14use crate::register_kernel;
15use crate::vtable::ValidityHelper;
16
17impl InvertKernel for BoolVTable {
18    fn invert(&self, array: &BoolArray) -> VortexResult<ArrayRef> {
19        Ok(
20            BoolArray::from_bit_buffer(array.bit_buffer().not(), array.validity().clone())
21                .into_array(),
22        )
23    }
24}
25
26register_kernel!(InvertKernelAdapter(BoolVTable).lift());