dataforge/generators/
mod.rs

1//! 数据生成器模块
2
3pub mod name;
4pub mod datetime;
5pub mod address;
6pub mod internet;
7pub mod number;
8
9use serde_json::Value;
10
11/// 核心生成器 Trait
12pub trait Generator: Send + Sync {
13    fn generate(&self) -> Value;
14}
15
16/// UUID v4 生成器
17pub fn uuid_v4() -> String {
18    uuid::Uuid::new_v4().to_string()
19}
20
21/// 随机整数生成器
22pub 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
28/// 随机浮点数生成器
29pub 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
35/// 随机布尔值生成器
36pub fn random_bool() -> bool {
37    use rand::Rng;
38    let mut rng = rand::thread_rng();
39    rng.gen_bool(0.5)
40}
41
42/// 从数组中随机选择
43pub 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}