t_lib/
error.rs

1use std::{io::Error as StdIoError, net::AddrParseError as StdNetAddrParseError};
2
3use http::uri::InvalidUri as HttpUriInvalidUri;
4use tonic::Status as TonicStatus;
5#[cfg(feature = "tonic-transport")]
6use tonic::transport::Error as TonicTransportError;
7
8#[derive(Debug, thiserror::Error)]
9pub enum Error {
10    #[error(transparent)]
11    StdIoError(#[from] StdIoError),
12
13    #[error(transparent)]
14    StdNetAddrParseError(#[from] StdNetAddrParseError),
15
16    #[error(transparent)]
17    HttpUriInvalidUri(#[from] HttpUriInvalidUri),
18
19    #[error(transparent)]
20    TonicStatus(#[from] TonicStatus),
21
22    #[cfg(feature = "tonic-transport")]
23    #[error(transparent)]
24    TonicTransportError(#[from] TonicTransportError),
25
26    #[error("{0}")]
27    Generic(String),
28}
29
30#[macro_export]
31macro_rules! err {
32    ($($arg:tt)*) => {
33        Err($crate::error::Error::Generic(format!($($arg)*)))
34    }
35}
36
37#[allow(unused_imports)]
38pub(crate) use err;
39
40pub type Result<T, E = Error> = std::result::Result<T, E>;