hamlib_client/
adif.rs

1/*
2 * Copyright (C) 2024 Luca Cireddu <sardylan@gmail.com>
3 *
4 * This program is free software: you can redistribute it and/or modify it under
5 * the terms of the GNU General Public License as published by the Free Software
6 * Foundation, version 3.
7 *
8 * This program is distributed in the hope that it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License along with
13 * this program. If not, see <https://www.gnu.org/licenses/>.
14 *
15 */
16
17use 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}