#rayon #parallel #macro

rayon-join-macro

A convenience n-nary macro around rayon::join()

2 releases

0.1.1 Oct 25, 2019
0.1.0 Oct 25, 2019

#35 in #rayon

MIT license

6KB
58 lines

rayon-join-macro

Build status crates.io docs.rs License: MIT

A wrapper around rayon::join that accepts more than 2 and up to 8 closures to be run in parallel.

Documentation

#[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);
}

Dependencies

~1.5MB
~25K SLoC