我正在尝试使用人造丝包来并行化以下iter调用
https://github.com/vishpat/stl/blob/master/src/lib.rs#L315
并用par_iter替换iter调用但得到以下编译错误
error[E0599]: no method named `par_iter` found for type `std::vec::Vec` in the current scope --> src/lib.rs:221:28 | 221 | self.triangles.par_iter().map(|triangle| triangle.calculate_normals()); | ^^^^^^^^
我错过了什么?
答案 0 :(得分:2)
您可能已经知道rayon crate必须添加到Cargo.toml
并声明为lib.rs
。
然后将序言添加到mod parser
,而不是添加到根箱子中:
pub mod parser {
use std::fs::File;
use std::io::Read;
use std;
use rayon::prelude::*;
最后,你有一个可变的迭代器,使用par_iter_mut
:
model.triangles.par_iter_mut().for_each(|triangle| triangle.calculate_normal());