#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ContractScenario {
Acceptance,
RetrievalQuality,
}
impl ContractScenario {
pub fn parse(value: &str) -> Option<Self> {
match value {
"acceptance" => Some(Self::Acceptance),
"retrieval-quality" => Some(Self::RetrievalQuality),
_ => None,
}
}
pub(crate) fn scenario_id(&self) -> &'static str {
match self {
Self::Acceptance => "embedded-restart-requery",
Self::RetrievalQuality => "embedded-retrieval-quality",
}
}
pub(crate) fn scenario_family(&self) -> &'static str {
"embedded"
}
pub(crate) fn artifact_id(&self) -> &'static str {
match self {
Self::Acceptance => "acceptance-gate",
Self::RetrievalQuality => "retrieval-quality-gate",
}
}
pub(crate) fn operation(&self) -> &'static str {
match self {
Self::Acceptance => "embedded-acceptance",
Self::RetrievalQuality => "embedded-retrieval-quality",
}
}
pub(crate) fn tags(&self) -> &'static [&'static str] {
match self {
Self::Acceptance => &["iridium", "acceptance", "restart"],
Self::RetrievalQuality => &["iridium", "retrieval-quality", "vector"],
}
}
}