use actix_files::NamedFile; use actix_web::middleware::errhandlers::ErrorHandlerResponse; use actix_web::{dev, Responder, Result}; pub fn bad_request(res: dev::ServiceResponse) -> Result> { let new_resp = NamedFile::open("static/errors/400.htm")? .set_status_code(res.status()) .respond_to(res.request()) .into_inner()?; Ok(ErrorHandlerResponse::Response( res.into_response(new_resp.into_body()), )) } pub fn not_found(res: dev::ServiceResponse) -> Result> { let new_resp = NamedFile::open("static/errors/404.htm")? .set_status_code(res.status()) .respond_to(res.request()) .into_inner()?; Ok(ErrorHandlerResponse::Response( res.into_response(new_resp.into_body()), )) } pub fn internal_server_error(res: dev::ServiceResponse) -> Result> { let new_resp = NamedFile::open("static/errors/500.htm")? .set_status_code(res.status()) .respond_to(res.request()) .into_inner()?; Ok(ErrorHandlerResponse::Response( res.into_response(new_resp.into_body()), )) }