Struct libp2p_core::upgrade::SelectUpgrade [−][src]
pub struct SelectUpgrade<A, B>(_, _);
Expand description
Upgrade that combines two upgrades into one. Supports all the protocols supported by either sub-upgrade.
The protocols supported by the first element have a higher priority.
Implementations
Trait Implementations
impl<C, A, B, TA, TB, EA, EB> InboundUpgrade<C> for SelectUpgrade<A, B> where
A: InboundUpgrade<C, Output = TA, Error = EA>,
B: InboundUpgrade<C, Output = TB, Error = EB>,
impl<C, A, B, TA, TB, EA, EB> InboundUpgrade<C> for SelectUpgrade<A, B> where
A: InboundUpgrade<C, Output = TA, Error = EA>,
B: InboundUpgrade<C, Output = TB, Error = EB>,
type Output = EitherOutput<TA, TB>
type Output = EitherOutput<TA, TB>
Output after the upgrade has been successfully negotiated and the handshake performed.
type Error = EitherError<EA, EB>
type Error = EitherError<EA, EB>
Possible error during the handshake.
type Future = EitherFuture2<A::Future, B::Future>
type Future = EitherFuture2<A::Future, B::Future>
Future that performs the handshake with the remote.
After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
impl<C, A, B, TA, TB, EA, EB> OutboundUpgrade<C> for SelectUpgrade<A, B> where
A: OutboundUpgrade<C, Output = TA, Error = EA>,
B: OutboundUpgrade<C, Output = TB, Error = EB>,
impl<C, A, B, TA, TB, EA, EB> OutboundUpgrade<C> for SelectUpgrade<A, B> where
A: OutboundUpgrade<C, Output = TA, Error = EA>,
B: OutboundUpgrade<C, Output = TB, Error = EB>,
type Output = EitherOutput<TA, TB>
type Output = EitherOutput<TA, TB>
Output after the upgrade has been successfully negotiated and the handshake performed.
type Error = EitherError<EA, EB>
type Error = EitherError<EA, EB>
Possible error during the handshake.
type Future = EitherFuture2<A::Future, B::Future>
type Future = EitherFuture2<A::Future, B::Future>
Future that performs the handshake with the remote.
After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
type Info = EitherName<A::Info, B::Info>
type Info = EitherName<A::Info, B::Info>
Opaque type representing a negotiable protocol.
type InfoIter = InfoIterChain<<A::InfoIter as IntoIterator>::IntoIter, <B::InfoIter as IntoIterator>::IntoIter>
type InfoIter = InfoIterChain<<A::InfoIter as IntoIterator>::IntoIter, <B::InfoIter as IntoIterator>::IntoIter>
Iterator returned by protocol_info
.
Returns the list of protocols that are supported. Used during the negotiation process.
Auto Trait Implementations
impl<A, B> RefUnwindSafe for SelectUpgrade<A, B> where
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> Send for SelectUpgrade<A, B> where
A: Send,
B: Send,
impl<A, B> Sync for SelectUpgrade<A, B> where
A: Sync,
B: Sync,
impl<A, B> Unpin for SelectUpgrade<A, B> where
A: Unpin,
B: Unpin,
impl<A, B> UnwindSafe for SelectUpgrade<A, B> where
A: UnwindSafe,
B: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F> where
Self: Sized,
F: FnOnce(Self::Output) -> T,
fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F> where
Self: Sized,
F: FnOnce(Self::Output) -> T,
Returns a new object that wraps around Self
and applies a closure to the Output
.
fn map_inbound_err<F, T>(self, f: F) -> MapInboundUpgradeErr<Self, F> where
Self: Sized,
F: FnOnce(Self::Error) -> T,
fn map_inbound_err<F, T>(self, f: F) -> MapInboundUpgradeErr<Self, F> where
Self: Sized,
F: FnOnce(Self::Error) -> T,
Returns a new object that wraps around Self
and applies a closure to the Error
.
fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F> where
Self: Sized,
F: FnOnce(Self::Output) -> T,
fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F> where
Self: Sized,
F: FnOnce(Self::Output) -> T,
Returns a new object that wraps around Self
and applies a closure to the Output
.
fn map_outbound_err<F, T>(self, f: F) -> MapOutboundUpgradeErr<Self, F> where
Self: Sized,
F: FnOnce(Self::Error) -> T,
fn map_outbound_err<F, T>(self, f: F) -> MapOutboundUpgradeErr<Self, F> where
Self: Sized,
F: FnOnce(Self::Error) -> T,
Returns a new object that wraps around Self
and applies a closure to the Error
.