vortex_array/arrays/varbin/compute/
is_constant.rs1use vortex_error::VortexResult;
2
3use crate::accessor::ArrayAccessor;
4use crate::arrays::{VarBinArray, VarBinEncoding};
5use crate::compute::{IsConstantFn, IsConstantOpts};
6
7impl IsConstantFn<&VarBinArray> for VarBinEncoding {
8 fn is_constant(
9 &self,
10 array: &VarBinArray,
11 _opts: &IsConstantOpts,
12 ) -> VortexResult<Option<bool>> {
13 array.with_iterator(compute_is_constant).map(Some)
14 }
15}
16
17pub(super) fn compute_is_constant(iter: &mut dyn Iterator<Item = Option<&[u8]>>) -> bool {
18 let Some(first_value) = iter.next() else {
19 return false;
20 };
21 for v in iter {
22 if v != first_value {
23 return false;
24 }
25 }
26 true
27}