rustorm_codegen/
lib.rs

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}