#[macro_export]
macro_rules! error {
($kind:ident, $msg:expr) => {
$crate::error::Error::$kind($msg.to_string())
};
}
#[macro_export]
macro_rules! ensure {
($cond:expr, $kind:ident, $msg:expr) => {
if !$cond {
return Err($crate::error!($kind, $msg));
}
};
}
#[macro_export]
macro_rules! business_err {
($msg:expr) => {
$crate::error!(Business, $msg)
};
}
#[macro_export]
macro_rules! system_err {
($msg:expr) => {
$crate::error!(System, $msg)
};
}
#[macro_export]
macro_rules! validation_err {
($msg:expr) => {
$crate::error!(Validation, $msg)
};
}
#[macro_export]
macro_rules! auth_err {
($msg:expr) => {
$crate::error!(Authentication, $msg)
};
}
#[macro_export]
macro_rules! authz_err {
($msg:expr) => {
$crate::error!(Authorization, $msg)
};
}
#[macro_export]
macro_rules! unknown_err {
($msg:expr) => {
$crate::error!(Unknown, $msg)
};
}