diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/main.rs b/src/main.rs index ea459d9..3d69f36 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,13 +11,13 @@ use tokio::{ use crate::{ client::Client, - handlers::{Handle, Handlers}, + handler::{Handle, Handler}, request::Request, - response::Response, + response::{Response, Status}, }; mod client; -mod handlers; +mod handler; mod request; mod response; @@ -40,13 +40,13 @@ enum HandleError { InvokeHandler(mlua::Error), #[error("handler error: {0}")] - Handler(#[from] handlers::Error), + Handler(#[from] handler::Error), } #[derive(Debug, thiserror::Error)] enum ResponseError { #[error("error reading request: {0}")] - Request(client::Error), + Request(request::Error), #[error("error sending response: {0}")] Response(io::Error), @@ -70,22 +70,19 @@ enum InitLuaError { EvalConfig(mlua::Error), } -async fn handle<T: Clone + 'static>( - handlers: Table, - request: Request<T>, -) -> Result<Response, HandleError> { - let method = request.inner().method().as_str().to_string(); +async fn handle(handlers: Table, request: Request) -> Result<Response, HandleError> { + let method = request.method().to_string(); let function = handlers .get::<Function>(method.as_str()) .map_err(HandleError::Function)?; let handler = function - .call::<Handlers>(request.clone()) + .call::<Handler>(request.clone()) .map_err(HandleError::InvokeHandler)?; match handler { - Handlers::StaticFile(staticfile) => Ok(staticfile.handle(request).await?), + Handler::StaticFile(staticfile) => Ok(staticfile.handle(request).await?), } } @@ -106,12 +103,9 @@ async fn response(handlers: Table, stream: TcpStream) -> Result<(), ResponseErro Err(e) => { eprintln!("failed to handle request: {e:?}"); - Response::new( - http::Response::builder() - .status(http::StatusCode::INTERNAL_SERVER_ERROR) - .body(response::Body::Empty) - .unwrap(), - ) + Response::builder() + .status(Status::InternalServerError) + .body(response::Body::Empty) } }; |
