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 "balance": {"fake": ["f32", 0, 10000.00]}
27 }
28 }
29 }
30 }"#;
31
32 let generator = DataGenerator::from_json(config)?;
34
35 let fake_data = generator.generate()?;
37
38 println!("Generated User Profile:");
40 println!("{}", serde_json::to_string_pretty(&fake_data)?);
41
42 println!("\nGenerating 3 user profiles:");
44 let batch = generator.generate_batch(3)?;
45 for (i, data) in batch.iter().enumerate() {
46 println!("\nProfile {}:", i + 1);
47 println!("{}", serde_json::to_string_pretty(data)?);
48 }
49
50 Ok(())
51}