pub enum Activation {
Any,
All,
}Expand description
How a node joins a frontier, i.e. how its pending activation tokens are counted.
Variants§
Any
Fire as soon as at least one incoming edge holds a pending token (control-flow
default). Exactly one token is consumed per firing (from the lowest-declared
pending edge), so co-pending tokens re-fire the node on later supersteps — an
Any-join fires once per arriving branch.
All
Fire only when every incoming edge holds ≥1 pending token (dataflow default). One token per incoming edge is consumed.
Beware inside loops: an All-join on a cycle is the classic self-deadlock —
one predecessor’s token arrives once per iteration while the other’s arrives once
ever, so the join waits forever. Joins inside loops are almost always Any or
merger-joins; validation warns on this shape.
Trait Implementations§
Source§impl Clone for Activation
impl Clone for Activation
impl Copy for Activation
Source§impl Debug for Activation
impl Debug for Activation
Source§impl Default for Activation
impl Default for Activation
impl Eq for Activation
Source§impl From<Activation> for ActivationDef
impl From<Activation> for ActivationDef
Source§fn from(activation: Activation) -> Self
fn from(activation: Activation) -> Self
Source§impl From<ActivationDef> for Activation
impl From<ActivationDef> for Activation
Source§fn from(def: ActivationDef) -> Self
fn from(def: ActivationDef) -> Self
Source§impl PartialEq for Activation
impl PartialEq for Activation
impl StructuralPartialEq for Activation
Auto Trait Implementations§
impl Freeze for Activation
impl RefUnwindSafe for Activation
impl Send for Activation
impl Sync for Activation
impl Unpin for Activation
impl UnsafeUnpin for Activation
impl UnwindSafe for Activation
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
Source§impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
impl<T> DebuggableStorage for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.