[Fixed] feature tokio-proto
This commit is contained in:
parent
c7041e2111
commit
a335823098
66
src/proto.rs
66
src/proto.rs
@ -14,11 +14,11 @@ extern crate tokio_proto;
|
|||||||
use std::io;
|
use std::io;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use futures::{ Future, IntoFuture, Poll };
|
use futures::{ Future, IntoFuture, Poll };
|
||||||
|
use tokio_io::{ AsyncRead, AsyncWrite };
|
||||||
use rustls::{ ServerConfig, ClientConfig, ServerSession, ClientSession };
|
use rustls::{ ServerConfig, ClientConfig, ServerSession, ClientSession };
|
||||||
use self::tokio_proto::multiplex;
|
use self::tokio_proto::multiplex;
|
||||||
use self::tokio_proto::pipeline;
|
use self::tokio_proto::pipeline;
|
||||||
use self::tokio_proto::streaming;
|
use self::tokio_proto::streaming;
|
||||||
use tokio_core::io::Io;
|
|
||||||
|
|
||||||
use { TlsStream, ServerConfigExt, ClientConfigExt, AcceptAsync, ConnectAsync };
|
use { TlsStream, ServerConfigExt, ClientConfigExt, AcceptAsync, ConnectAsync };
|
||||||
|
|
||||||
@ -52,14 +52,14 @@ impl<T> Server<T> {
|
|||||||
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
||||||
pub struct ServerPipelineBind<T, I>
|
pub struct ServerPipelineBind<T, I>
|
||||||
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: PipelineState<T, I>,
|
state: PipelineState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PipelineState<T, I>
|
enum PipelineState<T, I>
|
||||||
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(AcceptAsync<I>, Arc<T>),
|
First(AcceptAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -67,7 +67,7 @@ enum PipelineState<T, I>
|
|||||||
|
|
||||||
impl<T, I> pipeline::ServerProto<I> for Server<T>
|
impl<T, I> pipeline::ServerProto<I> for Server<T>
|
||||||
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type Response = T::Response;
|
type Response = T::Response;
|
||||||
@ -85,7 +85,7 @@ impl<T, I> pipeline::ServerProto<I> for Server<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ServerPipelineBind<T, I>
|
impl<T, I> Future for ServerPipelineBind<T, I>
|
||||||
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -109,14 +109,14 @@ impl<T, I> Future for ServerPipelineBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
||||||
pub struct ServerMultiplexBind<T, I>
|
pub struct ServerMultiplexBind<T, I>
|
||||||
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: MultiplexState<T, I>,
|
state: MultiplexState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum MultiplexState<T, I>
|
enum MultiplexState<T, I>
|
||||||
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(AcceptAsync<I>, Arc<T>),
|
First(AcceptAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -124,7 +124,7 @@ enum MultiplexState<T, I>
|
|||||||
|
|
||||||
impl<T, I> multiplex::ServerProto<I> for Server<T>
|
impl<T, I> multiplex::ServerProto<I> for Server<T>
|
||||||
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type Response = T::Response;
|
type Response = T::Response;
|
||||||
@ -142,7 +142,7 @@ impl<T, I> multiplex::ServerProto<I> for Server<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ServerMultiplexBind<T, I>
|
impl<T, I> Future for ServerMultiplexBind<T, I>
|
||||||
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -166,14 +166,14 @@ impl<T, I> Future for ServerMultiplexBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
||||||
pub struct ServerStreamingPipelineBind<T, I>
|
pub struct ServerStreamingPipelineBind<T, I>
|
||||||
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: StreamingPipelineState<T, I>,
|
state: StreamingPipelineState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum StreamingPipelineState<T, I>
|
enum StreamingPipelineState<T, I>
|
||||||
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(AcceptAsync<I>, Arc<T>),
|
First(AcceptAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -181,7 +181,7 @@ enum StreamingPipelineState<T, I>
|
|||||||
|
|
||||||
impl<T, I> streaming::pipeline::ServerProto<I> for Server<T>
|
impl<T, I> streaming::pipeline::ServerProto<I> for Server<T>
|
||||||
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type RequestBody = T::RequestBody;
|
type RequestBody = T::RequestBody;
|
||||||
@ -202,7 +202,7 @@ impl<T, I> streaming::pipeline::ServerProto<I> for Server<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ServerStreamingPipelineBind<T, I>
|
impl<T, I> Future for ServerStreamingPipelineBind<T, I>
|
||||||
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::pipeline::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -226,14 +226,14 @@ impl<T, I> Future for ServerStreamingPipelineBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
/// Future returned from `bind_transport` in the `ServerProto` implementation.
|
||||||
pub struct ServerStreamingMultiplexBind<T, I>
|
pub struct ServerStreamingMultiplexBind<T, I>
|
||||||
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: StreamingMultiplexState<T, I>,
|
state: StreamingMultiplexState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum StreamingMultiplexState<T, I>
|
enum StreamingMultiplexState<T, I>
|
||||||
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(AcceptAsync<I>, Arc<T>),
|
First(AcceptAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -241,7 +241,7 @@ enum StreamingMultiplexState<T, I>
|
|||||||
|
|
||||||
impl<T, I> streaming::multiplex::ServerProto<I> for Server<T>
|
impl<T, I> streaming::multiplex::ServerProto<I> for Server<T>
|
||||||
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type RequestBody = T::RequestBody;
|
type RequestBody = T::RequestBody;
|
||||||
@ -262,7 +262,7 @@ impl<T, I> streaming::multiplex::ServerProto<I> for Server<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ServerStreamingMultiplexBind<T, I>
|
impl<T, I> Future for ServerStreamingMultiplexBind<T, I>
|
||||||
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
where T: streaming::multiplex::ServerProto<TlsStream<I, ServerSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -315,14 +315,14 @@ impl<T> Client<T> {
|
|||||||
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
||||||
pub struct ClientPipelineBind<T, I>
|
pub struct ClientPipelineBind<T, I>
|
||||||
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: ClientPipelineState<T, I>,
|
state: ClientPipelineState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ClientPipelineState<T, I>
|
enum ClientPipelineState<T, I>
|
||||||
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(ConnectAsync<I>, Arc<T>),
|
First(ConnectAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -330,7 +330,7 @@ enum ClientPipelineState<T, I>
|
|||||||
|
|
||||||
impl<T, I> pipeline::ClientProto<I> for Client<T>
|
impl<T, I> pipeline::ClientProto<I> for Client<T>
|
||||||
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type Response = T::Response;
|
type Response = T::Response;
|
||||||
@ -349,7 +349,7 @@ impl<T, I> pipeline::ClientProto<I> for Client<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ClientPipelineBind<T, I>
|
impl<T, I> Future for ClientPipelineBind<T, I>
|
||||||
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -373,14 +373,14 @@ impl<T, I> Future for ClientPipelineBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
||||||
pub struct ClientMultiplexBind<T, I>
|
pub struct ClientMultiplexBind<T, I>
|
||||||
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: ClientMultiplexState<T, I>,
|
state: ClientMultiplexState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ClientMultiplexState<T, I>
|
enum ClientMultiplexState<T, I>
|
||||||
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(ConnectAsync<I>, Arc<T>),
|
First(ConnectAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -388,7 +388,7 @@ enum ClientMultiplexState<T, I>
|
|||||||
|
|
||||||
impl<T, I> multiplex::ClientProto<I> for Client<T>
|
impl<T, I> multiplex::ClientProto<I> for Client<T>
|
||||||
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type Response = T::Response;
|
type Response = T::Response;
|
||||||
@ -407,7 +407,7 @@ impl<T, I> multiplex::ClientProto<I> for Client<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ClientMultiplexBind<T, I>
|
impl<T, I> Future for ClientMultiplexBind<T, I>
|
||||||
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -431,14 +431,14 @@ impl<T, I> Future for ClientMultiplexBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
||||||
pub struct ClientStreamingPipelineBind<T, I>
|
pub struct ClientStreamingPipelineBind<T, I>
|
||||||
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: ClientStreamingPipelineState<T, I>,
|
state: ClientStreamingPipelineState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ClientStreamingPipelineState<T, I>
|
enum ClientStreamingPipelineState<T, I>
|
||||||
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(ConnectAsync<I>, Arc<T>),
|
First(ConnectAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -446,7 +446,7 @@ enum ClientStreamingPipelineState<T, I>
|
|||||||
|
|
||||||
impl<T, I> streaming::pipeline::ClientProto<I> for Client<T>
|
impl<T, I> streaming::pipeline::ClientProto<I> for Client<T>
|
||||||
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type RequestBody = T::RequestBody;
|
type RequestBody = T::RequestBody;
|
||||||
@ -468,7 +468,7 @@ impl<T, I> streaming::pipeline::ClientProto<I> for Client<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ClientStreamingPipelineBind<T, I>
|
impl<T, I> Future for ClientStreamingPipelineBind<T, I>
|
||||||
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::pipeline::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
@ -492,14 +492,14 @@ impl<T, I> Future for ClientStreamingPipelineBind<T, I>
|
|||||||
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
/// Future returned from `bind_transport` in the `ClientProto` implementation.
|
||||||
pub struct ClientStreamingMultiplexBind<T, I>
|
pub struct ClientStreamingMultiplexBind<T, I>
|
||||||
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
state: ClientStreamingMultiplexState<T, I>,
|
state: ClientStreamingMultiplexState<T, I>,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ClientStreamingMultiplexState<T, I>
|
enum ClientStreamingMultiplexState<T, I>
|
||||||
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
First(ConnectAsync<I>, Arc<T>),
|
First(ConnectAsync<I>, Arc<T>),
|
||||||
Next(<T::BindTransport as IntoFuture>::Future),
|
Next(<T::BindTransport as IntoFuture>::Future),
|
||||||
@ -507,7 +507,7 @@ enum ClientStreamingMultiplexState<T, I>
|
|||||||
|
|
||||||
impl<T, I> streaming::multiplex::ClientProto<I> for Client<T>
|
impl<T, I> streaming::multiplex::ClientProto<I> for Client<T>
|
||||||
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Request = T::Request;
|
type Request = T::Request;
|
||||||
type RequestBody = T::RequestBody;
|
type RequestBody = T::RequestBody;
|
||||||
@ -529,7 +529,7 @@ impl<T, I> streaming::multiplex::ClientProto<I> for Client<T>
|
|||||||
|
|
||||||
impl<T, I> Future for ClientStreamingMultiplexBind<T, I>
|
impl<T, I> Future for ClientStreamingMultiplexBind<T, I>
|
||||||
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
where T: streaming::multiplex::ClientProto<TlsStream<I, ClientSession>>,
|
||||||
I: Io + 'static,
|
I: AsyncRead + AsyncWrite + 'static,
|
||||||
{
|
{
|
||||||
type Item = T::Transport;
|
type Item = T::Transport;
|
||||||
type Error = io::Error;
|
type Error = io::Error;
|
||||||
|
Loading…
Reference in New Issue
Block a user