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§

source

type Info: ProtocolName + Clone

Opaque type representing a negotiable protocol.

source

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

Iterator returned by protocol_info.

Required Methods§

source

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

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

Implementors§

source§

impl UpgradeInfo for KademliaProtocolConfig

source§

impl UpgradeInfo for MplexConfig

§

type Info = &'static [u8]

§

type InfoIter = Once<<MplexConfig as UpgradeInfo>::Info>

source§

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, ()>

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, ()>

§

type Info = &'static [u8]

§

type InfoIter = Once<<NoiseConfig<XX, X25519, ()> as UpgradeInfo>::Info>

source§

impl UpgradeInfo for NoiseConfig<XX, X25519Spec, ()>

§

type Info = &'static [u8]

§

type InfoIter = Once<<NoiseConfig<XX, X25519Spec, ()> as UpgradeInfo>::Info>

source§

impl UpgradeInfo for YamuxConfig

§

type Info = &'static [u8]

§

type InfoIter = Once<<YamuxConfig as UpgradeInfo>::Info>

source§

impl UpgradeInfo for YamuxLocalConfig

§

type Info = &'static [u8]

§

type InfoIter = Once<<YamuxLocalConfig as UpgradeInfo>::Info>

source§

impl UpgradeInfo for DeniedUpgrade

§

type Info = &'static [u8]

§

type InfoIter = Empty<<DeniedUpgrade as UpgradeInfo>::Info>

source§

impl<A, B> UpgradeInfo for EitherUpgrade<A, B>where A: UpgradeInfo, B: UpgradeInfo,

source§

impl<A, B> UpgradeInfo for SelectUpgrade<A, B>where A: UpgradeInfo, B: UpgradeInfo,

source§

impl<F> UpgradeInfo for SimpleProtocol<F>

source§

impl<P> UpgradeInfo for PendingUpgrade<P>where P: ProtocolName + Clone,

§

type Info = P

§

type InfoIter = Once<P>

source§

impl<P> UpgradeInfo for ReadyUpgrade<P>where P: ProtocolName + Clone,

§

type Info = P

§

type InfoIter = Once<P>

source§

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,

§

type Info = P

§

type InfoIter = Once<P>

source§

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>

Note: This is not currently a standardised upgrade.

§

type Info = &'static [u8]

§

type InfoIter = Once<<NoiseConfig<IK, X25519Spec, R> as UpgradeInfo>::Info>

source§

impl<T> UpgradeInfo for SendWrapper<T>where T: UpgradeInfoSend,

source§

impl<T> UpgradeInfo for OptionalUpgrade<T>where T: UpgradeInfo,

§

type Info = <T as UpgradeInfo>::Info

§

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

source§

impl<TCodec> UpgradeInfo for RequestProtocol<TCodec>where TCodec: RequestResponseCodec,

source§

impl<TCodec> UpgradeInfo for ResponseProtocol<TCodec>where TCodec: RequestResponseCodec,

source§

impl<U, F> UpgradeInfo for MapInboundUpgrade<U, F>where U: UpgradeInfo,

§

type Info = <U as UpgradeInfo>::Info

§

type InfoIter = <U as UpgradeInfo>::InfoIter

source§

impl<U, F> UpgradeInfo for MapInboundUpgradeErr<U, F>where U: UpgradeInfo,

§

type Info = <U as UpgradeInfo>::Info

§

type InfoIter = <U as UpgradeInfo>::InfoIter

source§

impl<U, F> UpgradeInfo for MapOutboundUpgrade<U, F>where U: UpgradeInfo,

§

type Info = <U as UpgradeInfo>::Info

§

type InfoIter = <U as UpgradeInfo>::InfoIter

source§

impl<U, F> UpgradeInfo for MapOutboundUpgradeErr<U, F>where U: UpgradeInfo,

§

type Info = <U as UpgradeInfo>::Info

§

type InfoIter = <U as UpgradeInfo>::InfoIter