use super::{header::{HeaderMap, Header}}; #[derive(Debug, Clone)] pub struct Response { pub status: u16, pub headers: HeaderMap, pub body: Option } impl Response { pub fn new() -> Self { let mut headers = HeaderMap::new(); headers.put(Header::new("Connection", "close")); let date = chrono::offset::Utc::now(); headers.put(Header::new("Date", &date.to_rfc2822())); headers.put(Header::new("Server", "bashttp")); return Self { status: 200, headers, body: None } } pub fn deserialize(&self) -> String { let mut string = String::new(); string += &format!("HTTP/1.1 {}\n", self.status); string += &self.headers.deserialize(); if let Some(body) = &self.body { string += "\n"; string += body; } string } }