pub trait ServerContext: Sized + Send {
fn init_request_info(&self, info: &mut RequestInfo);
fn read_post(&mut self, buf: &mut [u8]) -> usize;
fn read_cookies(&self) -> Option<&str>;
fn finish_request(&mut self) -> bool;
fn is_request_finished(&self) -> bool;
}
#[derive(Debug, Default, Clone)]
pub struct RequestInfo {
pub request_method: Option<String>,
pub query_string: Option<String>,
pub request_uri: Option<String>,
pub path_translated: Option<String>,
pub content_type: Option<String>,
pub content_length: i64,
pub proto_num: u16,
pub auth_user: Option<String>,
pub auth_password: Option<String>,
}