Skip to main content

moirai_iter/
lib.rs

1//! Moirai Iterator - Unified high-performance iterator system for concurrent, parallel, and async computing.
2//!
3//! This module provides a comprehensive iterator framework that abstracts over different execution contexts:
4//! - **Parallel**: CPU-bound work across multiple threads with work-stealing
5//! - **Async**: I/O-bound work with efficient async/await patterns
6//! - **Hybrid**: Mixed workloads combining parallel and async execution
7//!
8//! # Design Principles
9//!
10//! - **Zero-cost abstractions**: Compile-time optimizations with no runtime overhead
11//! - **Memory efficiency**: NUMA-aware allocation and cache-friendly data layouts
12//! - **Execution agnostic**: Same API works across all execution contexts
13//! - **Type safety**: Comprehensive compile-time guarantees
14//! - **Performance**: SIMD vectorization and CPU optimization
15//! - **Async compatibility**: Native async/await support throughout
16
17#![deny(missing_docs)]
18pub mod advanced_patterns;
19pub mod async_iter;
20pub mod base;
21pub mod cache;
22pub mod channel_fusion;
23pub mod combinators;
24pub mod execution;
25pub mod facade;
26pub mod iter_ops;
27pub mod parallel;
28pub mod prefetch;
29pub mod simd_iter;
30pub mod stream;
31#[cfg(test)]
32mod test_support;
33pub mod windows;
34
35pub use async_iter::{AsyncIterator, AsyncParallelIterator, IntoAsyncIterator};
36pub use execution::{
37    AsyncContext, ExecutionBase, ExecutionContext, ExecutionStrategy, HybridConfig, HybridContext,
38    ParallelContext, PerformanceHistory,
39};
40pub use facade::{
41    MoiraiIterator, async_range, moirai_iter, moirai_iter_async, moirai_iter_hybrid,
42    moirai_iter_parallel, par_range,
43};
44pub use parallel::{
45    IndexedParallelIterator, IntoParallelIterator, IntoParallelRefIterator, ParallelExtend,
46    ParallelIterator, ParallelSliceMut, RangeParIter, VecParIter, VecRefParIter,
47};