1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
use proc_macro::TokenStream as RawTokenStream;
use syn::{parse_macro_input, DeriveInput};

pub(crate) mod kwargs;


#[proc_macro_derive(MacroKeywordArgs, attributes(kwarg))]
pub fn derive_keyword_args(input: RawTokenStream) -> RawTokenStream {
    let input = parse_macro_input!(input as DeriveInput);
    match self::kwargs::run_derive(&input) {
        Ok(res) => res.into(),
        Err(e) => e.into_compile_error().into()
    }
}