yprox 0.2.0

A modifying, multiplexer tcp proxy server tool and library.
Documentation
use std::{net::SocketAddr, sync::mpsc};

use crate::Message;

#[derive(Debug)]
pub enum Error {
    AcceptingConnection(std::io::Error),
    ReceiveError(mpsc::RecvError),
    SendError(mpsc::SendError<Message>),
    BroadcastError(mpsc::SendError<Box<[u8]>>),
    ConnectionError {
        target: SocketAddr,
        cause: std::io::Error,
    },
}

impl From<std::io::Error> for Error {
    fn from(err: std::io::Error) -> Self {
        Self::AcceptingConnection(err)
    }
}

impl From<mpsc::RecvError> for Error {
    fn from(err: mpsc::RecvError) -> Self {
        Self::ReceiveError(err)
    }
}

impl From<mpsc::SendError<Message>> for Error {
    fn from(err: mpsc::SendError<Message>) -> Self {
        Self::SendError(err)
    }
}

impl From<mpsc::SendError<Box<[u8]>>> for Error {
    fn from(err: mpsc::SendError<Box<[u8]>>) -> Self {
        Self::BroadcastError(err)
    }
}

pub type Result<T> = std::result::Result<T, Error>;