[][src]Struct susyp2p_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 result of a connection setup process, including protocol upgrades. Read more

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

An error that occurred during connection setup.

type Listener = Empty<ListenerEvent<Self::ListenerUpgrade>, Self::Error>

A stream of Outputs for inbound connections. Read more

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

A pending Output for an inbound connection, obtained from the Listener stream. 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 pending Output for an outbound connection, obtained from dialing. Read more

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 connections created by 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 transport that falls back to another transport when encountering errors on dialing or listening for connections. 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]. 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]

Applies a function producing an asynchronous result to every connection created by this transport. Read more

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

Adds a timeout to the connection setup (including upgrades) for all inbound and outbound connection attempts. Read more

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

Adds a timeout to the connection setup (including upgrades) for all outbound connection attempts. Read more

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

Adds a timeout to the connection setup (including upgrades) for all inbound connection attempts. 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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

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

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto 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> Borrow for T where
    T: ?Sized
[src]

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

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

impl<T> Same for T

type Output = T

Should always be Self

impl<T> Erased for T