macroscope_utils/
macros.rs1#[macro_export]
2macro_rules! try_parse {
3 ($input:expr => $output:ty) => {{
4 match $crate::hidden::syn::parse2::<$output>($input) {
5 Ok(v) => v,
6 Err(err) => return TokenStream::from(err.to_compile_error()),
7 }
8 }};
9
10 ($input:expr) => {{
11 match $crate::hidden::syn::parse2($input) {
12 Ok(v) => v,
13 Err(err) => return TokenStream::from(err.to_compile_error()),
14 }
15 }};
16}
17
18#[macro_export]
19macro_rules! expr {
20 ($($tokens:tt)*) => {
21 $crate::hidden::proc_macro2::TokenStream::from($crate::hidden::quote::quote! {{ $($tokens)* }})
22 }
23}
24
25#[macro_export]
26macro_rules! ty {
27 ($($tokens:tt)*) => {
28 $crate::hidden::proc_macro2::TokenStream::from($crate::hidden::quote::quote![$($tokens)*])
29 }
30}
31
32#[macro_export]
33macro_rules! snippet {
34 ($($tokens:tt)*) => {
35 $crate::hidden::proc_macro2::TokenStream::from($crate::hidden::quote::quote![$($tokens)*])
36 }
37}