use ahash::AHashMap;
use crate::http::{
params::Params,
protocol::{
content_type::ContentType, header::Headers, method::HttpMethod, status::StatusCode,
version::HttpVersion,
},
};
#[derive(Debug, Clone)]
pub struct HttpMetadata {
pub method: HttpMethod,
pub path: String,
pub version: HttpVersion,
pub is_chunked: bool,
pub transfer_encoding: Option<String>,
pub multipart_boundary: Option<String>,
pub params: Option<Params>, pub headers: Headers,
pub content_type: ContentType,
pub cookies: AHashMap<String, String>,
pub is_websocket: bool,
pub status: StatusCode,
pub body: Vec<u8>, }
impl Default for HttpMetadata {
fn default() -> Self {
Self {
method: HttpMethod::GET, path: "/".to_string(),
version: HttpVersion::Http11,
is_chunked: false,
transfer_encoding: None,
multipart_boundary: None,
params: None,
headers: Headers::new(),
content_type: ContentType::default(),
cookies: AHashMap::with_capacity(4),
is_websocket: false,
status: StatusCode::Ok, body: Vec::new(),
}
}
}
impl HttpMetadata {
pub fn new() -> Self {
Self::default()
}
}