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}