diff options
Diffstat (limited to 'vendor/hyper-util/src/client/client.rs')
| -rw-r--r-- | vendor/hyper-util/src/client/client.rs | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/vendor/hyper-util/src/client/client.rs b/vendor/hyper-util/src/client/client.rs deleted file mode 100644 index a9fb244a..00000000 --- a/vendor/hyper-util/src/client/client.rs +++ /dev/null @@ -1,132 +0,0 @@ -use hyper::{Request, Response}; -use tower::{Service, MakeService}; - -use super::connect::Connect; -use super::pool; - -pub struct Client<M> { - // Hi there. So, let's take a 0.14.x hyper::Client, and build up its layers - // here. We don't need to fully expose the layers to start with, but that - // is the end goal. - // - // Client = MakeSvcAsService< - // SetHost< - // Http1RequestTarget< - // DelayedRelease< - // ConnectingPool<C, P> - // > - // > - // > - // > - make_svc: M, -} - -// We might change this... :shrug: -type PoolKey = hyper::Uri; - -struct ConnectingPool<C, P> { - connector: C, - pool: P, -} - -struct PoolableSvc<S>(S); - -/// A marker to identify what version a pooled connection is. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] -#[allow(dead_code)] -pub enum Ver { - Auto, - Http2, -} - -// ===== impl Client ===== - -impl<M, /*ReqBody, ResBody,*/ E> Client<M> -where - M: MakeService< - hyper::Uri, - Request<()>, - Response = Response<()>, - Error = E, - MakeError = E, - >, - //M: Service<hyper::Uri, Error = E>, - //M::Response: Service<Request<ReqBody>, Response = Response<ResBody>>, -{ - pub async fn request(&mut self, req: Request<()>) -> Result<Response<()>, E> { - let mut svc = self.make_svc.make_service(req.uri().clone()).await?; - svc.call(req).await - } -} - -impl<M, /*ReqBody, ResBody,*/ E> Client<M> -where - M: MakeService< - hyper::Uri, - Request<()>, - Response = Response<()>, - Error = E, - MakeError = E, - >, - //M: Service<hyper::Uri, Error = E>, - //M::Response: Service<Request<ReqBody>, Response = Response<ResBody>>, -{ - -} - -// ===== impl ConnectingPool ===== - -impl<C, P> ConnectingPool<C, P> -where - C: Connect, - C::_Svc: Unpin + Send + 'static, -{ - async fn connection_for(&self, target: PoolKey) -> Result<pool::Pooled<PoolableSvc<C::_Svc>, PoolKey>, ()> { - todo!() - } -} - -impl<S> pool::Poolable for PoolableSvc<S> -where - S: Unpin + Send + 'static, -{ - fn is_open(&self) -> bool { - /* - match self.tx { - PoolTx::Http1(ref tx) => tx.is_ready(), - #[cfg(feature = "http2")] - PoolTx::Http2(ref tx) => tx.is_ready(), - } - */ - true - } - - fn reserve(self) -> pool::Reservation<Self> { - /* - match self.tx { - PoolTx::Http1(tx) => Reservation::Unique(PoolClient { - conn_info: self.conn_info, - tx: PoolTx::Http1(tx), - }), - #[cfg(feature = "http2")] - PoolTx::Http2(tx) => { - let b = PoolClient { - conn_info: self.conn_info.clone(), - tx: PoolTx::Http2(tx.clone()), - }; - let a = PoolClient { - conn_info: self.conn_info, - tx: PoolTx::Http2(tx), - }; - Reservation::Shared(a, b) - } - } - */ - pool::Reservation::Unique(self) - } - - fn can_share(&self) -> bool { - false - //self.is_http2() - } -} |
