gearbox 3.0.0

Excessive tooling for Rust, boosting productivity and operations
Documentation
pub enum Facility {
    Kernel,
    User,
    Mail,
    System,
    Security,
    Syslog,
    Printer,
    News,
    Uucp,
    Clock,
    Auth,
    Ftp,
    Ntp,
    Audit,
    Alert,
    Clock2,
    Local0,
    Local1,
    Local2,
    Local3,
    Local4,
    Local5,
    Local6,
    Local7,
}

impl Facility {
    pub fn as_str(&self) -> &'static str {
        match self {
            Facility::Kernel => "kernel",
            Facility::User => "user",
            Facility::Mail => "mail",
            Facility::System => "system",
            Facility::Security => "security",
            Facility::Syslog => "syslog",
            Facility::Printer => "printer",
            Facility::News => "news",
            Facility::Uucp => "uucp",
            Facility::Clock => "clock",
            Facility::Auth => "auth",
            Facility::Ftp => "ftp",
            Facility::Ntp => "ntp",
            Facility::Audit => "audit",
            Facility::Alert => "alert",
            Facility::Clock2 => "clock2",
            Facility::Local0 => "local0",
            Facility::Local1 => "local1",
            Facility::Local2 => "local2",
            Facility::Local3 => "local3",
            Facility::Local4 => "local4",
            Facility::Local5 => "local5",
            Facility::Local6 => "local6",
            Facility::Local7 => "local7",
        }
    }

    pub fn as_int(&self) -> u8 {
        match self {
            Facility::Kernel => 0,
            Facility::User => 1,
            Facility::Mail => 2,
            Facility::System => 3,
            Facility::Security => 4,
            Facility::Syslog => 5,
            Facility::Printer => 6,
            Facility::News => 7,
            Facility::Uucp => 8,
            Facility::Clock => 9,
            Facility::Auth => 10,
            Facility::Ftp => 11,
            Facility::Ntp => 12,
            Facility::Audit => 13,
            Facility::Alert => 14,
            Facility::Clock2 => 15,
            Facility::Local0 => 16,
            Facility::Local1 => 17,
            Facility::Local2 => 18,
            Facility::Local3 => 19,
            Facility::Local4 => 20,
            Facility::Local5 => 21,
            Facility::Local6 => 22,
            Facility::Local7 => 23,
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_facility_as_str() {
        assert_eq!(Facility::Kernel.as_str(), "kernel");
        assert_eq!(Facility::User.as_str(), "user");
        assert_eq!(Facility::Mail.as_str(), "mail");
        assert_eq!(Facility::System.as_str(), "system");
        assert_eq!(Facility::Security.as_str(), "security");
        assert_eq!(Facility::Syslog.as_str(), "syslog");
        assert_eq!(Facility::Printer.as_str(), "printer");
        assert_eq!(Facility::News.as_str(), "news");
        assert_eq!(Facility::Uucp.as_str(), "uucp");
        assert_eq!(Facility::Clock.as_str(), "clock");
        assert_eq!(Facility::Auth.as_str(), "auth");
        assert_eq!(Facility::Ftp.as_str(), "ftp");
        assert_eq!(Facility::Ntp.as_str(), "ntp");
        assert_eq!(Facility::Audit.as_str(), "audit");
        assert_eq!(Facility::Alert.as_str(), "alert");
        assert_eq!(Facility::Clock2.as_str(), "clock2");
        assert_eq!(Facility::Local0.as_str(), "local0");
        assert_eq!(Facility::Local1.as_str(), "local1");
        assert_eq!(Facility::Local2.as_str(), "local2");
        assert_eq!(Facility::Local3.as_str(), "local3");
        assert_eq!(Facility::Local4.as_str(), "local4");
        assert_eq!(Facility::Local5.as_str(), "local5");
        assert_eq!(Facility::Local6.as_str(), "local6");
        assert_eq!(Facility::Local7.as_str(), "local7");
    }

    #[test]
    fn test_facility_as_int() {
        assert_eq!(Facility::Kernel.as_int(), 0);
        assert_eq!(Facility::User.as_int(), 1);
        assert_eq!(Facility::Mail.as_int(), 2);
        assert_eq!(Facility::System.as_int(), 3);
        assert_eq!(Facility::Security.as_int(), 4);
        assert_eq!(Facility::Syslog.as_int(), 5);
        assert_eq!(Facility::Printer.as_int(), 6);
        assert_eq!(Facility::News.as_int(), 7);
        assert_eq!(Facility::Uucp.as_int(), 8);
        assert_eq!(Facility::Clock.as_int(), 9);
        assert_eq!(Facility::Auth.as_int(), 10);
        assert_eq!(Facility::Ftp.as_int(), 11);
        assert_eq!(Facility::Ntp.as_int(), 12);
        assert_eq!(Facility::Audit.as_int(), 13);
        assert_eq!(Facility::Alert.as_int(), 14);
        assert_eq!(Facility::Clock2.as_int(), 15);
        assert_eq!(Facility::Local0.as_int(), 16);
        assert_eq!(Facility::Local1.as_int(), 17);
        assert_eq!(Facility::Local2.as_int(), 18);
        assert_eq!(Facility::Local3.as_int(), 19);
        assert_eq!(Facility::Local4.as_int(), 20);
        assert_eq!(Facility::Local5.as_int(), 21);
        assert_eq!(Facility::Local6.as_int(), 22);
        assert_eq!(Facility::Local7.as_int(), 23);
    }
}