wetstring/src/connection.rs

28 lines
669 B
Rust

use crate::{Request, Response};
use mio::{net::TcpStream, Token};
use std::net::SocketAddr;
pub struct Connection<Req: Request, Res: Response> {
pub stream: TcpStream,
pub state: RequestState<Req, Res>,
pub address: SocketAddr,
pub token: Token,
}
impl<Req: Request, Res: Response> Connection<Req, Res> {
pub fn new(stream: TcpStream, address: SocketAddr, token: Token) -> Self {
Self {
stream,
address,
token,
state: RequestState::Incoming(Vec::new()),
}
}
}
pub enum RequestState<Req: Request, Res: Response> {
Incoming(Vec<u8>),
Processing(Req),
Outgoing(Res),
}