use cortex_core::{AuthorityClass, ClaimCeiling, ClaimProofState, RuntimeMode};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum EvidenceKind {
ReleaseReadiness,
ComplianceEvidence,
}
impl EvidenceKind {
#[must_use]
pub const fn wire_str(self) -> &'static str {
match self {
Self::ReleaseReadiness => "release_readiness",
Self::ComplianceEvidence => "compliance_evidence",
}
}
}
pub type SourceRef = String;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct EvidenceInput {
pub kind: EvidenceKind,
pub evidence_blake3: String,
pub runtime_mode: RuntimeMode,
pub authority_class: AuthorityClass,
pub proof_state: ClaimProofState,
pub requested_ceiling: ClaimCeiling,
pub source_refs: Vec<SourceRef>,
pub advisory_only: bool,
}
impl EvidenceInput {
#[must_use]
pub const fn is_advisory_only(&self) -> bool {
self.advisory_only
}
}