[][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 Default for Ping[src]

impl Debug for Ping[src]

impl Clone for Ping[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl UpgradeInfo for Ping[src]

type Info = &'static [u8]

Opaque type representing a negotiable protocol.

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

Iterator returned by protocol_info.

impl<TSocket> InboundUpgrade<TSocket> for Ping where
    TSocket: AsyncRead + AsyncWrite
[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 = Map<AndThen<AndThen<AndThen<ReadExact<Negotiated<TSocket>, [u8; 32]>, WriteAll<Negotiated<TSocket>, [u8; 32]>, fn((Negotiated<TSocket>, [u8; 32])) -> WriteAll<Negotiated<TSocket>, [u8; 32]>>, Flush<Negotiated<TSocket>>, fn((Negotiated<TSocket>, [u8; 32])) -> Flush<Negotiated<TSocket>>>, Shutdown<Negotiated<TSocket>>, fn(Negotiated<TSocket>) -> Shutdown<Negotiated<TSocket>>>, fn(Negotiated<TSocket>)>

Future that performs the handshake with the remote.

impl Copy for Ping[src]

impl<TSocket> OutboundUpgrade<TSocket> for Ping where
    TSocket: AsyncRead + AsyncWrite
[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 = PingDialer<Negotiated<TSocket>>

Future that performs the handshake with the remote.

Auto Trait Implementations

impl Sync for Ping

impl Send for Ping

impl Unpin for Ping

impl RefUnwindSafe for Ping

impl UnwindSafe for Ping

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

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

impl<T> InitializableFromZeroed for T where
    T: Default

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

fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F> where
    F: FnOnce(Self::Output) -> T, 
[src]

Returns a new object that wraps around Self and applies a closure to the Output.

fn map_inbound_err<F, T>(self, f: F) -> MapInboundUpgradeErr<Self, F> where
    F: FnOnce(Self::Error) -> T, 
[src]

Returns a new object that wraps around Self and applies a closure to the Error.

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

fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F> where
    F: FnOnce(Self::Output) -> T, 
[src]

Returns a new object that wraps around Self and applies a closure to the Output.

fn map_outbound_err<F, T>(self, f: F) -> MapOutboundUpgradeErr<Self, F> where
    F: FnOnce(Self::Error) -> T, 
[src]

Returns a new object that wraps around Self and applies a closure to the Error.

impl<T> Erased for T

impl<T> Erased for T