#[repr(i32)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum LogLevel {
None = 0,
Info = 1,
Warning = 2,
Error = 4,
Fatal = 8,
Debug1 = 16,
Debug2 = 32,
Debug3 = 64,
Debug4 = 128,
All = 255,
}
impl From<i32> for LogLevel {
fn from(value: i32) -> Self {
match value {
1 => LogLevel::Info,
2 => LogLevel::Warning,
4 => LogLevel::Error,
8 => LogLevel::Fatal,
16 => LogLevel::Debug1,
32 => LogLevel::Debug2,
64 => LogLevel::Debug3,
128 => LogLevel::Debug4,
255 => LogLevel::All,
_ => LogLevel::None,
}
}
}
impl From<u32> for LogLevel {
fn from(value: u32) -> Self {
LogLevel::from(value as i32)
}
}
impl From<LogLevel> for i32 {
fn from(level: LogLevel) -> Self {
level as i32
}
}
impl From<LogLevel> for u32 {
fn from(level: LogLevel) -> Self {
level as u32
}
}