kmp-plugin-api 0.6.0

Public plugin API for the KMP kernel: evidence value and derivation traits, free of kernel internals
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum EvidenceSegmentKind {
    SourceCode,
    Math,
    Url,
    Text,
}

impl EvidenceSegmentKind {
    pub fn precedence(self) -> u8 {
        match self {
            Self::SourceCode => 0,
            Self::Math => 1,
            Self::Url => 2,
            Self::Text => 3,
        }
    }

    pub fn is_interpretable_text(self) -> bool {
        self == Self::Text
    }

    pub fn is_protected(self) -> bool {
        !self.is_interpretable_text()
    }
}