1use std::io::Write;
2
3use serde::{Deserialize, Serialize};
4
5use crate::output::OutputTrait;
6use crate::result::Result;
7
8pub struct JsonOutput;
9
10impl JsonOutput {
11 pub fn new() -> Self {
12 Self {}
13 }
14}
15
16impl OutputTrait for JsonOutput {
17 fn display<'a, T: Deserialize<'a> + Serialize>(
18 &self,
19 writer: impl Write,
20 obj: &T,
21 _include_keys: Option<Vec<&str>>,
22 _exclude_keys: Option<Vec<&str>>,
23 ) -> Result<()> {
24 Ok(serde_json::to_writer_pretty(writer, obj)?)
25 }
26}