rand_gen_proc_macro/
lib.rs

1use darling::FromDeriveInput;
2use proc_macro::TokenStream;
3use quote::ToTokens;
4use rand_gen::RandGenReceiver;
5use syn::parse;
6
7#[macro_use]
8extern crate darling;
9#[macro_use]
10extern crate quote;
11extern crate syn;
12
13mod rand_gen;
14
15#[proc_macro_derive(RandGen, attributes(rand_gen))]
16pub fn rand_gen(stream: TokenStream) -> TokenStream {
17    let input = parse(stream).unwrap();
18    RandGenReceiver::from_derive_input(&input)
19        .unwrap()
20        .into_token_stream()
21        .into()
22}