sct_reader/loaders/euroscope/
error.rs1use std::fmt::Display;
2
3#[derive(Debug, Clone, Copy, Eq, PartialEq)]
4pub enum Error {
5 MissingMetadata,
6 IoError,
7 InvalidColourDefinition,
8 InvalidFileSection,
9 InvalidCoordinate,
10 SectorInfoError,
11 InvalidAirspaceClass,
12 InvalidWaypoint,
13 InvalidPosition,
14 InvalidRunway,
15 InvalidHeading,
16 InvalidVorOrNdb,
17 InvalidFix,
18 InvalidArtccEntry,
19 InvalidSidStarEntry,
20 InvalidGeoEntry,
21 InvalidRegion,
22 InvalidLabel,
23 InvalidOffset,
24 InvalidFreetext,
25 InvalidAtcPosition,
26}
27
28impl Display for Error {
29 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30 write!(
31 f,
32 "{}",
33 match self {
34 Self::MissingMetadata => "Missing metadata",
35 Self::IoError => "Unable to read the source",
36 Self::InvalidColourDefinition => "Invalid colour definition",
37 Self::InvalidFileSection => "Invalid file section",
38 Self::InvalidCoordinate => "Invalid coordinate",
39 Self::SectorInfoError => "Sector information error",
40 Self::InvalidAirspaceClass => "Invalid airspace class",
41 Self::InvalidWaypoint => "Invalid waypoint",
42 Self::InvalidPosition => "Invalid position",
43 Self::InvalidRunway => "Invalid runway",
44 Self::InvalidHeading => "Invalid heading",
45 Self::InvalidVorOrNdb => "Invalid VOR or NDB",
46 Self::InvalidFix => "Invalid fix",
47 Self::InvalidArtccEntry => "Invalid ARTCC entry",
48 Self::InvalidSidStarEntry => "Invalid SID / STAR entry",
49 Self::InvalidGeoEntry => "Invalid geo Entry",
50 Self::InvalidRegion => "Invalid region",
51 Self::InvalidLabel => "Invalid label",
52 Self::InvalidOffset => "Invalid offset",
53 Self::InvalidFreetext => "Invalid freetext",
54 Self::InvalidAtcPosition => "Invalid ATC position",
55 }
56 )
57 }
58}
59
60impl std::error::Error for Error {}
61
62impl From<std::io::Error> for Error {
63 fn from(_: std::io::Error) -> Self {
64 Self::IoError
65 }
66}