Skip to main content

fp_runtime/asupersync/
error.rs

1use thiserror::Error;
2
3use crate::asupersync::config::CapabilitySet;
4
5#[derive(Debug, Error, Clone, PartialEq, Eq)]
6pub enum AsupersyncError {
7    #[error("invalid configuration: {0}")]
8    Configuration(&'static str),
9    #[error("capability requirement not satisfied; required={required:?} available={available:?}")]
10    CapabilityDenied {
11        required: CapabilitySet,
12        available: CapabilitySet,
13    },
14    #[error("artifact not found: {0}")]
15    ArtifactNotFound(String),
16    #[error("integrity mismatch for {artifact_id}; expected={expected} observed={observed}")]
17    IntegrityMismatch {
18        artifact_id: String,
19        expected: String,
20        observed: String,
21    },
22    #[error("codec failure: {0}")]
23    Codec(String),
24    #[error("transport failure: {0}")]
25    Transport(String),
26    #[error("recovery exhausted for {artifact_id} after {attempts} attempts")]
27    RecoveryExhausted { artifact_id: String, attempts: u32 },
28}