1#[macro_export]
2macro_rules! bail {
3 ($item:expr, $fmt:literal $(, $args:expr)* $(,)?) => {
4 return Err(syn::Error::new_spanned(
5 &$item,
6 format!($fmt $(, $args)*)
7 ))
8 };
9}
10
11#[macro_export]
12macro_rules! bail_with_span {
13 ($span:expr, $fmt:literal $(, $args:expr)* $(,)?) => {
14 return Err(syn::Error::new(
15 $span,
16 format!($fmt $(, $args)*)
17 ))
18 };
19}
20
21#[macro_export]
22macro_rules! bail_call_site {
23 ($fmt:literal $(, $args:expr)* $(,)?) => {
24 return Err(syn::Error::new(
25 proc_macro2::Span::call_site(),
26 format!($fmt $(, $args)*)
27 ))
28 };
29}
30
31#[macro_export]
32macro_rules! error {
33 ($item:expr, $fmt:literal $(, $args:expr)* $(,)?) => {
34 syn::Error::new_spanned(
35 &$item,
36 format!($fmt $(, $args)*)
37 )
38 };
39}
40
41#[macro_export]
42macro_rules! error_with_span {
43 ($span:expr, $fmt:literal $(, $args:expr)* $(,)?) => {
44 syn::Error::new(
45 $span,
46 format!($fmt $(, $args)*)
47 )
48 };
49}
50
51#[macro_export]
52macro_rules! error_call_site {
53 ($fmt:literal $(, $args:expr)* $(,)?) => {
54 syn::Error::new(
55 proc_macro2::Span::call_site(),
56 format!($fmt $(, $args)*)
57 )
58 };
59}