use adapters::{Adapter, Validate};
use adapters_macros::Schema;
#[derive(Schema, Debug)]
struct Address {
city: String,
country: String,
}
#[derive(Schema, Debug)]
struct User {
username: String,
address: Address,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("=== nested_models example ===\n");
let json = r#"{
"username": "alice",
"address": {"city": "Berlin", "country": "Germany"}
}"#;
let user = User::from_json(json)?;
println!("Parsed user: {:?}", user);
let out = user.to_json()?;
println!("Re-serialized: {}", out);
let user2 = User::from_json(&out)?;
println!("Round-trip OK: username={}", user2.username);
user.validate()?;
println!("Valid!");
Ok(())
}