From e730cea0224323c97539fcc657a83ee6320bcc1c Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 13 Apr 2026 21:41:24 +0800 Subject: Add Pickable implementation for enums with EnumTag trait --- mingling_macros/src/enum_tag.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'mingling_macros') diff --git a/mingling_macros/src/enum_tag.rs b/mingling_macros/src/enum_tag.rs index a30a0d5..497bc88 100644 --- a/mingling_macros/src/enum_tag.rs +++ b/mingling_macros/src/enum_tag.rs @@ -70,10 +70,13 @@ fn derive_enum_tag_impl(input: DeriveInput) -> Result } } - fn build_enum(name: String) -> Self { + fn build_enum(name: String) -> Option + where + Self: Sized + { match name.as_str() { #(#build_match_arms)* - _ => panic!("Invalid enum variant name: {}", name), + _ => None, } } @@ -128,7 +131,7 @@ fn process_variant( }); build_match_arms.push(quote! { - #variant_name_str => #enum_name::#variant_name, + #variant_name_str => Some(#enum_name::#variant_name), }); Ok(()) -- cgit