use self::scan::Scan;
use rayon::prelude::ParallelIterator;
mod scan;
pub trait ScanParallelIterator: ParallelIterator {
fn scan<F>(self, scan_op: F, identity: Self::Item) -> Scan<Self::Item, F>
where
F: Fn(&Self::Item, &Self::Item) -> Self::Item + Sync + Send,
<Self as ParallelIterator>::Item: Send + Sync,
{
scan::scan(self, scan_op, identity)
}
}
impl<T: ParallelIterator> ScanParallelIterator for T {}