1mod model;
2mod model_enum;
3
4use proc_macro::TokenStream;
5
6#[proc_macro_derive(
7 Model,
8 attributes(
9 table, column, primary, unique, index, foreign, data_type, default, check, hypertable,
10 compress, has_many, belongs_to
11 )
12)]
13pub fn derive_model(input: TokenStream) -> TokenStream {
14 let input = syn::parse_macro_input!(input as syn::DeriveInput);
15 model::derive_model(input).into()
16}
17
18#[proc_macro_derive(ModelEnum)]
19pub fn derive_model_enum(input: TokenStream) -> TokenStream {
20 let input = syn::parse_macro_input!(input as syn::DeriveInput);
21 model_enum::derive_model_enum(input).into()
22}
23
24#[proc_macro_derive(InsertModel, attributes(table, column))]
25pub fn derive_insert_model(input: TokenStream) -> TokenStream {
26 let input = syn::parse_macro_input!(input as syn::DeriveInput);
27 model::derive_insert_model(input).into()
28}