netlink_packet_route/link/
link_state.rs
1const IF_OPER_UNKNOWN: u8 = 0;
4const IF_OPER_NOTPRESENT: u8 = 1;
5const IF_OPER_DOWN: u8 = 2;
6const IF_OPER_LOWERLAYERDOWN: u8 = 3;
7const IF_OPER_TESTING: u8 = 4;
8const IF_OPER_DORMANT: u8 = 5;
9const IF_OPER_UP: u8 = 6;
10
11#[derive(Debug, Clone, Copy, Eq, PartialEq)]
12#[non_exhaustive]
13pub enum State {
14 Unknown,
16 NotPresent,
18 Down,
20 LowerLayerDown,
22 Testing,
24 Dormant,
26 Up,
28 Other(u8),
31}
32
33impl From<u8> for State {
34 fn from(value: u8) -> Self {
35 use self::State::*;
36 match value {
37 IF_OPER_UNKNOWN => Unknown,
38 IF_OPER_NOTPRESENT => NotPresent,
39 IF_OPER_DOWN => Down,
40 IF_OPER_LOWERLAYERDOWN => LowerLayerDown,
41 IF_OPER_TESTING => Testing,
42 IF_OPER_DORMANT => Dormant,
43 IF_OPER_UP => Up,
44 _ => Other(value),
45 }
46 }
47}
48
49impl From<State> for u8 {
50 fn from(value: State) -> Self {
51 use self::State::*;
52 match value {
53 Unknown => IF_OPER_UNKNOWN,
54 NotPresent => IF_OPER_NOTPRESENT,
55 Down => IF_OPER_DOWN,
56 LowerLayerDown => IF_OPER_LOWERLAYERDOWN,
57 Testing => IF_OPER_TESTING,
58 Dormant => IF_OPER_DORMANT,
59 Up => IF_OPER_UP,
60 Other(other) => other,
61 }
62 }
63}