spreadsheet_mcp/cli/
output.rs1use crate::cli::OutputFormat;
2use crate::response_prune::prune_non_structural_empties;
3use anyhow::{Result, bail};
4use serde_json::Value;
5
6pub fn emit_value(value: &Value, format: OutputFormat, compact: bool, quiet: bool) -> Result<()> {
7 if matches!(format, OutputFormat::Csv) {
8 bail!("csv output is not implemented yet for spreadsheet-cli")
9 }
10
11 let mut value = value.clone();
12 prune_non_structural_empties(&mut value);
13
14 let stdout = std::io::stdout();
15 let mut handle = stdout.lock();
16 if compact || quiet {
17 serde_json::to_writer(&mut handle, &value)?;
18 } else {
19 serde_json::to_writer_pretty(&mut handle, &value)?;
20 }
21 use std::io::Write;
22 handle.write_all(b"\n")?;
23 Ok(())
24}