1#![deny(warnings)]
2#![deny(clippy::all)]
3
4extern crate proc_macro;
5#[macro_use]
6extern crate quote;
7extern crate rustorm_dao;
8extern crate syn;
9
10#[macro_use]
11mod column_derive;
12#[macro_use]
13mod dao_derive;
14#[macro_use]
15mod table_derive;
16
17use proc_macro::TokenStream;
18
19#[proc_macro_derive(FromDao)]
20pub fn from_dao(input: TokenStream) -> TokenStream {
21 let s = input.to_string();
22 let ast = syn::parse_macro_input(&s).unwrap();
23 let gen = dao_derive::impl_from_dao(&ast);
24 gen.parse().unwrap()
25}
26
27#[proc_macro_derive(ToDao)]
28pub fn to_dao(input: TokenStream) -> TokenStream {
29 let s = input.to_string();
30 let ast = syn::parse_macro_input(&s).unwrap();
31 let gen = dao_derive::impl_to_dao(&ast);
32 gen.parse().unwrap()
33}
34
35#[proc_macro_derive(ToTableName)]
36pub fn to_table_name(input: TokenStream) -> TokenStream {
37 let s = input.to_string();
38 let ast = syn::parse_macro_input(&s).unwrap();
39 let gen = table_derive::impl_to_table_name(&ast);
40 gen.parse().unwrap()
41}
42
43#[proc_macro_derive(ToColumnNames)]
44pub fn to_column_names(input: TokenStream) -> TokenStream {
45 let s = input.to_string();
46 let ast = syn::parse_macro_input(&s).unwrap();
47 let gen = column_derive::impl_to_column_names(&ast);
48 gen.parse().unwrap()
49}