hopr_lib/
errors.rs

1use thiserror::Error;
2
3use crate::HoprState;
4
5/// Enumeration of status errors thrown from this library.
6#[derive(Error, Debug)]
7pub enum HoprStatusError {
8    #[error("HOPR status general error: '{0}'")]
9    General(String),
10
11    #[error("HOPR status error: '{0}'")]
12    NotThereYet(HoprState, String),
13}
14
15/// Enumeration of errors thrown from this library.
16#[derive(Error, Debug)]
17pub enum HoprLibError {
18    #[error("HOPR lib Error: '{0}'")]
19    GeneralError(String),
20
21    #[error(transparent)]
22    StatusError(#[from] HoprStatusError),
23
24    #[error(transparent)]
25    DatabaseBackendError(#[from] hopr_db_sql::errors::DbSqlError),
26
27    #[error(transparent)]
28    DbError(#[from] hopr_db_sql::api::errors::DbError),
29
30    #[error(transparent)]
31    TransportError(#[from] hopr_transport::errors::HoprTransportError),
32
33    #[error(transparent)]
34    ChainError(#[from] hopr_chain_actions::errors::ChainActionsError),
35
36    #[error(transparent)]
37    ChainApi(#[from] hopr_chain_api::errors::HoprChainError),
38
39    #[error(transparent)]
40    TypeError(#[from] hopr_primitive_types::errors::GeneralError),
41}
42
43pub type Result<T> = std::result::Result<T, HoprLibError>;