iridium-db 0.4.0

A high-performance vector-graph hybrid storage and indexing engine
#[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"],
        }
    }
}