mirror of
https://github.com/topjohnwu/cxx.git
synced 2025-02-24 01:52:27 +00:00
Move PartialEq related derive logic to derive module
This commit is contained in:
parent
982158b9e4
commit
b3d7bb12fb
@ -17,7 +17,7 @@ pub fn expand_struct(strct: &Struct) -> TokenStream {
|
||||
expanded
|
||||
}
|
||||
|
||||
pub fn expand_enum(enm: &Enum) -> TokenStream {
|
||||
pub fn expand_enum(enm: &Enum, actual_derives: &mut Option<TokenStream>) -> TokenStream {
|
||||
let mut expanded = TokenStream::new();
|
||||
let mut has_copy = false;
|
||||
let mut has_clone = false;
|
||||
@ -45,6 +45,12 @@ pub fn expand_enum(enm: &Enum) -> TokenStream {
|
||||
expanded.extend(enum_clone(enm, span));
|
||||
}
|
||||
|
||||
*actual_derives = Some(quote! {
|
||||
// Required to be derived in order for the enum's "variants" to be
|
||||
// usable in patterns.
|
||||
#[derive(::std::cmp::PartialEq, ::std::cmp::Eq)]
|
||||
});
|
||||
|
||||
expanded
|
||||
}
|
||||
|
||||
|
@ -164,12 +164,8 @@ fn expand_enum(enm: &Enum) -> TokenStream {
|
||||
pub const #variant_ident: Self = #ident { repr: #discriminant };
|
||||
})
|
||||
});
|
||||
let derives = quote! {
|
||||
// Required to be derived in order for the enum's "variants" to be
|
||||
// usable in patterns.
|
||||
#[derive(::std::cmp::PartialEq, ::std::cmp::Eq)]
|
||||
};
|
||||
let derived_traits = derive::expand_enum(enm);
|
||||
let mut derives = None;
|
||||
let derived_traits = derive::expand_enum(enm, &mut derives);
|
||||
|
||||
quote! {
|
||||
#doc
|
||||
|
Loading…
x
Reference in New Issue
Block a user