rayon-rs/rayon

A `#[parallelized]` attribute

Open

#553 opened on Mar 12, 2018

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

Repository metrics

Stars
 (9,410 stars)
PR merge metrics
 (Avg merge 9m) (2 merged PRs in 30d)

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