use darling::{FromMeta, ast::NestedMeta}; use proc_macro::TokenStream as TokenStream1; use quote::ToTokens; mod cdef; mod metatype; mod utils; #[proc_macro_attribute] pub fn cdef(args: TokenStream1, input: TokenStream1) -> TokenStream1 { NestedMeta::parse_meta_list(args.into()) .and_then(|meta| cdef::Args::from_list(&meta).map_err(Into::into)) .and_then(|args| cdef::transform(args, syn::parse(input)?)) .unwrap_or_else(|err| err.into_compile_error().into_token_stream()) .into() } #[proc_macro_attribute] pub fn metatype(args: TokenStream1, input: TokenStream1) -> TokenStream1 { NestedMeta::parse_meta_list(args.into()) .and_then(|meta| metatype::Args::from_list(&meta).map_err(Into::into)) .and_then(|args| metatype::transform(args, syn::parse(input)?)) .unwrap_or_else(|err| err.into_compile_error().into_token_stream()) .into() }