Skip to main content

ormer_derive/
lib.rs

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}