pub enum Signal {
EvaluateGates(GateAggregate),
AllocateBudget,
ExecutionSucceeded,
ExecutionFailed,
RetryDecide(RetryOutcome),
Cancel,
Timeout,
BackoffElapsed,
OperatorTransition(JobPhase),
}Expand description
FSM driver — every legal way a Job’s phase can change. Exhaustive
over the (JobPhase, Signal) cross-product per theory/SHIGOTO.md
§IV.1; the advance table below enumerates every cell.
kind() + variant predicates auto-generated via gen-platform.
Variants§
EvaluateGates(GateAggregate)
Re-evaluate gates for a Pending or Gated or Retrying job. The outcome (Gated / Ready / Skipped) is carried in the signal payload so the FSM stays pure — gate evaluation itself is in shigoto-gate.
AllocateBudget
Scheduler chose to start this Ready job (budget allocated).
ExecutionSucceeded
execute() returned Ok(output).
ExecutionFailed
execute() returned Err.
RetryDecide(RetryOutcome)
Retry decision after Failed. Carries whether to retry (then Retrying with backoff) or deadletter.
Cancel
Cooperative cancellation signal — Running job was told to stop. Maps to Failed (with cancellation error).
Timeout
Per-job timeout elapsed while Running. Maps to Failed (with timeout error).
BackoffElapsed
Retry backoff window elapsed; ready to re-evaluate gates.
OperatorTransition(JobPhase)
Externally-driven transition from operator action. Constrained to (WaitingForOperator → Ready|Skipped) and (Deadlettered → Pending) per §VII.3.
Implementations§
Source§impl Signal
impl Signal
pub const fn is_evaluate_gates(&self) -> bool
pub const fn is_allocate_budget(&self) -> bool
pub const fn is_execution_succeeded(&self) -> bool
pub const fn is_execution_failed(&self) -> bool
pub const fn is_retry_decide(&self) -> bool
pub const fn is_cancel(&self) -> bool
pub const fn is_timeout(&self) -> bool
pub const fn is_backoff_elapsed(&self) -> bool
pub const fn is_operator_transition(&self) -> bool
Trait Implementations§
impl Eq for Signal
impl StructuralPartialEq for Signal
Auto Trait Implementations§
impl Freeze for Signal
impl RefUnwindSafe for Signal
impl Send for Signal
impl Sync for Signal
impl Unpin for Signal
impl UnsafeUnpin for Signal
impl UnwindSafe for Signal
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.