diff --git a/src/lib.rs b/src/lib.rs index c8a5a18..f1a9b12 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -287,6 +287,21 @@ impl NewService for Rc { } } +impl<'a, S: Service + 'a> Service for &'a mut S { + type Request = S::Request; + type Response = S::Response; + type Error = S::Error; + type Future = S::Future; + + fn poll_ready(&mut self) -> Poll<(), S::Error> { + (**self).poll_ready() + } + + fn call(&mut self, request: S::Request) -> S::Future { + (**self).call(request) + } +} + impl Service for Box { type Request = S::Request; type Response = S::Response;