use std::marker::PhantomData; use crate::{core::{FromParallelIterator, Driver}, ParallelIterator, Executor}; pub struct Collect { iterator: X, marker: PhantomData, } impl Collect { pub fn new(iterator: X) -> Self { Self { iterator, marker: PhantomData, } } } impl<'a, X, T> Driver<'a, T> for Collect where X: ParallelIterator<'a>, T: FromParallelIterator + Send, { fn exec_with(self, executor: E) -> E::Result where E: Executor<'a, T> { T::from_par_iter(executor, self.iterator) } }