hopr_transport/
errors.rs

1use hopr_crypto_packet::errors::PacketError;
2pub use hopr_transport_network::errors::NetworkingError;
3pub use hopr_transport_probe::errors::ProbeError;
4pub use hopr_transport_protocol::errors::ProtocolError;
5use hopr_transport_session::errors::TransportSessionError;
6use thiserror::Error;
7
8/// Errors produced by the crate.
9#[derive(Error, Debug)]
10pub enum HoprTransportError {
11    #[error("API error: {0}")]
12    Api(String),
13
14    #[error("General error: {0}")]
15    General(#[from] hopr_primitive_types::errors::GeneralError),
16
17    #[error("DB API error: {0}")]
18    Db(#[from] hopr_db_sql::api::errors::DbError),
19
20    // TODO(20250114): Unify all Databse API functionality in the db_api crate and remove this error.
21    #[error("DB SQL error: {0}")]
22    Database(#[from] hopr_db_sql::errors::DbSqlError),
23
24    #[error("Path error: {0}")]
25    Path(#[from] hopr_path::errors::PathError),
26
27    #[error("Protocol error: {0}")]
28    Protocol(#[from] ProtocolError),
29
30    #[error("Probe error: {0}")]
31    Probe(#[from] ProbeError),
32
33    #[error("Transport session error: {0}")]
34    Session(#[from] TransportSessionError),
35
36    #[error("Packet error: {0}")]
37    Packet(#[from] PacketError),
38
39    #[error("Type error: {0}")]
40    Types(#[from] hopr_internal_types::errors::CoreTypesError),
41
42    #[error("Network monitoring error: {0}")]
43    NetworkError(#[from] NetworkingError),
44
45    #[error("Ticket aggregation error: {0}")]
46    TicketAggregationError(#[from] hopr_transport_ticket_aggregation::TicketAggregationError),
47}
48
49/// Result produced by the crate, uses the [HoprTransportError] as the error type.
50pub type Result<T> = core::result::Result<T, HoprTransportError>;