vortex_array/arrays/constant/vtable/
validity.rs1use vortex_error::VortexResult;
5use vortex_mask::Mask;
6
7use crate::arrays::ConstantArray;
8use crate::arrays::ConstantVTable;
9use crate::validity::Validity;
10use crate::vtable::ValidityVTable;
11
12impl ValidityVTable<ConstantVTable> for ConstantVTable {
13 fn is_valid(array: &ConstantArray, _index: usize) -> bool {
14 !array.scalar().is_null()
15 }
16
17 fn all_valid(array: &ConstantArray) -> bool {
18 !array.scalar().is_null()
19 }
20
21 fn all_invalid(array: &ConstantArray) -> bool {
22 array.scalar().is_null()
23 }
24
25 fn validity(array: &ConstantArray) -> VortexResult<Validity> {
26 Ok(if array.scalar().is_null() {
27 Validity::AllInvalid
28 } else {
29 Validity::AllValid
30 })
31 }
32
33 fn validity_mask(array: &ConstantArray) -> Mask {
34 match array.scalar().is_null() {
35 true => Mask::AllFalse(array.len),
36 false => Mask::AllTrue(array.len),
37 }
38 }
39}