fauxgen_macros/
lib.rs

1use proc_macro::TokenStream;
2
3mod args;
4mod generator;
5mod lifetime;
6
7#[proc_macro_attribute]
8pub fn generator(attr: TokenStream, mut item: TokenStream) -> TokenStream {
9    match generator::expand(attr.into(), item.clone().into()) {
10        Ok(tokens) => tokens.into(),
11        Err(e) => {
12            let tokens: TokenStream = e.into_compile_error().into();
13            item.extend(tokens);
14            item
15        }
16    }
17}