fp_runtime/asupersync/
error.rs1use 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}