narrowlink_network/
error.rs1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum NetworkError {
5 #[error("IO Error: {0}")]
6 IoError(#[from] std::io::Error),
7 #[error("Network Error: {0}")]
8 HttpError(#[from] hyper::http::Error),
9 #[error("Network Error: {0}")]
10 HyperError(#[from] hyper::Error),
11 #[error("Network Error: {0}")]
12 Tungstenite(#[from] tungstenite::Error),
13 #[error("TLS Error")]
14 TlsError,
15 #[error("Unable To Upgrade: {0}")]
16 UnableToUpgrade(u16),
17 #[error("Request Canceled")]
18 RequestCanceled,
19 #[error("Quic Error")]
20 QuicError,
21 #[error("P2P Invalid Command")]
22 P2PInvalidCommand,
23 #[error("P2P Invalid Domain")]
24 P2PInvalidDomain,
25 #[error("P2P Invalid Crypto")]
26 P2PInvalidCrypto,
27 #[error("P2P Timeout")]
28 P2PTimeout,
29 #[error("P2P Failed")]
30 P2PFailed,
31 #[error("Json Serialization Error: {0}")]
32 JsonSerializationError(#[from] serde_json::Error),
33 #[error("Cryptography Failure: {0}")]
34 XChaCha20Poly1305(chacha20poly1305::Error),
35 #[error("Invalid: {0}")]
36 Invalid(&'static str),
37}
38
39impl From<chacha20poly1305::Error> for NetworkError {
40 fn from(err: chacha20poly1305::Error) -> Self {
41 Self::XChaCha20Poly1305(err)
42 }
43}