Skip to main content

continuity_runtime/
error.rs

1use thiserror::Error;
2
3/// Validation failures for continuity-runtime owned artifacts.
4#[derive(Debug, Clone, PartialEq, Eq, Error)]
5pub enum ContinuityValidationError {
6    #[error("missing required field: {0}")]
7    MissingField(&'static str),
8    #[error("invalid schema version: expected {expected}, found {found}")]
9    SchemaVersionMismatch {
10        expected: &'static str,
11        found: String,
12    },
13    #[error("invalid artifact state: {0}")]
14    InvalidState(&'static str),
15}
16
17impl ContinuityValidationError {
18    pub fn kind(&self) -> &'static str {
19        match self {
20            Self::MissingField(..) => "missing_field",
21            Self::SchemaVersionMismatch { .. } => "schema_version_mismatch",
22            Self::InvalidState(..) => "invalid_state",
23        }
24    }
25}
26
27pub type ContinuityValidationResult = Result<(), ContinuityValidationError>;