dataforge/generators/
mod.rs1pub mod name;
4pub mod datetime;
5pub mod address;
6pub mod internet;
7pub mod number;
8
9use serde_json::Value;
10
11pub trait Generator: Send + Sync {
13 fn generate(&self) -> Value;
14}
15
16pub fn uuid_v4() -> String {
18 uuid::Uuid::new_v4().to_string()
19}
20
21pub fn random_int(min: i32, max: i32) -> i32 {
23 use rand::Rng;
24 let mut rng = rand::thread_rng();
25 rng.gen_range(min..=max)
26}
27
28pub fn random_float(min: f64, max: f64) -> f64 {
30 use rand::Rng;
31 let mut rng = rand::thread_rng();
32 rng.gen_range(min..=max)
33}
34
35pub fn random_bool() -> bool {
37 use rand::Rng;
38 let mut rng = rand::thread_rng();
39 rng.gen_bool(0.5)
40}
41
42pub fn random_choice<T: Clone>(choices: &[T]) -> T {
44 use rand::seq::SliceRandom;
45 let mut rng = rand::thread_rng();
46 choices.choose(&mut rng).unwrap().clone()
47}