ogn_parser/
error.rs

1use serde::Serialize;
2
3#[derive(Debug, Eq, PartialEq, thiserror::Error, Serialize, Clone)]
4pub enum AprsError {
5    #[error("Empty Callsign: {0}")]
6    EmptyCallsign(String),
7    #[error("Empty Callsign SSID: {0}")]
8    EmptySSID(String),
9    #[error("Invalid Callsign SSID: {0}")]
10    InvalidSSID(String),
11    #[error("Invalid Timestamp: {0}")]
12    InvalidTimestamp(String),
13    #[error("Unsupported Position Format: {0}")]
14    UnsupportedPositionFormat(String),
15    #[error("Invalid Position: {0}")]
16    InvalidPosition(String),
17    #[error("Invalid Latitude: {0}")]
18    InvalidLatitude(String),
19    #[error("Invalid Longitude: {0}")]
20    InvalidLongitude(String),
21    #[error("Invalid Packet: {0}")]
22    InvalidPacket(String),
23    #[error("Invalid Message Destination: {0}")]
24    InvalidMessageDestination(String),
25    #[error("Invalid Message ID: {0}")]
26    InvalidMessageId(String),
27    #[error("String contains non-ASCII characters: {0}")]
28    InvalidCoding(String),
29
30    #[error("Invalid Server comment: {0}")]
31    InvalidServerComment(String),
32
33    #[error("Timestamp out of range: {0}")]
34    TimestampOutOfRange(String),
35}
36
37#[derive(Debug, PartialEq, thiserror::Error)]
38pub enum EncodeError {
39    #[error("Invalid Latitude: {0}")]
40    InvalidLatitude(f64),
41    #[error("Invalid Longitude: {0}")]
42    InvalidLongitude(f64),
43    #[error("Invalid Aprs Data")]
44    InvalidData,
45    #[error(transparent)]
46    Format(#[from] std::fmt::Error),
47}