1use serde::Serialize;
2
3#[derive(Debug, Eq, PartialEq, thiserror::Error, Serialize)]
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
31#[derive(Debug, PartialEq, thiserror::Error)]
32pub enum EncodeError {
33 #[error("Invalid Latitude: {0}")]
34 InvalidLatitude(f64),
35 #[error("Invalid Longitude: {0}")]
36 InvalidLongitude(f64),
37 #[error("Invalid Aprs Data")]
38 InvalidData,
39 #[error(transparent)]
40 Format(#[from] std::fmt::Error),
41}