gat_std_proc/lib.rs
1
2use proc_macro::TokenStream;
3use quote::quote;
4
5mod desugar;
6
7#[proc_macro_attribute]
8pub fn gatify(args: TokenStream, val: TokenStream) -> TokenStream {
9 if !args.is_empty() {
10 return quote!(compile_error!("gatify takes no arguments");).into();
11 }
12
13 match desugar::_impl(val.into()) {
14 Ok(ts) => ts.into(),
15 Err(e) => {
16 let err = e.to_string();
17 quote!(compile_error!(#err);).into()
18 }
19 }
20}