summaryrefslogtreecommitdiff
path: root/src/server/response.rs
diff options
context:
space:
mode:
authorJan Wolff <janw@mailbox.org>2020-05-17 00:16:57 +0200
committerJan Wolff <janw@mailbox.org>2020-05-17 00:16:57 +0200
commit87d61457bdc33676475803937ccd39e1a6c661de (patch)
tree07291e8b185b1b4cab8940534b5e29f5a1013f55 /src/server/response.rs
parent177d12b5b89f97039a5849d131b3524eecb3bf57 (diff)
working file serving
Diffstat (limited to 'src/server/response.rs')
-rw-r--r--src/server/response.rs50
1 files changed, 11 insertions, 39 deletions
diff --git a/src/server/response.rs b/src/server/response.rs
index 36d5d15..8b087ba 100644
--- a/src/server/response.rs
+++ b/src/server/response.rs
@@ -15,11 +15,6 @@ pub struct Header {
meta: String,
}
-pub struct Response {
- header: Header,
- data: Vec<u8>,
-}
-
impl Header {
pub fn new(status: Status, meta: &str) -> Header {
Header {
@@ -31,47 +26,24 @@ impl Header {
pub fn format(&self) -> String {
format!("{} {}\r\n", self.status as u8, self.meta)
}
-}
-impl Response {
- pub fn new(header: Header, data: Vec<u8>) -> Response {
- Response {
- header: header,
- data: data,
- }
- }
-
- pub fn new_empty(header: Header) -> Response {
- Response {
- header: header,
- data: Vec::new(),
- }
+ pub fn to_vec(&self) -> Vec<u8> {
+ self.format().as_bytes().to_vec()
}
+}
- pub fn format(&self) -> Vec<u8> {
- let mut resp: Vec<u8> = self.header.format().as_bytes().to_vec();
- resp.extend(&self.data);
- return resp;
- }
+pub fn invalid_protocol() -> Header {
+ Header::new(Status::PermanentFailure, "this protocol is not supported")
}
-pub fn invalid_protocol() -> Response {
- Response::new_empty(Header::new(
- Status::PermanentFailure,
- "this protocol is not supported",
- ))
+pub fn not_understood() -> Header {
+ Header::new(Status::PermanentFailure, "request not understood")
}
-pub fn not_understood() -> Response {
- Response::new_empty(Header::new(
- Status::PermanentFailure,
- "request not understood",
- ))
+pub fn not_found() -> Header {
+ Header::new(Status::PermanentFailure, "resource not found")
}
-pub fn internal_error() -> Response {
- Response::new_empty(Header::new(
- Status::PermanentFailure,
- "internal server error",
- ))
+pub fn internal_error() -> Header {
+ Header::new(Status::PermanentFailure, "internal server error")
}