clia-rustorm-codegen 0.18.0

code gen provides macro for generating code on data access objects on table metadata
Documentation
#![deny(warnings)]
#![deny(clippy::all)]

extern crate proc_macro;
#[macro_use]
extern crate quote;
extern crate clia_rustorm_dao;
extern crate syn;

#[macro_use]
mod column_derive;
#[macro_use]
mod dao_derive;
#[macro_use]
mod table_derive;
mod util;

use proc_macro::TokenStream;

#[proc_macro_derive(FromDao, attributes(column_name))]
pub fn from_dao(tokens: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(tokens as syn::DeriveInput);

    dao_derive::impl_from_dao(&input).into()
}

#[proc_macro_derive(ToDao, attributes(column_name))]
pub fn to_dao(tokens: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(tokens as syn::DeriveInput);

    dao_derive::impl_to_dao(&input).into()
}

#[proc_macro_derive(ToTableName, attributes(table_name))]
pub fn to_table_name(tokens: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(tokens as syn::DeriveInput);

    table_derive::impl_to_table_name(&input).into()
}

#[proc_macro_derive(ToColumnNames, attributes(column_name, table_name))]
pub fn to_column_names(tokens: TokenStream) -> TokenStream {
    let input = syn::parse_macro_input!(tokens as syn::DeriveInput);

    column_derive::impl_to_column_names(&input).into()
}