35 lines
842 B
Rust
35 lines
842 B
Rust
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<LogLevel> 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,
|
|
}
|
|
}
|
|
}
|