use serde::Serialize;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum OutputMode {
Table,
Json,
}
#[derive(Serialize)]
struct JsonError {
error: String,
}
pub fn print_json<T: Serialize>(data: &T) {
match serde_json::to_string_pretty(data) {
Ok(s) => println!("{}", s),
Err(e) => eprintln!("JSON serialization error: {}", e),
}
}
pub fn print_json_error(msg: &str) {
let err = JsonError {
error: msg.to_string(),
};
match serde_json::to_string_pretty(&err) {
Ok(s) => println!("{}", s),
Err(_) => println!("{{\"error\": \"unknown\"}}"),
}
}