use serde::Serialize;
use tabled::settings::Style;
use tabled::{Table, Tabled};
use crate::error::RenderError;
#[must_use]
pub fn render_table<R: Tabled>(rows: &[R]) -> String {
let mut table = Table::new(rows);
table.with(Style::psql());
let mut s = table.to_string();
if !s.ends_with('\n') {
s.push('\n');
}
s
}
pub fn render_json<R: Serialize>(rows: &[R]) -> Result<String, RenderError> {
let mut out =
serde_json::to_string_pretty(rows).map_err(|e| RenderError::Json(e.to_string()))?;
out.push('\n');
Ok(out)
}