Skip to main content

offline_protocol_router/
error.rs

1//! Router layer errors.
2
3use thiserror::Error;
4
5/// Result type alias.
6pub type Result<T> = std::result::Result<T, Error>;
7
8/// Router errors.
9// Adding a variant to a public error enum is a breaking change without
10// this attribute; downstream crates must carry a wildcard arm.
11#[non_exhaustive]
12#[derive(Debug, Error)]
13pub enum Error {
14    /// No suitable transport available.
15    #[error("No transport available")]
16    NoTransportAvailable,
17
18    /// No suitable relay found.
19    #[error("No relay available")]
20    NoRelayAvailable,
21
22    /// Transport error.
23    #[error("Transport error: {0}")]
24    Transport(#[from] offline_protocol_transport::Error),
25
26    /// Core error.
27    #[error("Core error: {0}")]
28    Core(#[from] offline_protocol_core::Error),
29
30    /// Generic error.
31    #[error("{0}")]
32    Other(String),
33}