From: Lizzy Fleckenstein Date: Mon, 13 Feb 2023 17:02:42 +0000 (+0100) Subject: Don't require repr for custom enum implementations X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=2a08d84120643db61cce60da67b012ea34e460df;p=mt_ser.git Don't require repr for custom enum implementations --- diff --git a/derive/src/lib.rs b/derive/src/lib.rs index 5f301e9..82d9644 100644 --- a/derive/src/lib.rs +++ b/derive/src/lib.rs @@ -81,10 +81,12 @@ pub fn mt_derive(attr: TokenStream, item: TokenStream) -> TokenStream { iter!(v.fields, |f| iter!(f.attrs, wrap_attr)); }); - let repr = args.repr.expect("missing repr for enum"); - if args.enumset { - let repr_str = repr.to_token_stream().to_string(); + let repr_str = args + .repr + .expect("missing repr for enum") + .to_token_stream() + .to_string(); out.extend(quote! { #[derive(EnumSetType)] @@ -115,8 +117,15 @@ pub fn mt_derive(attr: TokenStream, item: TokenStream) -> TokenStream { }); } + if let Some(repr) = args.repr { + out.extend(quote! { + #[repr(#repr)] + }); + } else if !args.custom { + panic!("missing repr for enum"); + } + out.extend(quote! { - #[repr(#repr)] #[derive(Clone, PartialEq)] });