A wrapper around rayon::join
that accepts more than 2 and up to 8 closures to be run in parallel.
use rayon_join_macro::join;
fn main() {
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);
}