Skip to main content

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
20/// Extendable parallel collection helpers.
21pub mod extendable;
22/// Core module for infallible computations.
23pub mod infallible;
24mod infallible_use;
25mod into_parallel;
26mod ops;
27mod option;
28mod option_use;
29mod parameters;
30/// Thread pool module
31pub mod pools;
32mod result;
33mod result_use;
34mod results;
35mod runner;
36mod sizes;
37mod sort;
38mod use_var;
39
40pub use extendable::ParExtend;
41pub use infallible::{EnumeratePar, Par, ParRec};
42pub use infallible_use::{EnumerateParUse, ParUse};
43pub use into_parallel::{
44    IntoParIter, IterIntoParIter, ParCollection, ParCollectionMut, ParDrain, Parallelizable,
45    par_recursive,
46};
47pub use ops::Sum;
48pub use option::ParOption;
49pub use option_use::ParUseOption;
50pub use parameters::{ChunkSize, IterationOrder, NumThreads, Params};
51#[cfg(all(feature = "wasm", target_arch = "wasm32"))]
52pub use pools::WasmWebPool;
53
54#[cfg(all(feature = "wasm", target_arch = "wasm32", target_feature = "atomics"))]
55pub use pools::wasm_web_runtime_info;
56#[cfg(all(feature = "wasm", target_arch = "wasm32", target_feature = "atomics"))]
57pub use pools::wasm_web_start_worker;
58pub use pools::{Pool, Scope, TaskQueue, Tasks, ThreadPool};
59pub use result::ParResult;
60pub use result_use::ParUseResult;
61pub use runner::Runner;
62pub use use_var::{Use, UseVec};
63
64/// Initializes the browser's shared wasm thread pool.
65#[cfg(all(feature = "wasm", target_arch = "wasm32", target_feature = "atomics"))]
66pub use pools::init_wasm_parallel_runtime;
67
68// experimental
69#[cfg(feature = "experimental")]
70pub use sort::par_experimental_sort;