foxtive_macros/
lib.rs

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]
37/// Generate Diesel enum with optional features
38pub fn generate_diesel_enum_with_optional_features(input: TokenStream) -> TokenStream {
39    enum_diesel_generate::generate_diesel_enum_with_optional_features(input)
40}