use anyhow::Result;
use serde::Serialize;
use std::fmt::Display;
pub trait ToPlainText {
fn to_plain(&self) -> String;
}
pub fn print_opt_val<T: Display>(param: &str, value: &Option<T>) -> String {
if let Some(value) = value {
format!("\t{param}: {value}\n")
} else {
format!("")
}
}
pub fn print_val<T: Display>(param: &str, value: &T) -> String {
format!("\t{param}: {value}\n")
}
pub trait ToJson {
fn to_json(&self) -> Result<String>
where
Self: Serialize,
{
let s = serde_json::to_string(&self)?;
Ok(s)
}
fn to_json_pretty(&self) -> Result<String>
where
Self: Serialize,
{
let s = serde_json::to_string_pretty(&self)?;
Ok(s)
}
}