1use std::fmt::{Display, Formatter};
18
19#[derive(Debug)]
20pub enum Mode {
21 AM,
22 ARDOP,
23 ATV,
24 CHIP,
25 CLO,
26 CONTESTI,
27 CW,
28 DIGITALVOICE,
29 DOMINO,
30 DYNAMIC,
31 FAX,
32 FM,
33 FSK441,
34 FT8,
35 HELL,
36 ISCAT,
37 JT4,
38 JT6M,
39 JT9,
40 JT44,
41 JT65,
42 MFSK,
43 MSK144,
44 MT63,
45 OLIVIA,
46 OPERA,
47 PAC,
48 PAX,
49 PKT,
50 PSK,
51 PSK2K,
52 Q15,
53 QRA64,
54 ROS,
55 RTTY,
56 RTTYM,
57 SSB,
58 SSTV,
59 T10,
60 THOR,
61 THRB,
62 TOR,
63 V4,
64 VOI,
65 WINMOR,
66 WSPR,
67 None,
68}
69
70impl Display for Mode {
71 fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
72 write!(f, "{:?}", self)
73 }
74}
75
76#[derive(Debug, Copy, Clone)]
77pub enum PropagationMode {
78 AS,
79 AUE,
80 AUR,
81 BS,
82 ECH,
83 EME,
84 ES,
85 F2,
86 FAI,
87 GWAVE,
88 INTERNET,
89 ION,
90 IRL,
91 LOS,
92 MS,
93 RPT,
94 RS,
95 SAT,
96 TEP,
97 TR,
98 None,
99}
100
101impl Display for PropagationMode {
102 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
103 match self {
104 Self::AS => { write!(f, "Aircraft Scatter") }
105 Self::AUE => { write!(f, "Aurora-E") }
106 Self::AUR => { write!(f, "Aurora") }
107 Self::BS => { write!(f, "Back scatter") }
108 Self::ECH => { write!(f, "EchoLink") }
109 Self::EME => { write!(f, "Earth-Moon-Earth") }
110 Self::ES => { write!(f, "Sporadic E") }
111 Self::F2 => { write!(f, "F2 Reflection") }
112 Self::FAI => { write!(f, "Field Aligned Irregularities") }
113 Self::GWAVE => { write!(f, "Ground Wave") }
114 Self::INTERNET => { write!(f, "Internet-assisted") }
115 Self::ION => { write!(f, "Ionoscatter") }
116 Self::IRL => { write!(f, "IRLP") }
117 Self::LOS => { write!(f, "Line of Sight (includes transmission through obstacles such as walls)") }
118 Self::MS => { write!(f, "Meteor scatter") }
119 Self::RPT => { write!(f, "Terrestrial or atmospheric repeater or transponder") }
120 Self::RS => { write!(f, "Rain scatter") }
121 Self::SAT => { write!(f, "Satellite") }
122 Self::TEP => { write!(f, "Trans-equatorial") }
123 Self::TR => { write!(f, "Tropospheric ducting") }
124 Self::None => { write!(f, "") }
125 }
126 }
127}