Trait threaded_map::ThreadedMappable
source · pub trait ThreadedMappable<F, O>where
Self: Iterator,
F: Fn(<Self as Iterator>::Item) -> <O as Iterator>::Item + Send + Clone,
<Self as Iterator>::Item: Send,
O: Iterator,
O::Item: Send + Sync,{
// Required method
fn parallel_map(self, f: F, num_threads: Option<usize>) -> O;
}Required Methods§
sourcefn parallel_map(self, f: F, num_threads: Option<usize>) -> O
fn parallel_map(self, f: F, num_threads: Option<usize>) -> O
Maps items of an iterator in parallel while conserving their order
Examples
use threaded_map::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);