Trait libp2p::core::UpgradeInfo
source · pub trait UpgradeInfo {
type Info: ProtocolName + Clone;
type InfoIter: IntoIterator<Item = Self::Info>;
// Required method
fn protocol_info(&self) -> Self::InfoIter;
}
Expand description
Common trait for upgrades that can be applied on inbound substreams, outbound substreams, or both.
Required Associated Types§
sourcetype Info: ProtocolName + Clone
type Info: ProtocolName + Clone
Opaque type representing a negotiable protocol.
sourcetype InfoIter: IntoIterator<Item = Self::Info>
type InfoIter: IntoIterator<Item = Self::Info>
Iterator returned by protocol_info
.
Required Methods§
sourcefn protocol_info(&self) -> Self::InfoIter
fn protocol_info(&self) -> Self::InfoIter
Returns the list of protocols that are supported. Used during the negotiation process.
Implementations on Foreign Types§
source§impl<A, B> UpgradeInfo for Either<A, B>where
A: UpgradeInfo,
B: UpgradeInfo,
impl<A, B> UpgradeInfo for Either<A, B>where A: UpgradeInfo, B: UpgradeInfo,
type Info = EitherName<<A as UpgradeInfo>::Info, <B as UpgradeInfo>::Info>
type InfoIter = Either<Map<<<A as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter, fn(_: <A as UpgradeInfo>::Info) -> <Either<A, B> as UpgradeInfo>::Info>, Map<<<B as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter, fn(_: <B as UpgradeInfo>::Info) -> <Either<A, B> as UpgradeInfo>::Info>>
fn protocol_info(&self) -> <Either<A, B> as UpgradeInfo>::InfoIter ⓘ
Implementors§
source§impl UpgradeInfo for KademliaProtocolConfig
impl UpgradeInfo for KademliaProtocolConfig
source§impl UpgradeInfo for libp2p::noise::Config
impl UpgradeInfo for libp2p::noise::Config
source§impl UpgradeInfo for NoiseConfig<IX, X25519, ()>
impl UpgradeInfo for NoiseConfig<IX, X25519, ()>
type Info = &'static [u8]
type InfoIter = Once<<NoiseConfig<IX, X25519, ()> as UpgradeInfo>::Info>
source§impl UpgradeInfo for NoiseConfig<IX, X25519Spec, ()>
impl UpgradeInfo for NoiseConfig<IX, X25519Spec, ()>
Note: This is not currentlyy a standardised upgrade.
type Info = &'static [u8]
type InfoIter = Once<<NoiseConfig<IX, X25519Spec, ()> as UpgradeInfo>::Info>
source§impl UpgradeInfo for NoiseConfig<XX, X25519, ()>
impl UpgradeInfo for NoiseConfig<XX, X25519, ()>
type Info = &'static [u8]
type InfoIter = Once<<NoiseConfig<XX, X25519, ()> as UpgradeInfo>::Info>
source§impl UpgradeInfo for NoiseConfig<XX, X25519Spec, ()>
impl UpgradeInfo for NoiseConfig<XX, X25519Spec, ()>
type Info = &'static [u8]
type InfoIter = Once<<NoiseConfig<XX, X25519Spec, ()> as UpgradeInfo>::Info>
source§impl UpgradeInfo for libp2p::yamux::Config
impl UpgradeInfo for libp2p::yamux::Config
source§impl UpgradeInfo for LocalConfig
impl UpgradeInfo for LocalConfig
type Info = &'static [u8]
type InfoIter = Once<<LocalConfig as UpgradeInfo>::Info>
source§impl UpgradeInfo for DeniedUpgrade
impl UpgradeInfo for DeniedUpgrade
type Info = &'static [u8]
type InfoIter = Empty<<DeniedUpgrade as UpgradeInfo>::Info>
source§impl<A, B> UpgradeInfo for SelectUpgrade<A, B>where
A: UpgradeInfo,
B: UpgradeInfo,
impl<A, B> UpgradeInfo for SelectUpgrade<A, B>where A: UpgradeInfo, B: UpgradeInfo,
type Info = EitherName<<A as UpgradeInfo>::Info, <B as UpgradeInfo>::Info>
type InfoIter = Chain<Map<<<A as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter, fn(_: <A as UpgradeInfo>::Info) -> <SelectUpgrade<A, B> as UpgradeInfo>::Info>, Map<<<B as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter, fn(_: <B as UpgradeInfo>::Info) -> <SelectUpgrade<A, B> as UpgradeInfo>::Info>>
source§impl<P> UpgradeInfo for PendingUpgrade<P>where
P: ProtocolName + Clone,
impl<P> UpgradeInfo for PendingUpgrade<P>where P: ProtocolName + Clone,
source§impl<P> UpgradeInfo for ReadyUpgrade<P>where
P: ProtocolName + Clone,
impl<P> UpgradeInfo for ReadyUpgrade<P>where P: ProtocolName + Clone,
source§impl<P, C, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where
C: Zeroize,
NoiseConfig<P, C, R>: UpgradeInfo,
impl<P, C, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where C: Zeroize, NoiseConfig<P, C, R>: UpgradeInfo,
type Info = <NoiseConfig<P, C, R> as UpgradeInfo>::Info
type InfoIter = <NoiseConfig<P, C, R> as UpgradeInfo>::InfoIter
source§impl<P, F> UpgradeInfo for FromFnUpgrade<P, F>where
P: ProtocolName + Clone,
impl<P, F> UpgradeInfo for FromFnUpgrade<P, F>where P: ProtocolName + Clone,
source§impl<R> UpgradeInfo for NoiseConfig<IK, X25519, R>
impl<R> UpgradeInfo for NoiseConfig<IK, X25519, R>
type Info = &'static [u8]
type InfoIter = Once<<NoiseConfig<IK, X25519, R> as UpgradeInfo>::Info>
source§impl<R> UpgradeInfo for NoiseConfig<IK, X25519Spec, R>
impl<R> UpgradeInfo for NoiseConfig<IK, X25519Spec, R>
Note: This is not currently a standardised upgrade.