[][src]Struct exocore_transport::either::EitherTransportServiceHandle

pub struct EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle
{ /* fields omitted */ }

Transport handle that wraps 2 other transport handles.

When it receives incoming messages, it adds to the incoming message a note for which side of the transport it came from so that replies can be sent to the right side.

The transport also take notes of on which side we've seen a node for the last time so that a non-reply message sent to that note ends up on the correct side.

Warning: If we never received an event for a node, it will automatically select the first handle !!

Implementations

impl<TLeft, TRight> EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle
[src]

pub fn new(
    left: TLeft,
    right: TRight
) -> EitherTransportServiceHandle<TLeft, TRight>

Notable traits for EitherTransportServiceHandle<TLeft, TRight>

impl<TLeft, TRight> Future for EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle
type Output = ();
[src]

Trait Implementations

impl<TLeft, TRight> Future for EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle
[src]

type Output = ()

The type of value produced on completion.

impl<TLeft, TRight> TransportServiceHandle for EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle
[src]

type Sink = Box<dyn Sink<OutEvent, Error = Error> + Send + Unpin + 'static>

type Stream = Box<dyn Stream<Item = InEvent> + Send + Unpin + 'static>

impl<'pin, TLeft, TRight> Unpin for EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: TransportServiceHandle,
    TRight: TransportServiceHandle,
    __EitherTransportServiceHandle<'pin, TLeft, TRight>: Unpin
[src]

Auto Trait Implementations

impl<TLeft, TRight> !RefUnwindSafe for EitherTransportServiceHandle<TLeft, TRight>

impl<TLeft, TRight> Send for EitherTransportServiceHandle<TLeft, TRight>

impl<TLeft, TRight> Sync for EitherTransportServiceHandle<TLeft, TRight> where
    TLeft: Sync,
    TRight: Sync

impl<TLeft, TRight> !UnwindSafe for EitherTransportServiceHandle<TLeft, TRight>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FutureExt for T where
    T: Future + ?Sized
[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<F> IntoFuture for F where
    F: Future
[src]

type Output = <F as Future>::Output

🔬 This is a nightly-only experimental API. (into_future)

The output that the future will produce on completion.

type Future = F

🔬 This is a nightly-only experimental API. (into_future)

Which kind of future are we turning this into?

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> UnsafeAny for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,