use std::net::SocketAddr;
use crate::{errors::*, packets::*};
impl<S: ServiceEvent> From<ProtocolError> for ProtocolEvent<S> {
fn from(error: ProtocolError) -> Self {
ProtocolEvent::Fail(error)
}
}
pub trait ServiceEvent {}
#[derive(Debug)]
pub enum ProtocolEvent<S: ServiceEvent> {
Fail(ProtocolError),
DataTransfer {
connection_id: ConnectionId,
payload: Payload,
},
ServiceEvent(S),
}
#[derive(Debug, PartialEq, Clone)]
pub enum ServerEvent {
ConnectionRequest {
connection_id: ConnectionId,
remote: SocketAddr,
},
}
#[derive(Debug, PartialEq, Clone)]
pub enum ClientEvent {
ConnectionAccepted { connection_id: ConnectionId },
}
impl ServiceEvent for ServerEvent {}
impl ServiceEvent for ClientEvent {}