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(())
}