use proc_macro::TokenStream;
use syn::{parse_macro_input, ItemFn};
mod common;
mod func;
mod reg;
#[proc_macro_attribute]
pub fn function(attr: TokenStream, item: TokenStream) -> TokenStream {
let args = parse_macro_input!(attr as func::FunctionMacroArgs);
let item_fn = parse_macro_input!(item as ItemFn);
func::expand(args, item_fn)
}
#[proc_macro_attribute]
pub fn register(attr: TokenStream, item: TokenStream) -> TokenStream {
let args = parse_macro_input!(attr as reg::RegisterMacroArgs);
let item_fn = parse_macro_input!(item as ItemFn);
reg::expand(args, item_fn)
}