///|
pub(all) enum Level {
TRACE
DEBUG
INFO
WARN
ERROR
}
///|
pub fn level_to_string(l : Level) -> String {
match l {
Level::TRACE => "TRACE"
Level::DEBUG => "DEBUG"
Level::INFO => "INFO"
Level::WARN => "WARN"
Level::ERROR => "ERROR"
}
}
///|
pub fn level_ordinal(l : Level) -> Int {
match l {
Level::TRACE => 0
Level::DEBUG => 1
Level::INFO => 2
Level::WARN => 3
Level::ERROR => 4
}
}
///|
pub fn should_log(msg_level : Level, threshold : Level) -> Bool {
level_ordinal(msg_level) >= level_ordinal(threshold)
}