#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum EvidenceKind {
StoichiometricBalance,
RuleBased,
ThermodynamicData,
UserProvidedPrecedent,
CuratedLiteratureRecord,
SimilarComposition,
SimilarStructure,
ProcessTemplate,
SafetyConstraint,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum EvidenceStrength {
Weak,
Moderate,
Strong,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum EvidenceScope {
ExactTarget,
SimilarMaterial,
GeneralRule,
}
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct PlanningEvidence {
pub kind: EvidenceKind,
pub source_id: Option<String>,
pub statement: String,
pub strength: EvidenceStrength,
pub applicable_to: EvidenceScope,
pub limitations: Vec<String>,
}