#![allow(dead_code)]
use std::io::{self, Write};
use serde::Serialize;
pub fn render_json<T: Serialize + ?Sized>(value: &T) -> io::Result<()> {
let stdout = io::stdout();
let mut handle = stdout.lock();
serde_json::to_writer_pretty(&mut handle, value)
.map_err(io::Error::other)?;
handle.write_all(b"\n")?;
handle.flush()
}
pub fn render_json_compact<T: Serialize + ?Sized>(value: &T) -> io::Result<()> {
let stdout = io::stdout();
let mut handle = stdout.lock();
serde_json::to_writer(&mut handle, value)
.map_err(io::Error::other)?;
handle.write_all(b"\n")?;
handle.flush()
}
#[cfg(test)]
mod tests {
use super::*;
use serde_json::json;
#[test]
fn render_json_accepts_arbitrary_serialize_input() {
assert!(render_json(&json!({ "ok": true, "rows": [1, 2, 3] })).is_ok());
assert!(render_json_compact(&json!({ "ok": true })).is_ok());
}
}