shizen_macros/lib.rs
1mod ast;
2mod attr;
3mod bindings;
4mod utils;
5
6use proc_macro::TokenStream;
7use syn::{parse_macro_input, Error, ItemFn};
8
9#[proc_macro_attribute]
10pub fn plugin(args: TokenStream, input: TokenStream) -> TokenStream {
11 let parsed_args = parse_macro_input!(args as ast::PluginArgs);
12 let parsed_input = parse_macro_input!(input as ItemFn);
13
14 attr::plugin_impl(parsed_args, parsed_input)
15 .unwrap_or_else(Error::into_compile_error)
16 .into()
17}