1use proc_macro::TokenStream;
2
3mod enum_common;
4#[cfg(feature = "database")]
5mod enum_diesel;
6mod enum_diesel_generate;
7mod enum_generate;
8
9#[proc_macro]
10pub fn generate_enum(input: TokenStream) -> TokenStream {
11 enum_generate::generate_enum(input)
12}
13
14#[proc_macro]
15pub fn impl_enum_common_traits(input: TokenStream) -> TokenStream {
16 enum_common::impl_enum_common_traits(input)
17}
18
19#[proc_macro]
20pub fn impl_enum_display_trait(input: TokenStream) -> TokenStream {
21 enum_common::impl_enum_display_trait(input)
22}
23
24#[cfg(feature = "database")]
25#[proc_macro]
26pub fn impl_enum_diesel_traits(input: TokenStream) -> TokenStream {
27 enum_diesel::impl_enum_diesel_traits(input)
28}
29
30#[cfg(feature = "database")]
31#[proc_macro]
32pub fn generate_diesel_enum(input: TokenStream) -> TokenStream {
33 enum_diesel_generate::generate_diesel_enum(input)
34}
35
36#[proc_macro]
37pub fn generate_diesel_enum_with_optional_features(input: TokenStream) -> TokenStream {
39 enum_diesel_generate::generate_diesel_enum_with_optional_features(input)
40}