use orx_parallel::*;
use std::sync::mpsc::channel;
fn for_each() {
let (sender, receiver) = channel();
(0..5)
.into_par()
.using_clone(sender)
.for_each(|s, x| s.send(x).unwrap());
let mut res: Vec<_> = receiver.iter().collect();
res.sort();
assert_eq!(&res[..], &[0, 1, 2, 3, 4])
}
fn map() {
let (sender, receiver) = channel();
let a: Vec<_> = (0..5)
.into_par() .using_clone(sender)
.map(|s, x| {
s.send(x).unwrap(); x })
.collect();
let mut b: Vec<_> = receiver
.iter() .collect(); b.sort();
assert_eq!(a, b);
}
fn main() {
for_each();
map();
}