use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum EvidenceTier {
Mechanism,
DeterministicQuality,
RecordedRegression,
LiveTaskEvaluation,
ProductionOutcome,
}
impl EvidenceTier {
pub fn code(self) -> &'static str {
match self {
Self::Mechanism => "A",
Self::DeterministicQuality => "B",
Self::RecordedRegression => "C",
Self::LiveTaskEvaluation => "D",
Self::ProductionOutcome => "E",
}
}
pub fn label(self) -> &'static str {
match self {
Self::Mechanism => "mechanism",
Self::DeterministicQuality => "deterministic quality",
Self::RecordedRegression => "recorded regression",
Self::LiveTaskEvaluation => "live task evaluation",
Self::ProductionOutcome => "production outcome",
}
}
pub fn supports_task_quality_claim(self) -> bool {
self >= Self::RecordedRegression
}
}