apollo_logger/
levels.rs

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    // Note this useful idiom: importing names from outer (for mod tests) scope.
26    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}