x_base/
error.rs

1use thiserror::Error;
2
3#[derive(Clone, Debug, Error)]
4pub enum BaseError {
5    #[error("Failed: {0}")]
6    Failed(String),
7    #[error("Invalid: {0}")]
8    Invalid(String),
9    #[error("Again: {0}")]
10    Again(String),
11    #[error("Canceled: {0}")]
12    Canceled(String),
13    #[error("Creation failed: {0}")]
14    CreationFailed(String),
15    #[error("Invalid parameter: {0} {1}")]
16    InvalidParameter(String, String),
17    #[error("Not implemented")]
18    NotImplemented,
19    #[error("Not found: {0}")]
20    NotFound(String),
21    #[error("Unsupported: {0}")]
22    Unsupported(String),
23    #[error("Initialization failed: {0}")]
24    InitializationFailed(String),
25}
26
27#[macro_export]
28macro_rules! invalid_param_error {
29    ($param:expr) => {
30        BaseError::InvalidParameter(stringify!($param).to_string(), format!("{:?}", $param).to_string())
31    };
32}
33
34#[macro_export]
35macro_rules! none_param_error {
36    ($param:expr) => {
37        BaseError::InvalidParameter(stringify!($param).to_string(), stringify!(None).to_string())
38    };
39}
40
41#[macro_export]
42macro_rules! not_found_error {
43    ($param:expr) => {
44        BaseError::NotFound(format!("{:?}", $param).to_string())
45    };
46}
47
48#[macro_export]
49macro_rules! unsupported_error {
50    ($param:expr) => {
51        BaseError::Unsupported(stringify!($param).to_string())
52    };
53}