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}