tokio_tower::multiplex::client

Struct Client

Source
pub struct Client<T, E, Request>
where T: Sink<Request> + TryStream,
{ /* private fields */ }
Expand description

This type provides an implementation of a Tower Service on top of a request-at-a-time protocol transport. In particular, it wraps a transport that implements Sink<SinkItem = Request> and Stream<Item = Response> with the necessary bookkeeping to adhere to Tower’s convenient fn(Request) -> Future<Response> API.

Implementations§

Source§

impl<T, E, Request> Client<T, E, Request>
where T: Sink<Request> + TryStream + TagStore<Request, <T as TryStream>::Ok> + Send + 'static, E: From<Error<T, Request>> + 'static + Send, Request: 'static + Send, T::Ok: 'static + Send, T::Tag: Send,

Source

pub fn new(transport: T) -> Self

Construct a new Client over the given transport.

If the Client errors, the error is dropped when new is used – use with_error_handler to handle such an error explicitly.

Source

pub fn with_error_handler<F>(transport: T, on_service_error: F) -> Self
where F: FnOnce(E) + Send + 'static,

Construct a new Client over the given transport.

If the Client errors, its error is passed to on_service_error.

Trait Implementations§

Source§

impl<T, E, Request> Debug for Client<T, E, Request>
where T: Sink<Request> + TryStream,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T, E, Request> Load for Client<T, E, Request>
where T: Sink<Request> + TryStream,

Source§

type Metric = usize

A comparable load metric. Read more
Source§

fn load(&self) -> Self::Metric

Estimate the service’s current load.
Source§

impl<T, E, Request> Service<Request> for Client<T, E, Request>
where T: Sink<Request> + TryStream + TagStore<Request, <T as TryStream>::Ok> + 'static, E: From<Error<T, Request>> + 'static + Send, Request: 'static + Send, T::Ok: 'static + Send,

Source§

type Response = <T as TryStream>::Ok

Responses given by the service.
Source§

type Error = E

Errors produced by the service.
Source§

type Future = Pin<Box<dyn Future<Output = Result<<Client<T, E, Request> as Service<Request>>::Response, <Client<T, E, Request> as Service<Request>>::Error>> + Send>>

The future response value.
Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>

Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
Source§

fn call(&mut self, req: Request) -> Self::Future

Process the request and return the response asynchronously. Read more

Auto Trait Implementations§

§

impl<T, E, Request> Freeze for Client<T, E, Request>

§

impl<T, E, Request> !RefUnwindSafe for Client<T, E, Request>

§

impl<T, E, Request> Send for Client<T, E, Request>
where Request: Send, <T as TryStream>::Ok: Send,

§

impl<T, E, Request> Sync for Client<T, E, Request>
where Request: Send, <T as TryStream>::Ok: Send,

§

impl<T, E, Request> Unpin for Client<T, E, Request>

§

impl<T, E, Request> !UnwindSafe for Client<T, E, Request>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<M, T, Target, Request> MakeTransport<Target, Request> for M
where M: Service<Target, Response = T>, T: TryStream + Sink<Request>,

Source§

type Item = <T as TryStream>::Ok

Items produced by the transport
Source§

type Error = <T as TryStream>::Error

Errors produced when receiving from the transport
Source§

type SinkError = <T as Sink<Request>>::Error

Errors produced when sending to the transport
Source§

type Transport = T

The Sink + Stream implementation created by this factory
Source§

type MakeError = <M as Service<Target>>::Error

Errors produced while building a transport.
Source§

type Future = <M as Service<Target>>::Future

The future of the Service instance.
Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <M as MakeTransport<Target, Request>>::MakeError>>

Returns Ready when the factory is able to create more transports. Read more
Source§

fn make_transport( &mut self, target: Target, ) -> <M as MakeTransport<Target, Request>>::Future

Create and return a new transport asynchronously.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more