From 70dcb7d667b48c350aacc72144dfc2a3c1e26529 Mon Sep 17 00:00:00 2001 From: Marcus Griep Date: Wed, 8 Jun 2022 10:25:32 -0400 Subject: [PATCH] feat: enable client to be a service without ownership --- src/async_impl/client.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/async_impl/client.rs b/src/async_impl/client.rs index 6f10139f6..b6e693738 100644 --- a/src/async_impl/client.rs +++ b/src/async_impl/client.rs @@ -1577,6 +1577,20 @@ impl tower_service::Service for Client { } } +impl tower_service::Service for &'_ Client { + type Response = Response; + type Error = crate::Error; + type Future = Pending; + + fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, req: Request) -> Self::Future { + self.execute_request(req) + } +} + impl fmt::Debug for ClientBuilder { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let mut builder = f.debug_struct("ClientBuilder");