#parallel-iterator #flags #toggle #parallelism #sequential #features #rayon

maybe_parallel_iterator

使用功能标志切换并行性!

10 个重大版本发布

0.12.0 2022 年 6 月 27 日
0.10.0 2022 年 5 月 27 日

#693 in 并发

Download history 976/week @ 2024-03-13 489/week @ 2024-03-20 771/week @ 2024-03-27 568/week @ 2024-04-03 1177/week @ 2024-04-10 784/week @ 2024-04-17 717/week @ 2024-04-24 1144/week @ 2024-05-01 471/week @ 2024-05-08 234/week @ 2024-05-15 534/week @ 2024-05-22 434/week @ 2024-05-29 336/week @ 2024-06-05 518/week @ 2024-06-12 429/week @ 2024-06-19 337/week @ 2024-06-26

每月下载量 1,647
用于 4 个 crates(通过 voronator

MIT/Apache

17KB
363

maybe_parallel_iterator

一次编写代码。然后通过功能标志在顺序和并行迭代器之间切换!

let a: Vec<i32> = (0..100).collect();
a.into_maybe_parallel_iterator()
    .with_min_sequential(2)
    .map(|n| -n)
    .enumerate()
    .flat_map(|(e, n)| vec![e as i32, n, n + 1000].into_maybe_parallel_iterator())
    .for_each(|item| {
        println!("par: {:?}", item);
    })

功能

  • 迭代器
    • into_maybe_par_iter
    • maybe_par_iter
    • maybe_par_iter_mut
  • 排序
    • maybe_par_sort
    • maybe_par_sort_unstable
    • maybe_par_sort_by
    • maybe_par_sort_unstable_by
    • maybe_par_sort_by_key
    • maybe_par_sort_unstable_by_key

使用 rayon 功能标志启用 rayon 并行性。

默认为顺序("rayoff" 模式)。

限制

目前仅支持以下迭代器适配器

  • collect
  • *enumerate
  • filter_map
  • find_any
  • flat_map
  • for_each
  • map
  • *with_min_sequential(除非启用 rayon 功能,否则为空操作)

*仅当启用 rayon 功能时才对 IndexedParallelIterator》可用。

许可证

根据以下任一项许可

任选其一。

贡献

除非您明确声明,否则您有意提交的任何贡献,根据 Apache-2.0 许可证定义,将按照上述方式双许可,不附加任何其他条款或条件。

依赖关系

~0–265KB