# rayon-join-macro ![Build status](https://github.com/jakubadamw/rayon-join-macro/workflows/Build/badge.svg) [![crates.io](https://img.shields.io/crates/v/rayon-join-macro.svg)](https://crates.io/crates/rayon-join-macro) [![docs.rs](https://docs.rs/rayon-join-macro/badge.svg)](https://docs.rs/rayon-join-macro/latest) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) A wrapper around `rayon::join` that accepts more than 2 and up to 8 closures to be run in parallel. [Documentation](https://docs.rs/rayon-join-macro/latest/) ```rust #[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); } ```