orx_parallel/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(
3    missing_docs,
4    clippy::unwrap_in_result,
5    clippy::unwrap_used,
6    clippy::panic,
7    clippy::panic_in_result_fn,
8    clippy::float_cmp,
9    clippy::float_cmp_const,
10    clippy::missing_panics_doc,
11    clippy::todo
12)]
13#![no_std]
14
15extern crate alloc;
16
17#[cfg(any(test, feature = "std"))]
18extern crate std;
19
20mod collect_into;
21/// Module containing variants of parallel iterators.
22pub mod computational_variants;
23mod default_fns;
24mod env;
25/// Module defining the parallel runner trait and the default parallel runner.
26pub mod executor;
27mod generic_values;
28mod heap_sort;
29mod into_par_iter;
30/// Module for creating special iterators.
31pub mod iter;
32mod iter_into_par_iter;
33mod par_iter;
34mod par_iter_option;
35mod par_iter_result;
36mod par_thread_pool;
37mod parallel_drainable;
38mod parallelizable;
39mod parallelizable_collection;
40mod parallelizable_collection_mut;
41mod parameters;
42/// ParallelRunner for parallel execution and managing threads.
43pub mod runner;
44mod special_type_sets;
45/// Module defining parallel iterators with mutable access to values distributed to each thread.
46pub mod using;
47
48/// Module defining the GenericIterator which is a generalization over
49/// sequential iterator, rayon's parallel iterator and orx-parallel's
50/// parallel iterator.
51/// This is particularly useful for running experiments and comparing
52/// results of computations with different methods.
53#[cfg(feature = "generic_iterator")]
54pub mod generic_iterator;
55
56/// Module with utility methods for testing.
57#[cfg(test)]
58mod test_utils;
59
60pub use collect_into::ParCollectInto;
61pub use executor::{DefaultExecutor, ParallelExecutor, ThreadExecutor};
62pub use into_par_iter::IntoParIter;
63pub use iter_into_par_iter::IterIntoParIter;
64pub use par_iter::ParIter;
65pub use par_iter_option::ParIterOption;
66pub use par_iter_result::ParIterResult;
67pub use par_thread_pool::ParThreadPool;
68pub use parallel_drainable::ParallelDrainableOverSlice;
69pub use parallelizable::Parallelizable;
70pub use parallelizable_collection::ParallelizableCollection;
71pub use parallelizable_collection_mut::ParallelizableCollectionMut;
72pub use parameters::{ChunkSize, IterationOrder, NumThreads, Params};
73pub use special_type_sets::Sum;
74pub use using::ParIterUsing;
75
76pub use runner::{DefaultPool, DefaultRunner, ParallelRunner, RunnerWithPool, SequentialPool};
77
78#[cfg(feature = "pond")]
79pub use runner::PondPool;
80#[cfg(feature = "std")]
81pub use runner::StdDefaultPool;
82#[cfg(feature = "yastl")]
83pub use runner::YastlPool;