[][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 time between when we flushed the substream and when we received back the payload.

Trait Implementations

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

impl Debug 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<TSocket>

Future that performs the handshake with the remote.

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<TSocket, [u8; 32]>, WriteAll<TSocket, [u8; 32]>, fn(_: (TSocket, [u8; 32])) -> WriteAll<TSocket, [u8; 32]>>, Flush<TSocket>, fn(_: (TSocket, [u8; 32])) -> Flush<TSocket>>, Shutdown<TSocket>, fn(_: TSocket) -> Shutdown<TSocket>>, fn(_: TSocket)>

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 Send for Ping

impl Sync for Ping

Blanket Implementations

impl<T> From for T[src]

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

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

type Owned = T

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Same for T

type Output = T

Should always be Self

impl<C, U> InboundUpgradeExt 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 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