1 macro_rules! format_err { 2 ($obj:expr, $($format:tt)+) => {{ 3 #[allow(unused_imports)] 4 use $crate::utils::error::*; 5 let msg = format!($($format)+); 6 $obj.EXPECTED_Span_OR_ToTokens(msg) 7 }}; 8 } 9 10 macro_rules! abort { 11 ($obj:expr, $($format:tt)+) => {{ 12 return Err(format_err!($obj, $($format)+)); 13 }}; 14 } 15 16 macro_rules! abort_call_site { 17 ($($format:tt)+) => {{ 18 let span = proc_macro2::Span::call_site(); 19 abort!(span, $($format)+) 20 }}; 21 } 22