wetstring/src/request_response.rs

20 lines
426 B
Rust

pub trait Request {
type Response;
fn from_bytes(request_bytes: &[u8]) -> RequestParseResult<Self, Self::Response>
where
Self: Sized,
Self::Response: Response;
}
pub trait Response {
fn to_bytes(self) -> Vec<u8>;
}
pub type ProcessRequest<Req, Res> = fn(request: &Req) -> Res;
pub enum RequestParseResult<Req: Request, Res: Response> {
Incomplete,
Complete(Req),
Invalid(Res),
}