educe/trait_handlers/debug/
mod.rs1mod models;
2
3mod debug_enum;
4mod debug_struct;
5mod debug_union;
6
7use debug_enum::DebugEnumHandler;
8use debug_struct::DebugStructHandler;
9use debug_union::DebugUnionHandler;
10use proc_macro2::TokenStream;
11use syn::{Data, DeriveInput, Meta};
12
13use super::TraitHandler;
14use crate::Trait;
15
16pub struct DebugHandler;
17
18impl TraitHandler for DebugHandler {
19 fn trait_meta_handler(
20 ast: &DeriveInput,
21 tokens: &mut TokenStream,
22 traits: &[Trait],
23 meta: &Meta,
24 ) {
25 match ast.data {
26 Data::Struct(_) => {
27 DebugStructHandler::trait_meta_handler(ast, tokens, traits, meta);
28 },
29 Data::Enum(_) => {
30 DebugEnumHandler::trait_meta_handler(ast, tokens, traits, meta);
31 },
32 Data::Union(_) => {
33 DebugUnionHandler::trait_meta_handler(ast, tokens, traits, meta);
34 },
35 }
36 }
37}