[][src]Struct libp2p_identify::IdentifyTransport

pub struct IdentifyTransport<TTrans> { /* fields omitted */ }

Wraps around an implementation of Transport that yields a muxer. Will use the muxer to open a substream with the remote and retreive its peer id. Then yields a (PeerId, impl StreamMuxer).

This transport can be used if you don't use any encryption layer, or if you want to make encryption optional, in which case you have no other way to know the PeerId of the remote than to ask for it.

Note: If you use this transport, keep in mind that the PeerId returned by the remote can be anything and shouldn't necessarily be trusted.

Methods

impl<TTrans> IdentifyTransport<TTrans>[src]

pub fn new(transport: TTrans) -> Self[src]

Creates an IdentifyTransport that wraps around the given transport.

Trait Implementations

impl<TTrans: Clone> Clone for IdentifyTransport<TTrans>[src]

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

Performs copy-assignment from source. Read more

impl<TTrans: Debug> Debug for IdentifyTransport<TTrans>[src]

impl<TTrans, TMuxer> Transport for IdentifyTransport<TTrans> where
    TTrans: Transport<Output = TMuxer>,
    TTrans::Error: 'static,
    TMuxer: StreamMuxer + Send + Sync + 'static,
    TMuxer::Substream: Send + Sync + 'static, 
[src]

type Output = (PeerId, TMuxer)

The raw connection to a peer.

type Error = TransportUpgradeError<TTrans::Error, IoError>

Error that can happen when dialing or listening.

type Listener = Empty<(Self::ListenerUpgrade, Multiaddr), Self::Error>

The listener produces incoming connections. Read more

type ListenerUpgrade = Empty<Self::Output, Self::Error>

After a connection has been received, we may need to do some asynchronous pre-processing on it (e.g. an intermediary protocol negotiation). While this pre-processing takes place, we want to be able to continue polling on the listener. Read more

type Dial = AndThen<MapErr<TTrans::Dial, fn(_: TTrans::Error) -> Self::Error>, MapErr<IdRetriever<TMuxer>, fn(_: UpgradeError<IoError>) -> Self::Error>, fn(_: TMuxer) -> MapErr<IdRetriever<TMuxer>, fn(_: UpgradeError<IoError>) -> Self::Error>>

A future which indicates that we are currently dialing to a peer.

fn boxed(self) -> Boxed<Self::Output, Self::Error> where
    Self: Clone + Send + Sync + 'static,
    Self::Dial: Send,
    Self::Dial: 'static,
    Self::Listener: Send,
    Self::Listener: 'static,
    Self::ListenerUpgrade: Send,
    Self::ListenerUpgrade: 'static, 
[src]

Turns this Transport into an abstract boxed transport.

fn map<F, O>(self, map: F) -> Map<Self, F> where
    F: FnOnce(Self::Output, ConnectedPoint) -> O + Clone
[src]

Applies a function on the output of the Transport.

fn map_err<F, TNewErr>(self, map_err: F) -> MapErr<Self, F> where
    F: FnOnce(Self::Error) -> TNewErr + Clone
[src]

Applies a function on the errors generated by the futures of the Transport.

fn or_transport<T>(self, other: T) -> OrTransport<Self, T>[src]

Builds a new struct that implements Transport that contains both self and other. Read more

fn with_upgrade<U, O, E>(self, upgrade: U) -> Upgrade<Self, U> where
    U: InboundUpgrade<Self::Output, Output = O, Error = E> + OutboundUpgrade<Self::Output, Output = O, Error = E>,
    Self::Output: AsyncRead,
    Self::Output: AsyncWrite
[src]

Wraps this transport inside an upgrade. Whenever a connection that uses this transport is established, it is wrapped inside the upgrade. Read more

fn and_then<C, F, O>(self, upgrade: C) -> AndThen<Self, C> where
    C: FnOnce(Self::Output, ConnectedPoint) -> F + Clone,
    F: IntoFuture<Item = O>, 
[src]

Wraps this transport inside an upgrade. Whenever a connection that uses this transport is established, it is wrapped inside the upgrade. Read more

fn with_timeout(self, timeout: Duration) -> TransportTimeout<Self>[src]

Adds a timeout to the connection and upgrade steps for all the sockets created by the transport. Read more

fn with_outbound_timeout(self, timeout: Duration) -> TransportTimeout<Self>[src]

Adds a timeout to the connection and upgrade steps for all the outgoing sockets created by the transport. Read more

fn with_inbound_timeout(self, timeout: Duration) -> TransportTimeout<Self>[src]

Adds a timeout to the connection and upgrade steps for all the incoming sockets created by the transport. Read more

Auto Trait Implementations

impl<TTrans> Send for IdentifyTransport<TTrans> where
    TTrans: Send

impl<TTrans> Sync for IdentifyTransport<TTrans> where
    TTrans: Sync

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<T> Erased for T