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#[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 #[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
49pub type Result<T> = core::result::Result<T, HoprTransportError>;