[][src]Trait libp2p_core::upgrade::UpgradeInfo

pub trait UpgradeInfo {
    type Info: ProtocolName + Clone;
    type InfoIter: IntoIterator<Item = Self::Info>;
    fn protocol_info(&self) -> Self::InfoIter;
}

Common trait for upgrades that can be applied on inbound substreams, outbound substreams, or both.

Associated Types

type Info: ProtocolName + Clone

Opaque type representing a negotiable protocol.

type InfoIter: IntoIterator<Item = Self::Info>

Iterator returned by protocol_info.

Loading content...

Required methods

fn protocol_info(&self) -> Self::InfoIter

Returns the list of protocols that are supported. Used during the negotiation process.

Loading content...

Implementors

impl UpgradeInfo for DeniedUpgrade[src]

type Info = &'static [u8]

type InfoIter = Empty<Self::Info>

impl<A, B> UpgradeInfo for EitherUpgrade<A, B> where
    A: UpgradeInfo,
    B: UpgradeInfo
[src]

type Info = EitherName<A::Info, B::Info>

type InfoIter = EitherIter<<A::InfoIter as IntoIterator>::IntoIter, <B::InfoIter as IntoIterator>::IntoIter>

impl<A, B> UpgradeInfo for SelectUpgrade<A, B> where
    A: UpgradeInfo,
    B: UpgradeInfo
[src]

type Info = EitherName<A::Info, B::Info>

type InfoIter = InfoIterChain<<A::InfoIter as IntoIterator>::IntoIter, <B::InfoIter as IntoIterator>::IntoIter>

impl<P, F> UpgradeInfo for FromFnUpgrade<P, F> where
    P: ProtocolName + Clone
[src]

type Info = P

type InfoIter = Once<P>

impl<T> UpgradeInfo for OptionalUpgrade<T> where
    T: UpgradeInfo
[src]

type Info = T::Info

type InfoIter = Iter<<T::InfoIter as IntoIterator>::IntoIter>

impl<U, F> UpgradeInfo for MapInboundUpgrade<U, F> where
    U: UpgradeInfo
[src]

type Info = U::Info

type InfoIter = U::InfoIter

impl<U, F> UpgradeInfo for MapInboundUpgradeErr<U, F> where
    U: UpgradeInfo
[src]

type Info = U::Info

type InfoIter = U::InfoIter

impl<U, F> UpgradeInfo for MapOutboundUpgrade<U, F> where
    U: UpgradeInfo
[src]

type Info = U::Info

type InfoIter = U::InfoIter

impl<U, F> UpgradeInfo for MapOutboundUpgradeErr<U, F> where
    U: UpgradeInfo
[src]

type Info = U::Info

type InfoIter = U::InfoIter

Loading content...