blob: 850f41ea3c8a2bf705ef287e186c8a99046aec3c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
use super::{code::Code, header::{HeaderMap, Header}};
#[derive(Debug, Clone)]
pub struct Response {
pub status: Code,
pub headers: HeaderMap,
pub body: Option<String>
}
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: Code::Success,
headers,
body: None
}
}
pub fn deserialize(&self) -> String {
let mut string = String::new();
string += &format!("HTTP/1.1 {}\n", self.status.clone() as u16);
string += &self.headers.deserialize();
if let Some(body) = &self.body {
string += "\n";
string += body;
}
string
}
}
|