| macro_rules! format_err { | |
| ($obj:expr, $($format:tt)+) => {{ | |
| #[allow(unused_imports)] | |
| use $crate::utils::error::*; | |
| let msg = format!($($format)+); | |
| $obj.EXPECTED_Span_OR_ToTokens(msg) | |
| }}; | |
| } | |
| macro_rules! abort { | |
| ($obj:expr, $($format:tt)+) => {{ | |
| return Err(format_err!($obj, $($format)+)); | |
| }}; | |
| } | |
| macro_rules! abort_call_site { | |
| ($($format:tt)+) => {{ | |
| let span = proc_macro2::Span::call_site(); | |
| abort!(span, $($format)+) | |
| }}; | |
| } |