Skip to main content

a3s_runtime/
error.rs

1use thiserror::Error;
2
3pub type RuntimeResult<T> = Result<T, RuntimeError>;
4
5#[derive(Debug, Error)]
6pub enum RuntimeError {
7    #[error("invalid Runtime request: {0}")]
8    InvalidRequest(String),
9    #[error("Runtime unit {unit_id:?} was not found")]
10    NotFound { unit_id: String },
11    #[error("Runtime request {request_id:?} conflicts with a prior request")]
12    RequestConflict { request_id: String },
13    #[error("Runtime request {request_id:?} for unit {unit_id:?} was not found")]
14    RequestNotFound { unit_id: String, request_id: String },
15    #[error(
16        "Runtime unit {unit_id:?} rejected stale generation {requested}; current generation is {current}"
17    )]
18    StaleGeneration {
19        unit_id: String,
20        requested: u64,
21        current: u64,
22    },
23    #[error("Runtime unit {unit_id:?} has conflicting content for generation {generation}")]
24    GenerationConflict { unit_id: String, generation: u64 },
25    #[error("Runtime request deadline has expired: {0}")]
26    DeadlineExceeded(String),
27    #[error("Runtime provider lacks required capabilities: {0:?}")]
28    UnsupportedCapabilities(Vec<String>),
29    #[error("Runtime provider is unavailable: {0}")]
30    ProviderUnavailable(String),
31    #[error("Runtime transport failed: {0}")]
32    Transport(String),
33    #[error("Runtime protocol failed: {0}")]
34    Protocol(String),
35}