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
use hyper::header::{CONTENT_LENGTH, CONTENT_TYPE}; use hyper::{Body, Request, Response, StatusCode}; pub fn default_404_handler(_: Request<Body>) -> Response<Body> { let body = "page not found"; make_response(&body, StatusCode::NOT_FOUND) } pub fn method_not_supported_handler(_: Request<Body>) -> Response<Body> { let body = "method not supported"; make_response(&body, StatusCode::METHOD_NOT_ALLOWED) } pub fn internal_server_error_handler(_: Request<Body>) -> Response<Body> { let body = "internal server error"; make_response(&body, StatusCode::INTERNAL_SERVER_ERROR) } pub fn not_implemented_handler(_: Request<Body>) -> Response<Body> { let body = "not implemented"; make_response(&body, StatusCode::NOT_IMPLEMENTED) } fn make_response(body: &'static str, status: StatusCode) -> Response<Body> { Response::builder() .status(status) .header(CONTENT_LENGTH, body.len() as u64) .header(CONTENT_TYPE, "text/plain") .body(Body::from(body)) .expect("Failed to construct response") }