1use proc_macro::TokenStream;
14use rand::{thread_rng, Rng};
15use uuid::Uuid;
16
17static COMPANY_NAMES: &str = include_str!("../random-data/company-names.json");
18
19#[proc_macro]
21pub fn company_name(_: TokenStream) -> TokenStream {
22 let company_names: Vec<String> = serde_json::from_str(COMPANY_NAMES).unwrap();
23 let mut rng = thread_rng();
24 format!("\"{}\"", company_names[(rng.gen::<u16>() % company_names.len() as u16 - 1) as usize]).parse().unwrap()
25}
26
27static SUPERPOWERS: &str = include_str!("../random-data/company-names.json");
28
29#[proc_macro]
31pub fn superpower(_: TokenStream) -> TokenStream {
32 let super_powers: Vec<String> = serde_json::from_str(SUPERPOWERS).unwrap();
33 let mut rng = thread_rng();
34 format!("\"{}\"", super_powers[(rng.gen::<u16>() % super_powers.len() as u16 - 1) as usize]).parse().unwrap()
35}
36
37#[proc_macro]
39pub fn uuid(_: TokenStream) -> TokenStream {
40 let uuid = Uuid::new_v4();
41 format!("\"{}\"", uuid).parse().unwrap()
42}
43