1#[macro_export]
2macro_rules! error {
3 (@base $expr:expr) => {
4 $crate::Error::error($expr)
5 };
6 ($str:literal $(,)?) => {{
7 let err = format!($str);
8 $crate::error!(@base err)
9 }};
10 ($expr:expr $(,)?) => {{
11 $crate::error!(@base $expr)
12 }};
13 ($fmt:expr, $($arg:tt)*) => {{
14 let err = format!($fmt, $($arg)*);
15 $crate::error!(@base err)
16 }};
17}
18
19#[macro_export]
20macro_rules! error_bail {
21 ($str:literal $(,)?) => {
22 return Err($crate::error!($str));
23 };
24 ($expr:expr $(,)?) => {
25 return Err($crate::error!($expr));
26 };
27 ($fmt:expr, $($arg:tt)*) => {
28 return Err($crate::error!($fmt, $($arg)*));
29 };
30}