use log::LevelFilter; use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize, Clone, Debug)] pub enum LogLevel { None, Warn, Info, Debug, } impl From<&str> for LogLevel { #[allow(clippy::wildcard_in_or_patterns)] fn from(s: &str) -> Self { let s = s.to_lowercase(); match s.as_str() { "warn" | "w" => LogLevel::Warn, "info" | "i" => LogLevel::Info, "debug" | "d" => LogLevel::Debug, "none" | _ => LogLevel::None, } } } impl From for LevelFilter { fn from(l: LogLevel) -> Self { match l { LogLevel::None => LevelFilter::Off, LogLevel::Warn => LevelFilter::Warn, LogLevel::Info => LevelFilter::Info, LogLevel::Debug => LevelFilter::Debug, } } }