Masterror

Derive Macro Masterror 

Source
#[derive(Masterror)]
{
    // Attributes available to this derive:
    #[error]
    #[source]
    #[from]
    #[backtrace]
    #[masterror]
    #[provide]
}
Expand description

Re-export derive macros so users only depend on this crate.

ยงExamples

use masterror::{AppCode, AppError, AppErrorKind, Error};

#[derive(Debug, Error)]
#[error("missing flag: {name}")]
#[app_error(kind = AppErrorKind::BadRequest, code = AppCode::BadRequest, message)]
struct MissingFlag {
    name: &'static str
}

let app: AppError = MissingFlag {
    name: "feature"
}
.into();
assert!(matches!(app.kind, AppErrorKind::BadRequest));

let code: AppCode = MissingFlag {
    name: "other"
}
.into();
assert!(matches!(code, AppCode::BadRequest));