Trait tokio_proto::streaming::pipeline::ServerProto
[−]
[src]
pub trait ServerProto<T: 'static>: 'static { type Request: 'static; type RequestBody: 'static; type Response: 'static; type ResponseBody: 'static; type Error: From<Error> + 'static; type Transport: Transport<Item=Frame<Self::Request, Self::RequestBody, Self::Error>, SinkItem=Frame<Self::Response, Self::ResponseBody, Self::Error>>; type BindTransport: IntoFuture<Item=Self::Transport, Error=Error>; fn bind_transport(&self, io: T) -> Self::BindTransport; }
A streaming, pipelined server protocol.
The T
parameter is used for the I/O object used to communicate, which is
supplied in bind_transport
.
For simple protocols, the Self
type is often a unit struct. In more
advanced cases, Self
may contain configuration information that is used
for setting up the transport in bind_transport
.
Associated Types
type Request: 'static
Request headers.
type RequestBody: 'static
Request body chunks.
type Response: 'static
Response headers.
type ResponseBody: 'static
Response body chunks.
type Error: From<Error> + 'static
Errors, which are used both for error frames and for the service itself.
type Transport: Transport<Item=Frame<Self::Request, Self::RequestBody, Self::Error>, SinkItem=Frame<Self::Response, Self::ResponseBody, Self::Error>>
The frame transport, which usually take T
as a parameter.
type BindTransport: IntoFuture<Item=Self::Transport, Error=Error>
A future for initializing a transport from an I/O object.
In simple cases, Result<Self::Transport, Self::Error>
often suffices.
Required Methods
fn bind_transport(&self, io: T) -> Self::BindTransport
Build a transport from the given I/O object, using self
for any
configuration.