rusmpp/values/
network_type.rs

1crate::create! {
2    #[repr(u8)]
3    #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
4    #[cfg_attr(feature = "arbitrary", derive(::arbitrary::Arbitrary))]
5    #[cfg_attr(feature = "serde", derive(::serde::Serialize))]
6    #[cfg_attr(feature = "serde-deserialize-unchecked", derive(::serde::Deserialize))]
7    pub enum NetworkType {
8        #[default]
9        Unknown = 0x00,
10        Gsm = 0x01,
11        Ansi136 = 0x02,
12        Is95 = 0x03,
13        Pdc = 0x04,
14        Phs = 0x05,
15        IDen = 0x06,
16        Amps = 0x07,
17        PagingNetwork = 0x08,
18        Other(u8),
19    }
20}
21
22impl From<u8> for NetworkType {
23    fn from(value: u8) -> Self {
24        match value {
25            0x00 => NetworkType::Unknown,
26            0x01 => NetworkType::Gsm,
27            0x02 => NetworkType::Ansi136,
28            0x03 => NetworkType::Is95,
29            0x04 => NetworkType::Pdc,
30            0x05 => NetworkType::Phs,
31            0x06 => NetworkType::IDen,
32            0x07 => NetworkType::Amps,
33            0x08 => NetworkType::PagingNetwork,
34            value => NetworkType::Other(value),
35        }
36    }
37}
38
39impl From<NetworkType> for u8 {
40    fn from(value: NetworkType) -> Self {
41        match value {
42            NetworkType::Unknown => 0x00,
43            NetworkType::Gsm => 0x01,
44            NetworkType::Ansi136 => 0x02,
45            NetworkType::Is95 => 0x03,
46            NetworkType::Pdc => 0x04,
47            NetworkType::Phs => 0x05,
48            NetworkType::IDen => 0x06,
49            NetworkType::Amps => 0x07,
50            NetworkType::PagingNetwork => 0x08,
51            NetworkType::Other(value) => value,
52        }
53    }
54}