arrow_rayon/parallel_array/
parallel_date_array.rs1use arrow_array::types::{Date32Type, Date64Type};
2use arrow_array::{Date32Array, Date64Array};
3use rayon::iter::ParallelIterator;
4
5use crate::parallel_primitive_array::{ParallelPrimitiveArray, ParallelPrimitiveArrayRef};
6
7pub type ParallelDate32Array = ParallelPrimitiveArray<Date32Type>;
8pub type ParallelDate32ArrayRef<'data> = ParallelPrimitiveArrayRef<'data, Date32Type>;
9pub type ParallelDate64Array = ParallelPrimitiveArray<Date64Type>;
10pub type ParallelDate64ArrayRef<'data> = ParallelPrimitiveArrayRef<'data, Date64Type>;
11
12pub trait Date32ArrayRefParallelIterator<'data> {
13 type Iter: ParallelIterator<Item = Option<i32>>;
14
15 fn par_iter(&'data self) -> Self::Iter;
16}
17
18impl<'data> Date32ArrayRefParallelIterator<'data> for Date32Array {
19 type Iter = ParallelDate32ArrayRef<'data>;
20
21 fn par_iter(&'data self) -> Self::Iter {
22 ParallelDate32ArrayRef::new(self)
23 }
24}
25
26pub trait Date64ArrayRefParallelIterator<'data> {
27 type Iter: ParallelIterator<Item = Option<i64>>;
28
29 fn par_iter(&'data self) -> Self::Iter;
30}
31
32impl<'data> Date64ArrayRefParallelIterator<'data> for Date64Array {
33 type Iter = ParallelDate64ArrayRef<'data>;
34
35 fn par_iter(&'data self) -> Self::Iter {
36 ParallelDate64ArrayRef::new(self)
37 }
38}