vortex_array/arrays/varbinview/compute/
optimize.rs
1use vortex_error::VortexResult;
2
3use crate::accessor::ArrayAccessor;
4use crate::arrays::{VarBinViewArray, VarBinViewEncoding};
5use crate::builders::{ArrayBuilder, VarBinViewBuilder};
6use crate::compute::OptimizeFn;
7use crate::{Array, ArrayRef};
8
9impl OptimizeFn<&VarBinViewArray> for VarBinViewEncoding {
10 fn optimize(&self, array: &VarBinViewArray) -> VortexResult<ArrayRef> {
11 let mut builder = VarBinViewBuilder::with_capacity(array.dtype().clone(), array.len());
12
13 array.with_iterator(|iter| {
14 for item in iter {
15 builder.append_option(item);
16 }
17 })?;
18
19 Ok(builder.finish())
20 }
21}