use embassy_net::tcp;
use embassy_sync::channel::TryReceiveError;
pub type SocketResult<T> = Result<T, SocketErr>;
#[derive(Debug)]
pub enum SocketErr {
TcpError(tcp::Error),
ConnectError(tcp::ConnectError),
TryReceiveError(TryReceiveError),
AcceptError(tcp::AcceptError),
}
impl SocketErr {
#[inline]
pub fn no_route() -> Self {
Self::ConnectError(tcp::ConnectError::NoRoute)
}
}
impl From<tcp::Error> for SocketErr {
#[inline]
fn from(value: tcp::Error) -> Self {
Self::TcpError(value)
}
}
impl From<tcp::ConnectError> for SocketErr {
#[inline]
fn from(value: tcp::ConnectError) -> Self {
Self::ConnectError(value)
}
}
impl From<TryReceiveError> for SocketErr {
#[inline]
fn from(value: TryReceiveError) -> Self {
Self::TryReceiveError(value)
}
}
impl From<tcp::AcceptError> for SocketErr {
#[inline]
fn from(value: tcp::AcceptError) -> Self {
Self::AcceptError(value)
}
}