Struct libp2prs_core::upgrade::Selector [−][src]
pub struct Selector<A, B>(_, _);
Select 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
impl<A, B> Selector<A, B>
[src]
pub fn new(a: A, b: B) -> Self
[src]
Combines two upgraders into an Selector
.
The protocols supported by the first element have a higher priority.
Trait Implementations
impl<A: Clone, B: Clone> Clone for Selector<A, B>
[src]
impl<A: Copy, B: Copy> Copy for Selector<A, B>
[src]
impl<A: Debug, B: Debug> Debug for Selector<A, B>
[src]
impl<A, B> UpgradeInfo for Selector<A, B> where
A: UpgradeInfo,
B: UpgradeInfo,
[src]
A: UpgradeInfo,
B: UpgradeInfo,
type Info = EitherName<A::Info, B::Info>
Opaque type representing a negotiable protocol.
fn protocol_info(&self) -> Vec<Self::Info>
[src]
impl<A, B, C> Upgrader<C> for Selector<A, B> where
A: Upgrader<C> + Send,
B: Upgrader<C> + Send,
C: Send + 'static,
[src]
A: Upgrader<C> + Send,
B: Upgrader<C> + Send,
C: Send + 'static,
type Output = EitherOutput<A::Output, B::Output>
Output after the upgrade has been successfully negotiated and the handshake performed.
fn upgrade_inbound<'async_trait>(
self,
socket: C,
info: Self::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<A::Output, B::Output>, TransportError>> + Send + 'async_trait>> where
Self: 'async_trait,
[src]
self,
socket: C,
info: Self::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<A::Output, B::Output>, TransportError>> + Send + 'async_trait>> where
Self: 'async_trait,
fn upgrade_outbound<'async_trait>(
self,
socket: C,
info: Self::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<A::Output, B::Output>, TransportError>> + Send + 'async_trait>> where
Self: 'async_trait,
[src]
self,
socket: C,
info: Self::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<A::Output, B::Output>, TransportError>> + Send + 'async_trait>> where
Self: 'async_trait,
Auto Trait Implementations
impl<A, B> RefUnwindSafe for Selector<A, B> where
A: RefUnwindSafe,
B: RefUnwindSafe,
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> Send for Selector<A, B> where
A: Send,
B: Send,
A: Send,
B: Send,
impl<A, B> Sync for Selector<A, B> where
A: Sync,
B: Sync,
A: Sync,
B: Sync,
impl<A, B> Unpin for Selector<A, B> where
A: Unpin,
B: Unpin,
A: Unpin,
B: Unpin,
impl<A, B> UnwindSafe for Selector<A, B> where
A: UnwindSafe,
B: UnwindSafe,
A: UnwindSafe,
B: UnwindSafe,
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, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,