qualified_do_macro/lib.rs
1use proc_macro::TokenStream;
2
3mod desugar;
4mod parser;
5mod types;
6
7use types::*;
8
9use syn::parse_macro_input;
10
11#[proc_macro]
12pub fn qdo(input: TokenStream) -> TokenStream {
13 let qdo: QDo = parse_macro_input!(input as QDo);
14 qdo.desugar().map_or_else(
15 |err: syn::Error| TokenStream::from(err.into_compile_error()),
16 |a| a.into(),
17 )
18}