1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
use syn::DeriveInput;

mod gen;
mod gen_enum;
mod gen_struct;

#[proc_macro_derive(
    RandGen,
    attributes(skip_variant, always_some, always_none, custom_rand, no_rand)
)]
pub fn rand_gen(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
    let input: DeriveInput = syn::parse(input).unwrap();

    let transform = gen::transform(input);

    transform.into()
}