1use proc_macro::TokenStream;
2use proc_macro_error::{abort, proc_macro_error};
3
4mod authorization;
5mod auto;
6mod creatable;
7mod domain;
8mod sql;
9
10#[proc_macro_derive(Domain, attributes(domain))]
11#[proc_macro_error]
12pub fn derive_domain_fn(input: TokenStream) -> TokenStream {
13 let stream2 = proc_macro2::TokenStream::from(input);
14 match domain::handler(stream2) {
15 Ok(stream) => proc_macro::TokenStream::from(stream),
16 Err((span, msg)) => abort! {span, msg},
17 }
18}
19
20#[proc_macro_derive(Creatable)]
21#[proc_macro_error]
22pub fn derive_creatable_fn(input: TokenStream) -> TokenStream {
23 let stream2 = proc_macro2::TokenStream::from(input);
24 let stream1 = proc_macro::TokenStream::from(creatable::handle_creatable(stream2));
25 stream1
26}
27
28#[proc_macro_attribute]
29pub fn auto(_args: TokenStream, input: TokenStream) -> TokenStream {
30 let stream2 = proc_macro2::TokenStream::from(input);
31 let stream1 = proc_macro::TokenStream::from(auto::handler(stream2));
32 stream1
33}
34
35#[proc_macro_attribute]
36#[proc_macro_error]
37pub fn sql(args: TokenStream, input: TokenStream) -> TokenStream {
38 let args = proc_macro2::TokenStream::from(args);
39 let stream2 = proc_macro2::TokenStream::from(input);
40 match sql::handler(args, stream2) {
41 Ok(stream) => proc_macro::TokenStream::from(stream),
42 Err((span, msg)) => abort! {span, msg},
43 }
44}