rayon-rs/rayon

A `#[parallelized]` attribute

Open

#553 opened on Mar 12, 2018

View on GitHub
 (10 comments) (38 reactions) (0 assignees)Rust (9,410 stars) (450 forks)batch import
enhancementhelp wanted

Description

Once custom attributes are stable, I think it would be great to have an attribute that transforms a for loop into a parallel iterator for_each call:

#[parallelized]
for x in 0..100 {
    println!("{}", x);
}

Equivalent to:

(0..100).into_par_iter().for_each(|x| println!("{}", x));

This would be analogous to futures-await's #[async] attribute, which generates a for loop that processes a Stream.

The one nit would be that early returns would be a mistake, hopefully a compiler error, and you would probably want to do what you can to catch them while expanding the attribute.

Contributor guide