Automatically generate drop for #[metatype]

This commit is contained in:
2025-06-19 23:07:53 +10:00
parent 8f6fc64f7a
commit f9676a1436
4 changed files with 51 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
use darling::{FromMeta, ast::NestedMeta};
use proc_macro::TokenStream as TokenStream1;
use quote::ToTokens;
use syn::parse_macro_input;
@@ -8,7 +9,9 @@ mod utils;
#[proc_macro_attribute]
pub fn cdef(args: TokenStream1, input: TokenStream1) -> TokenStream1 {
cdef::transform(parse_macro_input!(input))
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()
}