1mod db_value;
2mod model;
3mod model_enum;
4mod raw;
5
6use proc_macro::TokenStream;
7
8#[proc_macro_derive(
9 Model,
10 attributes(
11 table,
12 column,
13 primary,
14 unique,
15 index,
16 foreign,
17 data_type,
18 default,
19 check,
20 hypertable,
21 compress,
22 has_many,
23 belongs_to,
24 has_one,
25 through,
26 embed,
27 filter,
28 version,
29 ormer_ignore
30 )
31)]
32pub fn derive_model(input: TokenStream) -> TokenStream {
33 let input = syn::parse_macro_input!(input as syn::DeriveInput);
34 model::derive_model(input).into()
35}
36
37#[proc_macro_derive(Embed, attributes(column, data_type))]
38pub fn derive_embed(input: TokenStream) -> TokenStream {
39 let input = syn::parse_macro_input!(input as syn::DeriveInput);
40 model::derive_embed(input).into()
41}
42
43#[proc_macro_derive(ViewModel, attributes(table, column, data_type))]
44pub fn derive_view_model(input: TokenStream) -> TokenStream {
45 let input = syn::parse_macro_input!(input as syn::DeriveInput);
46 model::derive_view_model(input).into()
47}
48
49#[proc_macro_derive(ModelEnum)]
50pub fn derive_model_enum(input: TokenStream) -> TokenStream {
51 let input = syn::parse_macro_input!(input as syn::DeriveInput);
52 model_enum::derive_model_enum(input).into()
53}
54
55#[proc_macro_derive(FieldType)]
56pub fn derive_field_type(input: TokenStream) -> TokenStream {
57 let input = syn::parse_macro_input!(input as syn::DeriveInput);
58 model_enum::derive_field_type(input).into()
59}
60
61#[proc_macro_derive(DbValue, attributes(db_type))]
62pub fn derive_db_value(input: TokenStream) -> TokenStream {
63 let input = syn::parse_macro_input!(input as syn::DeriveInput);
64 db_value::derive_db_value(input).into()
65}
66
67#[proc_macro_derive(InsertModel, attributes(table, column))]
68pub fn derive_insert_model(input: TokenStream) -> TokenStream {
69 let input = syn::parse_macro_input!(input as syn::DeriveInput);
70 model::derive_insert_model(input).into()
71}
72
73#[proc_macro]
74pub fn raw(input: TokenStream) -> TokenStream {
75 raw::expand(input.into()).into()
76}