3 releases (breaking)
0.3.0 | Jun 27, 2023 |
---|---|
0.2.0 | May 21, 2021 |
0.1.0 | Feb 22, 2019 |
#181 in Concurrency
231,234 downloads per month
Used in 117 crates
(7 directly)
28KB
728 lines
rayon-cond
Experimental iterator wrapper that is conditionally parallel or serial, using
Rayon's ParallelIterator
or the standard Iterator
respectively.
Usage
First add this crate to your Cargo.toml
:
[dependencies]
rayon-cond = "0.3"
Then in your code, it may be used something like this:
use rayon_cond::CondIterator;
fn main() {
let args: Vec<_> = std::env::args().collect();
// Run in parallel if there are an even number of args
let par = args.len() % 2 == 0;
CondIterator::new(args, par).enumerate().for_each(|(i, arg)| {
println!("arg {}: {:?}", i, arg);
});
}
rayon-cond
currently requires rustc 1.38.0
or greater.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~1.5MB
~33K SLoC