Skip to main content

is_valid_transition

Function is_valid_transition 

Source
pub fn is_valid_transition(from: RunState, to: RunState) -> bool
Expand description

Checks if a transition from from to to is valid.

Valid transitions:

  • Scheduled -> Ready
  • Scheduled -> Canceled
  • Ready -> Leased
  • Ready -> Canceled
  • Leased -> Running
  • Leased -> Ready (lease expired)
  • Leased -> Canceled
  • Running -> RetryWait (failure with retries remaining)
  • Running -> Suspended (preempted by budget exhaustion)
  • Running -> Completed (success)
  • Running -> Failed (failure, no retries remaining)
  • Running -> Canceled
  • RetryWait -> Ready (backoff complete)
  • RetryWait -> Failed (no more retries)
  • RetryWait -> Canceled
  • Suspended -> Ready (budget replenished / explicit resume)
  • Suspended -> Canceled

Terminal states (Completed, Failed, Canceled) have no valid transitions.