[−][src]Struct exocore_transport::either::EitherTransportServiceHandle
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]
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
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]
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 = ();
Trait Implementations
impl<TLeft, TRight> Future for EitherTransportServiceHandle<TLeft, TRight> where
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
[src]
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
type Output = ()
The type of value produced on completion.
pub fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>
[src]
impl<TLeft, TRight> TransportServiceHandle for EitherTransportServiceHandle<TLeft, TRight> where
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
[src]
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
type Sink = Box<dyn Sink<OutEvent, Error = Error> + Send + Unpin + 'static>
type Stream = Box<dyn Stream<Item = InEvent> + Send + Unpin + 'static>
pub fn on_started(&self) -> TransportHandleOnStart
[src]
pub fn get_sink(&mut self) -> Self::Sink
[src]
pub fn get_stream(&mut self) -> Self::Stream
[src]
impl<'pin, TLeft, TRight> Unpin for EitherTransportServiceHandle<TLeft, TRight> where
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
__EitherTransportServiceHandle<'pin, TLeft, TRight>: Unpin,
[src]
TLeft: TransportServiceHandle,
TRight: TransportServiceHandle,
__EitherTransportServiceHandle<'pin, TLeft, TRight>: Unpin,
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,
TLeft: Sync,
TRight: Sync,
impl<TLeft, TRight> !UnwindSafe for EitherTransportServiceHandle<TLeft, TRight>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> FutureExt for T where
T: Future + ?Sized,
[src]
T: Future + ?Sized,
pub fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
[src]
F: FnOnce(Self::Output) -> U,
pub fn map_into<U>(self) -> MapInto<Self, U> where
Self::Output: Into<U>,
[src]
Self::Output: Into<U>,
pub fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
[src]
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
pub fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
[src]
B: Future<Output = Self::Output>,
pub fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
[src]
A: Future<Output = Self::Output>,
pub fn into_stream(self) -> IntoStream<Self>
[src]
pub fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
[src]
Self::Output: Future,
pub fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
[src]
Self::Output: Stream,
pub fn fuse(self) -> Fuse<Self>
[src]
pub fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
[src]
F: FnOnce(&Self::Output),
pub fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
[src]
Self: UnwindSafe,
pub fn shared(self) -> Shared<Self> where
Self::Output: Clone,
[src]
Self::Output: Clone,
pub fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
[src]
pub fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a + Send, Global>> where
Self: Send + 'a,
[src]
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a + Send, Global>> where
Self: Send + 'a,
pub fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
[src]
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
pub fn unit_error(self) -> UnitError<Self>
[src]
pub fn never_error(self) -> NeverError<Self>
[src]
pub fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output> where
Self: Unpin,
[src]
Self: Unpin,
pub fn now_or_never(self) -> Option<Self::Output>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<F> IntoFuture for F where
F: Future,
[src]
F: Future,
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?
pub fn into_future(self) -> <F as IntoFuture>::Future
[src]
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]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> UnsafeAny for T where
T: Any,
T: Any,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,