summaryrefslogtreecommitdiff
path: root/src/server/response.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/response.rs')
-rw-r--r--src/server/response.rs47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/server/response.rs b/src/server/response.rs
index f2df722..36d5d15 100644
--- a/src/server/response.rs
+++ b/src/server/response.rs
@@ -2,12 +2,12 @@ use std::vec::Vec;
#[derive(Copy, Clone)]
pub enum Status {
- Input = 1,
- Success = 2,
- Redirect = 3,
- TemporaryFailure = 4,
- PermanentFailure = 5,
- ClientCertificateRequired = 6,
+ Input = 10,
+ Success = 20,
+ Redirect = 30,
+ TemporaryFailure = 40,
+ PermanentFailure = 50,
+ ClientCertificateRequired = 60,
}
pub struct Header {
@@ -22,28 +22,27 @@ pub struct Response {
impl Header {
pub fn new(status: Status, meta: &str) -> Header {
- Header{
+ Header {
status: status,
meta: meta.to_string(),
}
}
pub fn format(&self) -> String {
- let status: u8 = self.status as u8;
- return format!("{} {}\r\n", status * 10, self.meta)
+ format!("{} {}\r\n", self.status as u8, self.meta)
}
}
impl Response {
pub fn new(header: Header, data: Vec<u8>) -> Response {
- Response{
+ Response {
header: header,
data: data,
}
}
pub fn new_empty(header: Header) -> Response {
- Response{
+ Response {
header: header,
data: Vec::new(),
}
@@ -56,11 +55,23 @@ impl Response {
}
}
-pub fn invalid_protocol () -> Response {
- Response::new_empty(
- 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() -> Response {
+ Response::new_empty(Header::new(
+ Status::PermanentFailure,
+ "request not understood",
+ ))
+}
+
+pub fn internal_error() -> Response {
+ Response::new_empty(Header::new(
+ Status::PermanentFailure,
+ "internal server error",
+ ))
}