use crate::{Reply, Request};
use std::net::SocketAddr;
#[derive(Debug, Clone, PartialEq)]
pub struct Transmit {
pub dst: Option<SocketAddr>,
pub payload: Vec<u8>,
}
impl Transmit {
pub fn new(payload: Vec<u8>) -> Self {
Self { dst: None, payload }
}
pub fn new_with_dst(dst: SocketAddr, payload: Vec<u8>) -> Self {
Self {
dst: Some(dst),
payload,
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum ParseResult {
Complete {
message: Vec<u8>,
consumed: usize,
},
Incomplete {
needed: usize,
},
Invalid {
error: String,
},
}
#[derive(Debug, Clone)]
pub enum ClientEvent {
Reply {
method: String,
reply: Reply,
continues: bool,
},
Error {
method: String,
error: String,
},
Upgraded {
interface: String,
},
}
#[derive(Debug, Clone)]
pub enum ServerEvent {
Request {
request: Request<'static>,
},
Upgrade {
interface: String,
},
}