educe/trait_handlers/partial_eq/
mod.rs

1mod models;
2
3mod partial_eq_enum;
4mod partial_eq_struct;
5
6use partial_eq_enum::PartialEqEnumHandler;
7use partial_eq_struct::PartialEqStructHandler;
8use proc_macro2::TokenStream;
9use syn::{Data, DeriveInput, Meta};
10
11use super::TraitHandler;
12use crate::{panic, Trait};
13
14pub struct PartialEqHandler;
15
16impl TraitHandler for PartialEqHandler {
17    fn trait_meta_handler(
18        ast: &DeriveInput,
19        tokens: &mut TokenStream,
20        traits: &[Trait],
21        meta: &Meta,
22    ) {
23        match ast.data {
24            Data::Struct(_) => {
25                PartialEqStructHandler::trait_meta_handler(ast, tokens, traits, meta);
26            },
27            Data::Enum(_) => {
28                PartialEqEnumHandler::trait_meta_handler(ast, tokens, traits, meta);
29            },
30            Data::Union(_) => panic::trait_not_support_union(Trait::PartialEq),
31        }
32    }
33}