28 lines
671 B
Rust
28 lines
671 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(String::new()),
|
|
}
|
|
}
|
|
}
|
|
|
|
pub enum RequestState<Req: Request, Res: Response> {
|
|
Incoming(String),
|
|
Processing(Req),
|
|
Outgoing(Res),
|
|
}
|