1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#[macro_export]
macro_rules! new_ident {
($fmt:expr, $($args:tt)*) => {
::syn::Ident::new(
&format!($fmt, $($args)*),
::proc_macro2::Span::call_site(),
)
};
($fmt:expr) => {
new_ident!($fmt,)
};
}
#[macro_export]
macro_rules! compile_error {
($fmt:expr, $($args:tt)*) => {
return ::syn::parse::Error::new(
::proc_macro2::Span::call_site(),
format!($fmt, $($args)*),
)
.to_compile_error()
.into()
};
($fmt:expr) => {
compile_error!($fmt,)
};
}