Trait MakeConnection
pub trait MakeConnection<Target>: Sealed<(Target,)>
The MakeConnection trait is used to create transports.
The goal of this service is to allow composable methods for creating
AsyncRead + AsyncWrite transports. This could mean creating a TLS
based connection or using some other method to authenticate the connection.
Associated Types
type Connection: AsyncRead + AsyncWrite;The transport provided by this service
type Error;Errors produced by the connecting service
type Future: Future<Output = Result<Self::Connection, Self::Error>>;The future that eventually produces the transport
Required Methods
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>Returns
Poll::Ready(Ok(()))when it is able to make more connections.fn make_connection(&mut self, target: Target) -> Self::FutureConnect and return a transport asynchronously
Implementors
impl<C, Target> MakeConnection<Target> for AndThen<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for AsService<'a, M, Request> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for AsyncFilter<T, U> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Balance<D, Req> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for BoxCloneService<T, U, E> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for BoxCloneSyncService<T, U, E> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for BoxService<T, U, E> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Buffer<Req, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for C where C: Service<Target>, C::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for ConcurrencyLimit<T> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Constant<T, M> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Either<A, B> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Filter<T, U> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for FutureService<F, S> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Hedge<S, P> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for IntoService<M, Request> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for LoadShed<S> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for MapErr<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for MapFuture<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for MapRequest<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for MapResponse<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for MapResult<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Optional<T> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for PeakEwma<S, C> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for PendingRequests<S, C> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for RateLimit<T> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Reconnect<M, Target> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Retry<P, S> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for ServiceFn<T> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Shared<S> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for SpawnReady<S> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Steer<S, F, Req> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Then<S, F> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for Timeout<T> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,impl<C, Target> MakeConnection<Target> for UnsyncBoxService<T, U, E> where C: Service<Target>, <C as Service<Target>>::Response: AsyncRead + AsyncWrite,