vortex_array/arrays/scalar_fn/
slice.rs1use std::ops::Range;
5
6use vortex_error::VortexResult;
7
8use crate::ArrayRef;
9use crate::IntoArray;
10use crate::arrays::ScalarFnArray;
11use crate::arrays::ScalarFnVTable;
12use crate::arrays::SliceReduce;
13
14impl SliceReduce for ScalarFnVTable {
15 fn slice(array: &Self::Array, range: Range<usize>) -> VortexResult<Option<ArrayRef>> {
16 let children: Vec<_> = array
17 .children()
18 .iter()
19 .map(|c| c.slice(range.clone()))
20 .collect::<VortexResult<_>>()?;
21
22 Ok(Some(
23 ScalarFnArray {
24 scalar_fn: array.scalar_fn.clone(),
25 dtype: array.dtype.clone(),
26 len: range.len(),
27 children,
28 stats: Default::default(),
29 }
30 .into_array(),
31 ))
32 }
33}