use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LogConfig {
#[serde(default)]
pub format: LogFormat,
#[serde(default = "default_level")]
pub level: String,
#[serde(default = "default_true")]
pub ansi: bool,
}
fn default_level() -> String {
"info".to_owned()
}
fn default_true() -> bool {
true
}
impl Default for LogConfig {
fn default() -> Self {
Self { format: LogFormat::default(), level: default_level(), ansi: default_true() }
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "snake_case")]
pub enum LogFormat {
#[default]
Pretty,
Compact,
Json,
}