1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
extern crate proc_macro;
mod entities;
mod macro_impl;
mod parsers;
mod utils;
use proc_macro::TokenStream;
#[proc_macro_derive(IConfig, attributes(parser, prefix, description, name, default))]
pub fn derive_config_macro(item: TokenStream) -> TokenStream {
macro_impl::derive_config::derive_function(item)
}
#[proc_macro_derive(
IUseCaseRequest,
attributes(parser, description, default, short, long, multi, bool_flag)
)]
pub fn derive_use_case_request(item: TokenStream) -> TokenStream {
macro_impl::derive_use_case_request::derive_function(item)
}
#[proc_macro]
pub fn singleton_simple(input: TokenStream) -> TokenStream {
macro_impl::singleton::singleton(input, false)
}
#[proc_macro]
pub fn singleton_mutex(input: TokenStream) -> TokenStream {
macro_impl::singleton::singleton(input, true)
}