🚧 checkpoint
parent
2e2e6a5f32
commit
1615f0d075
|
@ -79,6 +79,13 @@ impl <'a> ResponseHandle <'a> {
|
|||
println! ("Err: {:?}", e);
|
||||
}
|
||||
}
|
||||
|
||||
async fn respond_2 (
|
||||
self,
|
||||
r: http_serde::Response
|
||||
) {
|
||||
self.respond (r.parts, r.body).await
|
||||
}
|
||||
}
|
||||
|
||||
async fn serve_dir (
|
||||
|
|
|
@ -5,6 +5,9 @@ use std::{
|
|||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
// Hyper doesn't seem to make it easy to de/ser requests
|
||||
// and responses and stuff like that, so I do it by hand here.
|
||||
|
||||
pub enum Error {
|
||||
Unsupported,
|
||||
InvalidHeaderName,
|
||||
|
@ -57,6 +60,12 @@ pub enum StatusCode {
|
|||
PartialContent,
|
||||
}
|
||||
|
||||
impl Default for StatusCode {
|
||||
fn default () -> Self {
|
||||
Self::Ok
|
||||
}
|
||||
}
|
||||
|
||||
impl From <StatusCode> for hyper::StatusCode {
|
||||
fn from (x: StatusCode) -> Self {
|
||||
match x {
|
||||
|
@ -67,7 +76,7 @@ impl From <StatusCode> for hyper::StatusCode {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive (Deserialize, Serialize)]
|
||||
#[derive (Default, Deserialize, Serialize)]
|
||||
pub struct ResponseParts {
|
||||
pub status_code: StatusCode,
|
||||
|
||||
|
@ -77,3 +86,26 @@ pub struct ResponseParts {
|
|||
|
||||
pub headers: HashMap <String, Vec <u8>>,
|
||||
}
|
||||
|
||||
#[derive (Default)]
|
||||
pub struct Response {
|
||||
pub parts: ResponseParts,
|
||||
pub body: Option <reqwest::Body>,
|
||||
}
|
||||
|
||||
impl Response {
|
||||
pub fn status_code (&mut self, c: StatusCode) -> &mut Self {
|
||||
self.parts.status_code = c;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn header (&mut self, k: String, v: Vec <u8>) -> &mut Self {
|
||||
self.parts.headers.insert (k, v);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn body (&mut self, b: reqwest::Body) -> &mut Self {
|
||||
self.body = Some (b);
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue