vortex_datetime_parts/compute/
take.rs1use vortex_array::compute::{TakeKernel, TakeKernelAdapter, take};
2use vortex_array::{Array, ArrayRef, IntoArray, register_kernel};
3use vortex_error::VortexResult;
4
5use crate::{DateTimePartsArray, DateTimePartsVTable};
6
7impl TakeKernel for DateTimePartsVTable {
8 fn take(&self, array: &DateTimePartsArray, indices: &dyn Array) -> VortexResult<ArrayRef> {
9 Ok(DateTimePartsArray::try_new(
10 array.dtype().clone(),
11 take(array.days(), indices)?,
12 take(array.seconds(), indices)?,
13 take(array.subseconds(), indices)?,
14 )?
15 .into_array())
16 }
17}
18
19register_kernel!(TakeKernelAdapter(DateTimePartsVTable).lift());