#rayon #parallel #macro

rayon-join-macro

围绕 rayon::join() 的便利的多路宏

2 个版本

0.1.1 2019年10月25日
0.1.0 2019年10月25日

1470Rust 模式

MIT 许可证

6KB
58

rayon-join-macro

Build status crates.io docs.rs License: MIT

一个围绕 rayon::join 的包装器,可以并行执行超过2个且最多8个闭包。

文档

#[macro_use] extern crate rayon_join_macro;

fn main() {
    use rayon_join_macro::ConsTuple;

    fn factorial(n: usize) -> usize {
        if n == 0 { 1 } else { n * factorial(n - 1) }
    }

    let (a, b, c): (u16, String, usize) = join!(
        || (1..=50).sum(),
        || "abc".repeat(3),
        || factorial(8)
    );

    assert_eq!(a, 1275);
    assert_eq!(b, "abcabcabc");
    assert_eq!(c, 40320);
}

依赖项

~1.5MB
~25K SLoC