macroscope_utils/
macros.rs

1#[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}