rand_gen_proc_macro/
lib.rs1use 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}