use diffo::diff;
use serde::Serialize;
#[derive(Serialize)]
struct User {
id: u64,
name: String,
email: String,
active: bool,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let old = User {
id: 1,
name: "Alice".into(),
email: "alice@old.com".into(),
active: true,
};
let new = User {
id: 1,
name: "Alice Smith".into(),
email: "alice@new.com".into(),
active: false,
};
let diff = diff(&old, &new)?;
println!("=== Pretty Format ===");
println!("{}", diff.to_pretty());
println!("\n=== JSON Format ===");
println!("{}", diff.to_json()?);
println!("\n=== JSON Patch Format ===");
println!("{}", diff.to_json_patch()?);
println!("\n=== Markdown Format ===");
println!("{}", diff.to_markdown()?);
Ok(())
}