Trait threaded_map::ThreadedMappable
source · 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§
sourcefn parallel_map(
self,
f: F,
num_threads: Option<usize>
) -> ThreadedMap<Self, F, O> ⓘ
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 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);