Coverage Report

Created: 2025-09-04 06:37

/rust/registry/src/index.crates.io-6f17d22bba15001f/syslog-6.0.1/src/facility.rs
Line
Count
Source (jump to first uncovered line)
1
use std::str::FromStr;
2
3
#[allow(non_camel_case_types)]
4
#[derive(Copy, Clone, Debug)]
5
pub enum Facility {
6
    LOG_KERN = 0 << 3,
7
    LOG_USER = 1 << 3,
8
    LOG_MAIL = 2 << 3,
9
    LOG_DAEMON = 3 << 3,
10
    LOG_AUTH = 4 << 3,
11
    LOG_SYSLOG = 5 << 3,
12
    LOG_LPR = 6 << 3,
13
    LOG_NEWS = 7 << 3,
14
    LOG_UUCP = 8 << 3,
15
    LOG_CRON = 9 << 3,
16
    LOG_AUTHPRIV = 10 << 3,
17
    LOG_FTP = 11 << 3,
18
    LOG_LOCAL0 = 16 << 3,
19
    LOG_LOCAL1 = 17 << 3,
20
    LOG_LOCAL2 = 18 << 3,
21
    LOG_LOCAL3 = 19 << 3,
22
    LOG_LOCAL4 = 20 << 3,
23
    LOG_LOCAL5 = 21 << 3,
24
    LOG_LOCAL6 = 22 << 3,
25
    LOG_LOCAL7 = 23 << 3,
26
}
27
28
impl FromStr for Facility {
29
    type Err = ();
30
0
    fn from_str(s: &str) -> Result<Facility, ()> {
31
0
        let result = match &s.to_lowercase()[..] {
32
0
            "log_kern" | "kern" => Facility::LOG_KERN,
33
0
            "log_user" | "user" => Facility::LOG_USER,
34
0
            "log_mail" | "mail" => Facility::LOG_MAIL,
35
0
            "log_daemon" | "daemon" => Facility::LOG_DAEMON,
36
0
            "log_auth" | "auth" => Facility::LOG_AUTH,
37
0
            "log_syslog" | "syslog" => Facility::LOG_SYSLOG,
38
0
            "log_lpr" | "lpr" => Facility::LOG_LPR,
39
0
            "log_news" | "news" => Facility::LOG_NEWS,
40
0
            "log_uucp" | "uucp" => Facility::LOG_UUCP,
41
0
            "log_cron" | "cron" => Facility::LOG_CRON,
42
0
            "log_authpriv" | "authpriv" => Facility::LOG_AUTHPRIV,
43
0
            "log_ftp" | "ftp" => Facility::LOG_FTP,
44
0
            "log_local0" | "local0" => Facility::LOG_LOCAL0,
45
0
            "log_local1" | "local1" => Facility::LOG_LOCAL1,
46
0
            "log_local2" | "local2" => Facility::LOG_LOCAL2,
47
0
            "log_local3" | "local3" => Facility::LOG_LOCAL3,
48
0
            "log_local4" | "local4" => Facility::LOG_LOCAL4,
49
0
            "log_local5" | "local5" => Facility::LOG_LOCAL5,
50
0
            "log_local6" | "local6" => Facility::LOG_LOCAL6,
51
0
            "log_local7" | "local7" => Facility::LOG_LOCAL7,
52
0
            _ => return Err(()),
53
        };
54
0
        Ok(result)
55
0
    }
56
}
57
58
impl Default for Facility {
59
    /// Returns the default `Facility`, which is `LOG_USER` (as [specified by POSIX]).
60
    ///
61
    /// [specified by POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/closelog.html
62
0
    fn default() -> Self {
63
0
        Facility::LOG_USER
64
0
    }
65
}