#[non_exhaustive]pub enum Execution {
Unspecified,
Sequence,
ForkJoin,
#[non_exhaustive] WorkPool {
max_parallelism: NonZero<usize>,
},
}Expand description
How a phase’s work is scheduled. Declaring it schedules nothing.
On a leaf, it describes the leaf’s own units: WorkPool means several
workers share one count. On a branch, it describes how the children run.
When a phase splits, the execution passed to Pulse::split replaces the
one in its PhaseSpec.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Unspecified
No scheduling relationship is declared.
Sequence
One after another, in declared order.
ForkJoin
Concurrently; all join before the parent finishes.
#[non_exhaustive]WorkPool
Shared by a pool of at most max_parallelism workers.
Build it with Execution::work_pool.
Fields
This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
Implementations§
Trait Implementations§
impl Copy for Execution
impl Eq for Execution
impl StructuralPartialEq for Execution
Auto Trait Implementations§
impl Freeze for Execution
impl RefUnwindSafe for Execution
impl Send for Execution
impl Sync for Execution
impl Unpin for Execution
impl UnsafeUnpin for Execution
impl UnwindSafe for Execution
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more