sct_reader/loaders/euroscope/
mod.rs

1use std::{fs::File, io::BufReader, str::FromStr};
2
3use error::Error;
4pub mod colour;
5pub mod error;
6pub mod line;
7pub(crate) mod partial;
8pub mod position;
9pub mod reader;
10pub mod sector;
11pub mod waypoint;
12pub mod symbology;
13pub mod loader;
14mod asr;
15pub use asr::EsAsr;
16
17pub type SectorResult<T> = std::result::Result<T, error::Error>;
18
19#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
20pub enum AirspaceClass {
21    A,
22    B,
23    C,
24    D,
25    E,
26    F,
27    G,
28}
29impl FromStr for AirspaceClass {
30    type Err = Error;
31    fn from_str(s: &str) -> Result<Self, Self::Err> {
32        let result = match s {
33            "A" => AirspaceClass::A,
34            "B" => AirspaceClass::B,
35            "C" => AirspaceClass::C,
36            "D" => AirspaceClass::D,
37            "E" => AirspaceClass::E,
38            "F" => AirspaceClass::F,
39            "G" => AirspaceClass::G,
40            _ => return Err(Error::InvalidAirspaceClass),
41        };
42        Ok(result)
43    }
44}