[−][src]Struct libp2p_ping::protocol::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(&self) -> 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]
TSocket: AsyncRead + AsyncWrite,
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.
fn upgrade_outbound(self, socket: TSocket, _: Self::Info) -> Self::Future
[src]
impl<TSocket> InboundUpgrade<TSocket> for Ping where
TSocket: AsyncRead + AsyncWrite,
[src]
TSocket: AsyncRead + AsyncWrite,
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.
fn upgrade_inbound(self, socket: TSocket, _: Self::Info) -> Self::Future
[src]
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
.
fn protocol_info(&self) -> Self::InfoIter
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Same for T
type Output = T
Should always be Self
impl<C, U> InboundUpgradeExt for U where
U: InboundUpgrade<C>,
[src]
U: InboundUpgrade<C>,
fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F> where
F: FnOnce(Self::Output) -> T,
[src]
F: FnOnce(Self::Output) -> T,
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]
F: FnOnce(Self::Error) -> T,
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]
U: OutboundUpgrade<C>,
fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F> where
F: FnOnce(Self::Output) -> T,
[src]
F: FnOnce(Self::Output) -> T,
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]
F: FnOnce(Self::Error) -> T,
Returns a new object that wraps around Self
and applies a closure to the Error
.