narrowlink_network/
error.rs

1use 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}