agent-image-diff 0.2.4

Structured image diff with JSON output for agent workflows
Documentation
use crate::output::compact::CompactDiffResult;
use crate::region::DiffResult;
use anyhow::Result;
use std::io::Write;

pub fn write_json(
    result: &DiffResult,
    verbose: bool,
    pretty: bool,
    writer: &mut impl Write,
) -> Result<()> {
    if verbose {
        if pretty {
            serde_json::to_writer_pretty(&mut *writer, result)?;
        } else {
            serde_json::to_writer(&mut *writer, result)?;
        }
    } else {
        let compact = CompactDiffResult::from(result);
        if pretty {
            serde_json::to_writer_pretty(&mut *writer, &compact)?;
        } else {
            serde_json::to_writer(&mut *writer, &compact)?;
        }
    }
    writeln!(writer)?;
    Ok(())
}