RustのRayonでIteratorを.par_iter()したいなら、.par_bridge()を使うと良さそう
やりたいこと
Iteratorに.par_iter()ができない(コンパイルエラー)。
.par_bridge()なら行けるみたい。
使用例
code:rs
use rayon::iter::ParallelBridge;
use rayon::prelude::ParallelIterator;
use std::sync::mpsc::channel;
fn main() {
let rx = {
let (tx, rx) = channel();
tx.send("one!").unwrap();
tx.send("two!").unwrap();
tx.send("three!").unwrap();
rx
};
let mut output: Vec<&'static str> = rx.into_iter().par_bridge().collect();
output.sort_unstable();
for x in &output {
println!("{}", x);
}
}