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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
extern crate proc_macro; use proc_macro::TokenStream; use std::iter::FromIterator; use all_args_constructor::all_args_constructor; use builder::builder; use equals_and_hash_code::equals_and_hash_code; use getter::getter; use getter_mut::getter_mut; use no_args_constructor::no_args_constructor; use setter::setter; use to_string::to_string; mod all_args_constructor; mod builder; mod equals_and_hash_code; mod getter; mod getter_mut; mod no_args_constructor; mod setter; mod to_string; mod utils; #[proc_macro_derive(Getter)] pub fn derive_getter(input: TokenStream) -> TokenStream { getter(input) } #[proc_macro_derive(GetterMut)] pub fn derive_getter_mut(input: TokenStream) -> TokenStream { getter_mut(input) } #[proc_macro_derive(Setter)] pub fn derive_setter(input: TokenStream) -> TokenStream { setter(input) } #[proc_macro_derive(NoArgsConstructor)] pub fn derive_no_args_constructor(input: TokenStream) -> TokenStream { no_args_constructor(input) } #[proc_macro_derive(AllArgsConstructor)] pub fn derive_all_args_constructor(input: TokenStream) -> TokenStream { all_args_constructor(input) } #[proc_macro_derive(Builder)] pub fn derive_builder(input: TokenStream) -> TokenStream { builder(input) } #[proc_macro_derive(EqualsAndHashCode)] pub fn derive_equals_and_hash_code(input: TokenStream) -> TokenStream { equals_and_hash_code(input) } #[proc_macro_derive(ToString)] pub fn derive_to_string(input: TokenStream) -> TokenStream { to_string(input) } #[proc_macro_derive(Data)] pub fn derive_data(input: TokenStream) -> TokenStream { TokenStream::from_iter( vec![ getter(input.clone()), setter(input.clone()), no_args_constructor(input.clone()), all_args_constructor(input.clone()), equals_and_hash_code(input.clone()), to_string(input.clone()), ] .into_iter(), ) }