[][src]Struct libp2p_ping::protocol::Ping

pub struct Ping;

Represents a prototype for an upgrade to handle the ping protocol.

The protocol works the following way:

  • Dialer sends 32 bytes of random data.
  • Listener receives the data and sends it back.
  • Dialer receives the data and verifies that it matches what it sent.

The dialer produces a Duration, which corresponds to the round-trip time of the payload.

Note: The round-trip time of a ping may be subject to delays induced by the underlying transport, e.g. in the case of TCP there is Nagle's algorithm, delayed acks and similar configuration options which can affect latencies especially on otherwise low-volume connections.

Trait Implementations

impl Clone for Ping[src]

impl Copy for Ping[src]

impl Debug for Ping[src]

impl Default for Ping[src]

impl<TSocket> InboundUpgrade<TSocket> for Ping where
    TSocket: AsyncRead + AsyncWrite + Send + Unpin + 'static, 
[src]

type Output = ()

Output after the upgrade has been successfully negotiated and the handshake performed.

type Error = Error

Possible error during the handshake.

type Future = BoxFuture<'static, Result<(), Error>>

Future that performs the handshake with the remote.

impl<TSocket> OutboundUpgrade<TSocket> for Ping where
    TSocket: AsyncRead + AsyncWrite + Send + Unpin + 'static, 
[src]

type Output = Duration

Output after the upgrade has been successfully negotiated and the handshake performed.

type Error = Error

Possible error during the handshake.

type Future = BoxFuture<'static, Result<Duration, Error>>

Future that performs the handshake with the remote.

impl UpgradeInfo for Ping[src]

type Info = &'static [u8]

Opaque type representing a negotiable protocol.

type InfoIter = Once<Self::Info>

Iterator returned by protocol_info.

Auto Trait Implementations

impl RefUnwindSafe for Ping

impl Send for Ping

impl Sync for Ping

impl Unpin for Ping

impl UnwindSafe for Ping

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Clear for T where
    T: InitializableFromZeroed + ?Sized

impl<T> From<T> for T[src]

impl<C, U> InboundUpgradeExt<C> for U where
    U: InboundUpgrade<C>, 
[src]

impl<T, TInfo> InboundUpgradeSend for T where
    T: InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>, Info = TInfo> + UpgradeInfoSend<Info = TInfo>,
    TInfo: ProtocolName + Clone + Send + 'static,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output: Send,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output: 'static,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error: Send,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error: 'static,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future: Send,
    <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future: 'static, 
[src]

type Output = <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output

Equivalent to InboundUpgrade::Output.

type Error = <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error

Equivalent to InboundUpgrade::Error.

type Future = <T as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future

Equivalent to InboundUpgrade::Future.

impl<T> InitializableFromZeroed for T where
    T: Default

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<C, U> OutboundUpgradeExt<C> for U where
    U: OutboundUpgrade<C>, 
[src]

impl<T, TInfo> OutboundUpgradeSend for T where
    T: OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>, Info = TInfo> + UpgradeInfoSend<Info = TInfo>,
    TInfo: ProtocolName + Clone + Send + 'static,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output: Send,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output: 'static,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error: Send,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error: 'static,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future: Send,
    <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future: 'static, 
[src]

type Output = <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Output

Equivalent to OutboundUpgrade::Output.

type Error = <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Error

Equivalent to OutboundUpgrade::Error.

type Future = <T as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<StreamMuxerBox>>>>>>>::Future

Equivalent to OutboundUpgrade::Future.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> UpgradeInfoSend for T where
    T: UpgradeInfo + Send + 'static,
    <T as UpgradeInfo>::Info: Send,
    <T as UpgradeInfo>::Info: 'static,
    <<T as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send,
    <<T as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: 'static, 
[src]

type Info = <T as UpgradeInfo>::Info

Equivalent to UpgradeInfo::Info.

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

Equivalent to UpgradeInfo::InfoIter.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,