use serde::{Deserialize, Serialize};
typedflake::id!(UserId);
#[derive(Serialize, Deserialize, Debug)]
struct User {
id: UserId,
name: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let user = User {
id: UserId::generate(),
name: "Alice".to_string(),
};
println!("User: {user:?}");
let json = serde_json::to_string_pretty(&user)?;
println!("\nJSON:\n{json}");
let deserialized: User = serde_json::from_str(&json)?;
println!("\nDeserialized: {deserialized:?}");
assert_eq!(user.id, deserialized.id);
println!("\n✅ Roundtrip successful!");
Ok(())
}