rayon-rs/rayon

A `#[parallelized]` attribute

Aperta

#553 aperta il 12 mar 2018

 (10 commenti) (38 reazioni) (0 assegnatari)Rust (450 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (9410 stelle)
Metriche merge PR
 (Merge medio 9m) (2 PR mergiate in 30 g)

Descrizione

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.

Guida contributor