basic/
basic.rs

1use datafake_rs::DataGenerator;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    // Basic configuration with the example from README
5    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    // Create the generator
33    let generator = DataGenerator::from_json(config)?;
34
35    // Generate fake data
36    let fake_data = generator.generate()?;
37
38    // Print the generated data
39    println!("Generated User Profile:");
40    println!("{}", serde_json::to_string_pretty(&fake_data)?);
41
42    // Generate multiple records
43    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}