tokio_proto

Trait BindClient

Source
pub trait BindClient<Kind, T: 'static>: 'static {
    type ServiceRequest;
    type ServiceResponse;
    type ServiceError;
    type BindClient: Service<Request = Self::ServiceRequest, Response = Self::ServiceResponse, Error = Self::ServiceError>;

    // Required method
    fn bind_client(&self, handle: &Handle, io: T) -> Self::BindClient;
}
Expand description

Binds an I/O object as a client of a service.

This trait is not intended to be implemented directly; instead, implement one of the server protocol traits:

  • pipeline::ClientProto
  • multiplex::ClientProto
  • streaming::pipeline::ClientProto
  • streaming::multiplex::ClientProto

See the crate documentation for more details on those traits.

The Kind parameter, in particular, is a zero-sized type used to allow blanket implementation from the various protocol traits. Any additional implementations of this trait should use their own zero-sized kind type to distinguish them.

Required Associated Types§

Source

type ServiceRequest

The request type for the service.

Source

type ServiceResponse

The response type for the service.

Source

type ServiceError

The error type for the service.

Source

type BindClient: Service<Request = Self::ServiceRequest, Response = Self::ServiceResponse, Error = Self::ServiceError>

The bound service.

Required Methods§

Source

fn bind_client(&self, handle: &Handle, io: T) -> Self::BindClient

Bind an I/O object as a service.

Implementors§

Source§

impl<P, T, B> BindClient<StreamingMultiplex<B>, T> for P
where P: ClientProto<T>, T: 'static, B: Stream<Item = P::RequestBody, Error = P::Error> + 'static,

Source§

impl<P, T, B> BindClient<StreamingPipeline<B>, T> for P
where P: ClientProto<T>, T: 'static, B: Stream<Item = P::RequestBody, Error = P::Error> + 'static,

Source§

impl<T: 'static, P: ClientProto<T>> BindClient<Multiplex, T> for P

Source§

impl<T: 'static, P: ClientProto<T>> BindClient<Pipeline, T> for P