没有为类型找到名为`par_iter`的方法

时间:2018-04-26 03:36:30

标签: rust rayon

我正在尝试使用人造丝包来并行化以下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());
    |                            ^^^^^^^^

我错过了什么?

1 个答案:

答案 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());