add get status code method in http response

This commit is contained in:
landrigun 2023-02-16 10:40:29 +00:00
parent 7d4aabad2c
commit 72bf34127b
3 changed files with 13 additions and 3 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "http" name = "http"
version = "0.1.4" version = "0.1.5"
edition = "2021" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -33,12 +33,16 @@ impl Default for HTTPResponse {
fn default() -> Self { fn default() -> Self {
HTTPResponse { HTTPResponse {
status_line: HTTPStatusLine::default(), status_line: HTTPStatusLine::default(),
body: json::parse(r#"{}"#).unwrap(), body: json::parse("{}").unwrap(),
} }
} }
} }
impl HTTPResponse { impl HTTPResponse {
pub fn get_status_code(&self) -> HTTPStatusCode {
self.status_line.get_status_code()
}
pub fn as_500(message: Option<json::JsonValue>) -> Self { pub fn as_500(message: Option<json::JsonValue>) -> Self {
let mut response = Self::default(); let mut response = Self::default();

View File

@ -1,6 +1,6 @@
use crate::HTTPVersion; use crate::HTTPVersion;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq, Clone, Copy)]
pub enum HTTPStatusCode { pub enum HTTPStatusCode {
Http200, Http200,
Http400, Http400,
@ -21,6 +21,7 @@ impl Into<String> for HTTPStatusCode {
} }
} }
pub struct HTTPStatusLine { pub struct HTTPStatusLine {
version: HTTPVersion, version: HTTPVersion,
status_code: HTTPStatusCode, status_code: HTTPStatusCode,
@ -44,7 +45,12 @@ impl Into<String> for HTTPStatusLine {
} }
impl HTTPStatusLine { impl HTTPStatusLine {
pub fn get_status_code(&self) -> HTTPStatusCode {
self.status_code
}
pub fn set_status_code(&mut self, code: HTTPStatusCode) { pub fn set_status_code(&mut self, code: HTTPStatusCode) {
self.status_code = code; self.status_code = code;
} }
} }