use crate::turn_execution_authority::TurnTerminalOutcome;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SurfaceResultClass {
Success,
HardFailure,
Cancelled,
}
pub fn classify_terminal(outcome: &TurnTerminalOutcome) -> Option<SurfaceResultClass> {
match outcome {
TurnTerminalOutcome::None => None,
TurnTerminalOutcome::Completed => Some(SurfaceResultClass::Success),
TurnTerminalOutcome::Failed => Some(SurfaceResultClass::HardFailure),
TurnTerminalOutcome::Cancelled => Some(SurfaceResultClass::Cancelled),
TurnTerminalOutcome::BudgetExhausted => Some(SurfaceResultClass::Success),
TurnTerminalOutcome::TimeBudgetExceeded => Some(SurfaceResultClass::HardFailure),
TurnTerminalOutcome::StructuredOutputValidationFailed => {
Some(SurfaceResultClass::HardFailure)
}
}
}