journal_json/
transport.rs

1#[derive(serde::Deserialize, serde::Serialize, Debug, Eq, PartialEq)]
2pub enum Transport {
3    // for those read from the kernel audit subsystem
4    #[serde(rename = "audit")]
5    Audit,
6
7    // for internally generated messages
8    #[serde(rename = "driver")]
9    Driver,
10
11    // for those received via the local syslog socket with the syslog protocol
12    #[serde(rename = "syslog")]
13    Syslog,
14
15    // for those received via the native journal protocol
16    #[serde(rename = "journal")]
17    Journal,
18
19    // for those read from a service's standard output or error output
20    #[serde(rename = "stdout")]
21    Stdout,
22
23    // for those read from the kernel
24    #[serde(rename = "kernel")]
25    Kernel,
26}
27
28#[cfg(test)]
29mod tests {
30    use super::Transport;
31    #[derive(serde::Deserialize)]
32    struct Val {
33        field: Transport,
34    }
35
36    #[test]
37    fn test_deserialize_transport_audit() {
38        let s = r#"{"field":"audit"}"#;
39        let j: Val = serde_json::from_str(s).unwrap();
40        assert_eq!(j.field, Transport::Audit);
41    }
42
43    #[test]
44    fn test_deserialize_transport_driver() {
45        let s = r#"{"field":"driver"}"#;
46        let j: Val = serde_json::from_str(s).unwrap();
47        assert_eq!(j.field, Transport::Driver);
48    }
49
50    #[test]
51    fn test_deserialize_transport_syslog() {
52        let s = r#"{"field":"syslog"}"#;
53        let j: Val = serde_json::from_str(s).unwrap();
54        assert_eq!(j.field, Transport::Syslog);
55    }
56
57    #[test]
58    fn test_deserialize_transport_journal() {
59        let s = r#"{"field":"journal"}"#;
60        let j: Val = serde_json::from_str(s).unwrap();
61        assert_eq!(j.field, Transport::Journal);
62    }
63
64    #[test]
65    fn test_deserialize_transport_stdout() {
66        let s = r#"{"field":"stdout"}"#;
67        let j: Val = serde_json::from_str(s).unwrap();
68        assert_eq!(j.field, Transport::Stdout);
69    }
70
71    #[test]
72    fn test_deserialize_transport_kernel() {
73        let s = r#"{"field":"kernel"}"#;
74        let j: Val = serde_json::from_str(s).unwrap();
75        assert_eq!(j.field, Transport::Kernel);
76    }
77}