quic_rpc::transport

Trait ConnectionCommon

Source
pub trait ConnectionCommon<In, Out>: ConnectionErrors {
    type RecvStream: Stream<Item = Result<In, Self::RecvError>> + Send + Sync + Unpin + 'static;
    type SendSink: Sink<Out, Error = Self::SendError> + Send + Sync + Unpin + 'static;
}
Expand description

Types that are common to both Connection and ServerEndpoint.

Having this as a separate trait is useful when writing generic code that works with both.

Required Associated Types§

Source

type RecvStream: Stream<Item = Result<In, Self::RecvError>> + Send + Sync + Unpin + 'static

Receive side of a bidirectional typed channel

Source

type SendSink: Sink<Out, Error = Self::SendError> + Send + Sync + Unpin + 'static

Send side of a bidirectional typed channel

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<A: Connection<In, Out>, B: Connection<In, Out>, In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for CombinedConnection<A, B, In, Out>

Source§

type RecvStream = RecvStream<A, B, In, Out>

Source§

type SendSink = SendSink<A, B, In, Out>

Source§

impl<A: ServerEndpoint<In, Out>, B: ServerEndpoint<In, Out>, In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for CombinedServerEndpoint<A, B, In, Out>

Source§

type RecvStream = RecvStream<A, B, In, Out>

Source§

type SendSink = SendSink<A, B, In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for Connection<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for ServerEndpoint<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for FlumeConnection<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for FlumeServerEndpoint<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for HyperConnection<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for HyperServerEndpoint<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for DummyServerEndpoint

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for QuinnConnection<In, Out>

Source§

impl<In: RpcMessage, Out: RpcMessage> ConnectionCommon<In, Out> for QuinnServerEndpoint<In, Out>