devela/work/
mod.rs

1// devela::work
2//
3//! Work management, concurrency handling.
4#![doc = crate::doc_!(modules: crate; work: future, process, sync, thread)]
5#![doc = crate::doc_!(newline)]
6//!
7#![doc = crate::doc_!(extends: future, process, sync, task, thread)]
8//!
9//! | Concept | Naming |
10//! | --------| -------|
11//! | Manager (Dispatcher/Scheduler)   | ThreadManager, CoroManager, ProcessManager |
12//! | Worker (Executes Work)           | ThreadWorker, CoroWorker, ProcessWorker |
13//! | Work Item (Payload of Execution) | ThreadWork, CoroWork, ProcessWork |
14//!
15//! This matches Web Workers, aligns with Rust's execution models, and removes ambiguity.
16//
17// https://chatgpt.com/c/67d40469-9f9c-8007-95a5-77bc0b24ead3
18
19// safety
20#![cfg_attr(feature = "safe_work", forbid(unsafe_code))]
21
22pub mod future;
23pub mod process;
24pub mod sync;
25pub mod thread;
26
27crate::items! { // structural access: _pub_mods, _all, _always
28    #[allow(unused)] #[doc(hidden, no_inline)]
29    pub use {_always::*, _pub_mods::*};
30
31    mod _pub_mods { #![allow(unused)]
32        pub use super::future::_all::*;
33        #[allow(unused, reason = "feature-gated")]
34        pub use super::{process::_all::*, sync::_all::*, thread::_all::*};
35        // WIPZONE:
36        // pub use super::actor::*;
37        // pub use super::fiber::*;
38    }
39    pub(super) mod _all {
40        #[doc(inline)]
41        pub use super::_pub_mods::*;
42    }
43    pub(super) mod _always { #![allow(unused)]
44        pub use super::{
45            future::_always::*, process::_always::*, sync::_always::*, thread::_always::*,
46        };
47    }
48}
49// WIPZONE
50// pub mod actor;
51// pub mod fiber;