use std::net::AddrParseError;
use borsh::{BorshDeserialize, BorshSerialize};
#[cfg(feature = "proxy")]
use hickory_resolver::ResolveError;
#[derive(Debug, Clone, PartialEq, Eq, BorshSerialize, BorshDeserialize)]
pub enum QosNetError {
QOSIOError(String),
OversizeMsg,
OversizedPayload,
InvalidMsg,
ParseError(String),
DNSResolutionError(String),
ReadOverflow(usize, usize),
TooManyConnections(usize),
}
impl From<std::io::Error> for QosNetError {
fn from(err: std::io::Error) -> Self {
let msg = format!("{err:?}");
Self::QOSIOError(msg)
}
}
impl From<qos_core::io::IOError> for QosNetError {
fn from(err: qos_core::io::IOError) -> Self {
let msg = format!("{err:?}");
Self::QOSIOError(msg)
}
}
impl From<AddrParseError> for QosNetError {
fn from(err: AddrParseError) -> Self {
let msg = format!("{err:?}");
Self::ParseError(msg)
}
}
#[cfg(feature = "proxy")]
impl From<ResolveError> for QosNetError {
fn from(err: ResolveError) -> Self {
let msg = format!("{err:?}");
Self::DNSResolutionError(msg)
}
}