package engine // Status is the engine's lifecycle state. type Status string const ( StatusIdle Status = "idle" StatusStarting Status = "starting" StatusActive Status = "active" StatusFailed Status = "failed" // Reconnecting added in P2.3. ) // isValidTransition guards the state machine. Used by Engine.transition // to assert in dev/test; production code logs a warning rather than // panicking on invalid transitions. func isValidTransition(from, to Status) bool { switch from { case StatusIdle: return to == StatusStarting case StatusStarting: return to == StatusActive || to == StatusFailed case StatusActive: return to == StatusIdle || to == StatusFailed case StatusFailed: return to == StatusStarting || to == StatusIdle } return false }