diff --git a/src/handler.rs b/src/handler.rs index c68808181..8ba61398a 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -32,7 +32,8 @@ pub trait Responder { /// Convert itself to `AsyncResult` or `Error`. fn respond_to( - self, req: &HttpRequest, + self, + req: &HttpRequest, ) -> Result; } @@ -103,7 +104,8 @@ where type Error = Error; fn respond_to( - self, req: &HttpRequest, + self, + req: &HttpRequest, ) -> Result, Error> { match self { Either::A(a) => match a.respond_to(req) { @@ -142,7 +144,8 @@ where type Error = Error; fn respond_to( - self, req: &HttpRequest, + self, + req: &HttpRequest, ) -> Result, Error> { match self { Some(t) => match t.respond_to(req) { @@ -154,6 +157,18 @@ where } } +impl Responder for () { + type Item = HttpResponse; + type Error = Error; + + fn respond_to( + self, + req: &HttpRequest, + ) -> Result { + Ok(req.build_response(StatusCode::OK).finish()) + } +} + /// Convenience trait that converts `Future` object to a `Boxed` future /// /// For example loading json from request's body is async operation. @@ -293,7 +308,8 @@ impl Responder for AsyncResult { type Error = Error; fn respond_to( - self, _: &HttpRequest, + self, + _: &HttpRequest, ) -> Result, Error> { Ok(self) } @@ -305,7 +321,8 @@ impl Responder for HttpResponse { #[inline] fn respond_to( - self, _: &HttpRequest, + self, + _: &HttpRequest, ) -> Result, Error> { Ok(AsyncResult(Some(AsyncResultItem::Ok(self)))) } @@ -389,7 +406,8 @@ where #[inline] fn respond_to( - self, req: &HttpRequest, + self, + req: &HttpRequest, ) -> Result, Error> { let req = req.clone(); let fut = self