ormer-derive 0.2.9

A minimalist ORM framework that supports SQLite, PostgreSQL, MySQL, and SqlServer
Documentation
mod db_value;
mod model;
mod model_enum;
mod raw;

use proc_macro::TokenStream;

#[proc_macro_derive(
    Model,
    attributes(
        table,
        column,
        primary,
        unique,
        index,
        foreign,
        data_type,
        default,
        check,
        hypertable,
        compress,
        mysql,
        postgresql,
        mssql,
        clickhouse,
        has_many,
        belongs_to,
        has_one,
        through,
        embed,
        field,
        filter,
        version,
        ormer_ignore
    )
)]
pub fn derive_model(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model::derive_model(input).into()
}

#[proc_macro_derive(Embed, attributes(column, data_type))]
pub fn derive_embed(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model::derive_embed(input).into()
}

#[proc_macro_derive(ViewModel, attributes(table, column, data_type))]
pub fn derive_view_model(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model::derive_view_model(input).into()
}

#[proc_macro_derive(ModelEnum, attributes(db_type, column))]
pub fn derive_model_enum(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model_enum::derive_model_enum(input).into()
}

#[proc_macro_derive(FieldType, attributes(db_type, column))]
pub fn derive_field_type(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model_enum::derive_field_type(input).into()
}

#[proc_macro_derive(DbValue, attributes(db_type))]
pub fn derive_db_value(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    db_value::derive_db_value(input).into()
}

#[proc_macro_derive(InsertModel, attributes(table, column))]
pub fn derive_insert_model(input: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(input as syn::DeriveInput);
    model::derive_insert_model(input).into()
}

#[proc_macro]
pub fn raw(input: TokenStream) -> TokenStream {
    raw::expand(input.into()).into()
}