educe/trait_handlers/partial_ord/
mod.rs1mod models;
2
3mod partial_ord_enum;
4mod partial_ord_struct;
5
6use partial_ord_enum::PartialOrdEnumHandler;
7use partial_ord_struct::PartialOrdStructHandler;
8use proc_macro2::TokenStream;
9use syn::{Data, DeriveInput, Meta};
10
11use super::TraitHandler;
12use crate::{panic, Trait};
13
14pub struct PartialOrdHandler;
15
16impl TraitHandler for PartialOrdHandler {
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 PartialOrdStructHandler::trait_meta_handler(ast, tokens, traits, meta);
26 },
27 Data::Enum(_) => {
28 PartialOrdEnumHandler::trait_meta_handler(ast, tokens, traits, meta);
29 },
30 Data::Union(_) => panic::trait_not_support_union(Trait::PartialOrd),
31 }
32 }
33}