[][src]Trait tokio_proto::BindServer

pub trait BindServer<Kind, T: 'static>: 'static {
    type ServiceRequest;
    type ServiceResponse;
    type ServiceError;
    fn bind_server<S>(&self, handle: &Handle, io: T, service: S)
    where
        S: Service<Request = Self::ServiceRequest, Response = Self::ServiceResponse, Error = Self::ServiceError> + 'static
; }

Binds a service to an I/O object.

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

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.

Associated Types

type ServiceRequest

The request type for the service.

type ServiceResponse

The response type for the service.

type ServiceError

The error type for the service.

Loading content...

Required methods

fn bind_server<S>(&self, handle: &Handle, io: T, service: S) where
    S: Service<Request = Self::ServiceRequest, Response = Self::ServiceResponse, Error = Self::ServiceError> + 'static, 

Bind the service.

This method should spawn a new task on the given event loop handle which provides the given service on the given I/O object.

Loading content...

Implementors

impl<P, T, B> BindServer<StreamingMultiplex<B>, T> for P where
    P: ServerProto<T>,
    T: 'static,
    B: Stream<Item = P::ResponseBody, Error = P::Error>, 
[src]

type ServiceRequest = Message<P::Request, Body<P::RequestBody, P::Error>>

type ServiceResponse = Message<P::Response, B>

type ServiceError = P::Error

impl<P, T, B> BindServer<StreamingPipeline<B>, T> for P where
    P: ServerProto<T>,
    T: 'static,
    B: Stream<Item = P::ResponseBody, Error = P::Error>, 
[src]

type ServiceRequest = Message<P::Request, Body<P::RequestBody, P::Error>>

type ServiceResponse = Message<P::Response, B>

type ServiceError = P::Error

impl<T: 'static, P: ServerProto<T>> BindServer<Multiplex, T> for P[src]

type ServiceRequest = P::Request

type ServiceResponse = P::Response

type ServiceError = Error

impl<T: 'static, P: ServerProto<T>> BindServer<Pipeline, T> for P[src]

type ServiceRequest = P::Request

type ServiceResponse = P::Response

type ServiceError = Error

Loading content...