1use datafake_rs::DataGenerator;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let config = r#"{
6 "metadata": {
7 "name": "User Profile Generator",
8 "version": "1.0.0",
9 "description": "Generates realistic user profile data"
10 },
11 "variables": {
12 "userId": {"fake": ["uuid"]},
13 "country": {"fake": ["country_code"]}
14 },
15 "schema": {
16 "id": {"var": "userId"},
17 "profile": {
18 "name": {"fake": ["name", "en_US"]},
19 "age": {"fake": ["u8", 18, 65]},
20 "address": {
21 "street": {"fake": ["street_address", "en_US"]},
22 "country": {"var": "country"}
23 },
24 "bankAccount": {
25 "bic": {"fake": ["bic"]},
26 "bic8": {"fake": ["bic8"]},
27 "bic11": {"fake": ["bic11"]},
28 "balance": {"fake": ["f32", 0, 10000.00]}
29 }
30 }
31 }
32 }"#;
33
34 let generator = DataGenerator::from_json(config)?;
36
37 let fake_data = generator.generate()?;
39
40 println!("Generated User Profile:");
42 println!("{}", serde_json::to_string_pretty(&fake_data)?);
43
44 println!("\nGenerating 3 user profiles:");
46 let batch = generator.generate_batch(3)?;
47 for (i, data) in batch.iter().enumerate() {
48 println!("\nProfile {}:", i + 1);
49 println!("{}", serde_json::to_string_pretty(data)?);
50 }
51
52 Ok(())
53}