#[cfg(feature = "config-serde")]
use serde::{Serialize, Deserialize};
#[derive(Clone, Eq, PartialEq, Debug)]
#[cfg_attr(feature = "config-serde", derive(Serialize, Deserialize), serde(default))]
pub struct Config {
pub level: log::LevelFilter,
#[cfg(feature = "color")]
#[cfg_attr(feature = "config-serde", serde(alias = "colour"))]
pub color: Color,
#[cfg(feature = "chrono")]
pub datetime_format: String
}
impl Default for Config {
#[inline]
fn default() -> Self {
let level = if cfg!(debug_assertions) {
log::LevelFilter::max()
} else {
log::LevelFilter::Info
};
Self {
level,
#[cfg(feature = "color")]
color: Color::Auto,
#[cfg(feature = "chrono")]
datetime_format: String::from("%Y-%m-%d %H:%M:%S %:z ")
}
}
}
#[cfg(feature = "color")]
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
#[cfg_attr(feature = "config-serde", derive(Serialize, Deserialize), serde(rename_all = "lowercase"))]
pub enum Color {
Off,
On,
Auto
}