pub trait ThreadedMappable<F, O>where
    Self: Iterator + Sized,
    F: Fn(<Self as Iterator>::Item) -> O + Send + Clone,
    <Self as Iterator>::Item: Send,
    O: Send + Sync,{
    // Provided method
    fn parallel_map(
        self,
        f: F,
        num_threads: Option<usize>
    ) -> ThreadedMap<Self, F, O>  { ... }
}

Provided Methods§

source

fn parallel_map( self, f: F, num_threads: Option<usize> ) -> ThreadedMap<Self, F, O>

Maps items of an iterator in parallel while conserving their order

Examples
use parallel_itertools::ThreadedMappable;
let items = vec![1, 2, 3, 4, 5, 6];
let target: Vec<_> = items.iter().map(i32::to_string).collect();

let result: Vec<_> = items
    .into_iter()
    .parallel_map(|item| item.to_string(), None)
    .collect();

assert_eq!(result, target);

Implementors§

source§

impl<I, F, O> ThreadedMappable<F, O> for Iwhere I: Iterator, F: Fn(<I as Iterator>::Item) -> O + Send + Clone, <I as Iterator>::Item: Send, O: Send + Sync,