agent_image_diff/output/
json.rs1use crate::output::compact::CompactDiffResult;
2use crate::region::DiffResult;
3use anyhow::Result;
4use std::io::Write;
5
6pub fn write_json(
7 result: &DiffResult,
8 verbose: bool,
9 pretty: bool,
10 writer: &mut impl Write,
11) -> Result<()> {
12 if verbose {
13 if pretty {
14 serde_json::to_writer_pretty(&mut *writer, result)?;
15 } else {
16 serde_json::to_writer(&mut *writer, result)?;
17 }
18 } else {
19 let compact = CompactDiffResult::from(result);
20 if pretty {
21 serde_json::to_writer_pretty(&mut *writer, &compact)?;
22 } else {
23 serde_json::to_writer(&mut *writer, &compact)?;
24 }
25 }
26 writeln!(writer)?;
27 Ok(())
28}