parameterized_macro/
lib.rs1#[macro_use]
2extern crate syn;
3extern crate proc_macro;
4
5mod attribute;
6mod generation;
7mod tests;
8
9#[proc_macro_attribute]
10pub fn parameterized(
11 args: ::proc_macro::TokenStream,
12 input: ::proc_macro::TokenStream,
13) -> ::proc_macro::TokenStream {
14 impl_macro(args, input)
15}
16
17fn impl_macro(
18 args: ::proc_macro::TokenStream,
19 input: ::proc_macro::TokenStream,
20) -> ::proc_macro::TokenStream {
21 let argument_lists = parse_macro_input!(args as attribute::ParameterizedList);
22 let func = parse_macro_input!(input as attribute::Fn);
23
24 generation::generate(argument_lists, func)
25}