mid-net 1.0.0

Network adapter for the `middleware` protocol implementation
Documentation
use integral_enum::IntegralEnum;
use thiserror::Error;

#[derive(IntegralEnum)]
pub enum Protocol {
    Tcp = 0,
    Udp = 1,
}

#[derive(IntegralEnum)]
pub enum PacketType {
    Failure = 0,
    Ping = 1,

    Connect = 2,
    Forward = 3,
    Disconnect = 4,

    CreateServer = 5,

    Authorize = 6,
    UpdateRights = 7,
}

#[derive(IntegralEnum, Error)]
pub enum ProtocolError {
    #[error("Unknown packet sent")]
    UnknownPacket = 0,

    #[error("Unexpected packet for that side")]
    UnexpectedPacket = 1,

    #[error("Functionality currently is not implemented")]
    Unimplemented = 2,

    #[error("You don't have access to this functionality")]
    AccessDenied = 3,

    #[error("Functionality is disabled")]
    Disabled = 4,

    #[error("Failed to create TCP listener")]
    FailedToCreateListener = 5,

    #[error("Failed to retrieve listening port")]
    FailedToRetrievePort = 6,

    #[error("The server is already created")]
    AlreadyCreated = 7,

    #[error("The server is not created")]
    ServerIsNotCreated = 8,

    #[error("Client does not exists")]
    ClientDoesNotExists = 9,

    #[error("Decompression of payload failed")]
    DecompressionFailed = 10,

    #[error("Created server was shut down")]
    ServerWasShutDown = 11,
}