vortex_array/arrays/chunked/vtable/
validity.rs1use itertools::Itertools;
5use vortex_error::VortexResult;
6
7use crate::array::ArrayView;
8use crate::array::ValidityVTable;
9use crate::arrays::Chunked;
10use crate::arrays::chunked::ChunkedArrayExt;
11use crate::validity::Validity;
12
13impl ValidityVTable<Chunked> for Chunked {
14 fn validity(array: ArrayView<'_, Chunked>) -> VortexResult<Validity> {
15 let validities = array
16 .chunks()
17 .iter()
18 .map(|chunk| chunk.validity().map(|v| (v, chunk.len())))
19 .try_collect()?;
20 let Some(validity) = Validity::concat(validities) else {
21 return Ok(array.dtype().nullability().into());
23 };
24
25 Ok(validity)
26 }
27}