run_pool_parallel_rayon

Function run_pool_parallel_rayon 

Source
pub fn run_pool_parallel_rayon<Key, Data, CommonData, F>(
    iter: impl Iterator<Item = Key> + Send,
    common_data: &CommonData,
    closure: F,
) -> Vec<Data>
where CommonData: Sync, Key: Eq + Send, Data: Send, F: Sync + Fn(&Key, &CommonData) -> Data,
Expand description

Run a parallel pool using external crate rayon.

§Example.

let iter = 0..1000;
let c = 5;
let result = run_pool_parallel_rayon(iter, &c, |i, c1| i * i * c1);
assert_eq!(result[687], 687 * 687 * c);
assert_eq!(result[10], 10 * 10 * c);

§Panic.

panic if the closure panic at any point during the evaluation

let iter = 0..10;
let result = run_pool_parallel_rayon(iter, &(), |_, _| panic!("message"));