1pub enum Levels {
2 DEBUG,
3 INFO,
4 WARN,
5 ERROR,
6 CRITICAL,
7 NONE,
8}
9
10impl Levels {
11 pub fn as_u8(&self) -> u8 {
12 match self {
13 Self::DEBUG => 0,
14 Self::INFO => 1,
15 Self::WARN => 2,
16 Self::ERROR => 3,
17 Self::CRITICAL => 4,
18 Self::NONE => u8::MAX,
19 }
20 }
21}
22
23#[cfg(test)]
24mod tests {
25 use super::*;
27
28 #[test]
29 fn test_correct_order() {
30 assert!(Levels::NONE.as_u8() > Levels::CRITICAL.as_u8());
31 assert!(Levels::CRITICAL.as_u8() > Levels::ERROR.as_u8());
32 assert!(Levels::ERROR.as_u8() > Levels::WARN.as_u8());
33 assert!(Levels::WARN.as_u8() > Levels::INFO.as_u8());
34 assert!(Levels::INFO.as_u8() > Levels::DEBUG.as_u8());
35 }
36}