macos_routing_table/
routing_flag.rs

1#[allow(dead_code)]
2#[derive(Clone, Debug, std::hash::Hash, Eq, PartialEq)]
3pub enum RoutingFlag {
4    Proto1,    // 1
5    Proto2,    // 2
6    Proto3,    // 3
7    Blackhole, // B
8    Broadcast, // b
9    Cloning,   // C
10    PrCloning, // c
11    Dynamic,   // D
12    Gateway,   // G
13    Host,      // H
14    IfScope,   // I
15    IfRef,     // i
16    LlInfo,    // L
17    Modified,  // M
18    Multicast, // m
19    Reject,    // R
20    Router,    // r
21    Static,    // S
22    Up,        // U
23    WasCloned, // W
24    XResolve,  // X
25    Proxy,     // Y
26    Global,    // g
27    Unknown,
28}
29
30impl From<char> for RoutingFlag {
31    fn from(flag_c: char) -> Self {
32        match flag_c {
33            '1' => RoutingFlag::Proto1,
34            '2' => RoutingFlag::Proto2,
35            '3' => RoutingFlag::Proto3,
36            'B' => RoutingFlag::Blackhole,
37            'C' => RoutingFlag::Cloning,
38            'D' => RoutingFlag::Dynamic,
39            'G' => RoutingFlag::Gateway,
40            'H' => RoutingFlag::Host,
41            'I' => RoutingFlag::IfScope,
42            'L' => RoutingFlag::LlInfo,
43            'M' => RoutingFlag::Modified,
44            'R' => RoutingFlag::Reject,
45            'S' => RoutingFlag::Static,
46            'U' => RoutingFlag::Up,
47            'W' => RoutingFlag::WasCloned,
48            'X' => RoutingFlag::XResolve,
49            'Y' => RoutingFlag::Proxy,
50            'b' => RoutingFlag::Broadcast,
51            'c' => RoutingFlag::PrCloning,
52            'g' => RoutingFlag::Global,
53            'i' => RoutingFlag::IfRef,
54            'm' => RoutingFlag::Multicast,
55            'r' => RoutingFlag::Router,
56            _ => RoutingFlag::Unknown,
57        }
58    }
59}