vortex_array/arrays/constant/vtable/
validity.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_mask::Mask;
5
6use crate::arrays::ConstantArray;
7use crate::arrays::ConstantVTable;
8use crate::vtable::ValidityVTable;
9
10impl ValidityVTable<ConstantVTable> for ConstantVTable {
11    fn is_valid(array: &ConstantArray, _index: usize) -> bool {
12        !array.scalar().is_null()
13    }
14
15    fn all_valid(array: &ConstantArray) -> bool {
16        !array.scalar().is_null()
17    }
18
19    fn all_invalid(array: &ConstantArray) -> bool {
20        array.scalar().is_null()
21    }
22
23    fn validity_mask(array: &ConstantArray) -> Mask {
24        match array.scalar().is_null() {
25            true => Mask::AllFalse(array.len),
26            false => Mask::AllTrue(array.len),
27        }
28    }
29}