tailwag_orm_macros/
lib.rs1use syn::parse_macro_input;
2mod logic;
3mod util;
4
5#[proc_macro_derive(GetTableDefinition, attributes(db_ignore))]
6pub fn derive_get_table_definition(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
7 let input = parse_macro_input!(input);
8 let impl_trait_tokens = logic::derive::get_table_definition::derive_struct(&input);
9 impl_trait_tokens.into()
10}
11
12#[proc_macro_derive(Deleteable, attributes(db_ignore))]
13pub fn derive_deleteable(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
14 let input = parse_macro_input!(input);
15 let impl_trait_tokens = logic::derive::deleteable::derive_struct(&input);
16 impl_trait_tokens.into()
17}
18
19#[proc_macro_derive(Updateable, attributes(db_ignore, string))]
20pub fn derive_updateable(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
21 let input = parse_macro_input!(input);
22 let impl_trait_tokens = logic::derive::updateable::derive_struct(&input);
23 impl_trait_tokens.into()
24}
25
26#[proc_macro_derive(Insertable, attributes(create_type, db_ignore, string, create_ignore))]
27pub fn derive_insertable(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
28 let input = parse_macro_input!(input);
29 let impl_trait_tokens = logic::derive::insertable::derive_struct(&input);
30 impl_trait_tokens.into()
31}
32
33#[proc_macro_derive(Id)]
34pub fn derive_id(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
35 let input = parse_macro_input!(input);
36 let impl_trait_tokens = logic::derive::id::derive_struct(&input);
37 impl_trait_tokens.into()
38}
39
40#[proc_macro_derive(Filterable, attributes(no_filter, db_ignore, string))]
41pub fn derive_filterable(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
42 let input = parse_macro_input!(input);
43 let impl_trait_tokens = logic::derive::filterable::derive_struct(&input);
44 impl_trait_tokens.into()
45}