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
#[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,)
};
}
#[macro_export]
macro_rules! parse_ident {
($input:ident, $value:expr) => {
if $input.parse::<::syn::Ident>()? != $value {
return Err($input.error(format!("Expected `{}`", $value)));
}
};
}