summaryrefslogtreecommitdiff
path: root/derive/src
diff options
context:
space:
mode:
Diffstat (limited to 'derive/src')
-rw-r--r--derive/src/lib.rs17
1 files changed, 13 insertions, 4 deletions
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)]
});