clia_rustorm_codegen/
lib.rs1#![deny(warnings)]
2#![deny(clippy::all)]
3
4extern crate proc_macro;
5#[macro_use]
6extern crate quote;
7extern crate clia_rustorm_dao;
8extern crate syn;
9
10#[macro_use]
11mod column_derive;
12#[macro_use]
13mod dao_derive;
14#[macro_use]
15mod table_derive;
16mod util;
17
18use proc_macro::TokenStream;
19
20#[proc_macro_derive(FromDao, attributes(column_name))]
21pub fn from_dao(tokens: TokenStream) -> TokenStream {
22 let input = syn::parse_macro_input!(tokens as syn::DeriveInput);
23
24 dao_derive::impl_from_dao(&input).into()
25}
26
27#[proc_macro_derive(ToDao, attributes(column_name))]
28pub fn to_dao(tokens: TokenStream) -> TokenStream {
29 let input = syn::parse_macro_input!(tokens as syn::DeriveInput);
30
31 dao_derive::impl_to_dao(&input).into()
32}
33
34#[proc_macro_derive(ToTableName, attributes(table_name))]
35pub fn to_table_name(tokens: TokenStream) -> TokenStream {
36 let input = syn::parse_macro_input!(tokens as syn::DeriveInput);
37
38 table_derive::impl_to_table_name(&input).into()
39}
40
41#[proc_macro_derive(ToColumnNames, attributes(column_name, table_name))]
42pub fn to_column_names(tokens: TokenStream) -> TokenStream {
43 let input = syn::parse_macro_input!(tokens as syn::DeriveInput);
44
45 column_derive::impl_to_column_names(&input).into()
46}