proc_macro_kwargs_derive/
lib.rs

1use proc_macro::TokenStream as RawTokenStream;
2use syn::{parse_macro_input, DeriveInput};
3
4pub(crate) mod kwargs;
5
6#[proc_macro_derive(MacroKeywordArgs, attributes(kwarg))]
7pub fn derive_keyword_args(input: RawTokenStream) -> RawTokenStream {
8    let input = parse_macro_input!(input as DeriveInput);
9    match self::kwargs::run_derive(&input) {
10        Ok(res) => res.into(),
11        Err(e) => e.into_compile_error().into(),
12    }
13}