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