1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
extern crate proc_macro;

mod func;
mod options;

use func::Func;
use proc_macro::TokenStream;

#[proc_macro]
pub fn func(input: TokenStream) -> TokenStream {
    Func::new(input.into()).process().into()
}

#[proc_macro_derive(CommandOptions)]
pub fn command_opts(input: TokenStream) -> TokenStream {
    options::parse(input)
}