Struct libp2p_rs::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) -> Selector<A, B>
[src]
Combines two upgraders into an Selector
.
The protocols supported by the first element have a higher priority.
Trait Implementations
impl<A, B> Clone for Selector<A, B> where
B: Clone,
A: Clone,
[src]
B: Clone,
A: Clone,
impl<A, B> Copy for Selector<A, B> where
B: Copy,
A: Copy,
[src]
B: Copy,
A: Copy,
impl<A, B> Debug for Selector<A, B> where
B: Debug,
A: Debug,
[src]
B: Debug,
A: Debug,
impl<A, B> UpgradeInfo for Selector<A, B> where
B: UpgradeInfo,
A: UpgradeInfo,
[src]
B: UpgradeInfo,
A: UpgradeInfo,
type Info = EitherName<<A as UpgradeInfo>::Info, <B as UpgradeInfo>::Info>
Opaque type representing a negotiable protocol.
pub fn protocol_info(
&self
) -> Vec<<Selector<A, B> as UpgradeInfo>::Info, Global>
[src]
&self
) -> Vec<<Selector<A, B> as UpgradeInfo>::Info, Global>
impl<A, B, C> Upgrader<C> for Selector<A, B> where
C: Send + 'static,
B: Upgrader<C> + Send,
A: Upgrader<C> + Send,
[src]
C: Send + 'static,
B: Upgrader<C> + Send,
A: Upgrader<C> + Send,
type Output = EitherOutput<<A as Upgrader<C>>::Output, <B as Upgrader<C>>::Output>
Output after the upgrade has been successfully negotiated and the handshake performed.
pub fn upgrade_inbound<'async_trait>(
self,
socket: C,
info: <Selector<A, B> as UpgradeInfo>::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<<A as Upgrader<C>>::Output, <B as Upgrader<C>>::Output>, TransportError>> + 'async_trait + Send, Global>> where
Selector<A, B>: 'async_trait,
[src]
self,
socket: C,
info: <Selector<A, B> as UpgradeInfo>::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<<A as Upgrader<C>>::Output, <B as Upgrader<C>>::Output>, TransportError>> + 'async_trait + Send, Global>> where
Selector<A, B>: 'async_trait,
pub fn upgrade_outbound<'async_trait>(
self,
socket: C,
info: <Selector<A, B> as UpgradeInfo>::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<<A as Upgrader<C>>::Output, <B as Upgrader<C>>::Output>, TransportError>> + 'async_trait + Send, Global>> where
Selector<A, B>: 'async_trait,
[src]
self,
socket: C,
info: <Selector<A, B> as UpgradeInfo>::Info
) -> Pin<Box<dyn Future<Output = Result<EitherOutput<<A as Upgrader<C>>::Output, <B as Upgrader<C>>::Output>, TransportError>> + 'async_trait + Send, Global>> where
Selector<A, B>: '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> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
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>,