[−][src]Struct libp2p_identify::IdentifyTransport
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(&self) -> 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]
TTrans: Transport<Output = TMuxer>,
TTrans::Error: 'static,
TMuxer: StreamMuxer + Send + Sync + 'static,
TMuxer::Substream: Send + Sync + 'static,
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 listen_on(
self,
addr: Multiaddr
) -> Result<(Self::Listener, Multiaddr), TransportError<Self::Error>>
[src]
self,
addr: Multiaddr
) -> Result<(Self::Listener, Multiaddr), TransportError<Self::Error>>
fn dial(
self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>>
[src]
self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>>
fn nat_traversal(&self, a: &Multiaddr, b: &Multiaddr) -> Option<Multiaddr>
[src]
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]
Self: Clone + Send + Sync + 'static,
Self::Dial: Send,
Self::Dial: 'static,
Self::Listener: Send,
Self::Listener: 'static,
Self::ListenerUpgrade: Send,
Self::ListenerUpgrade: 'static,
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]
F: FnOnce(Self::Output, ConnectedPoint) -> O + Clone,
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]
F: FnOnce(Self::Error) -> TNewErr + Clone,
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]
U: InboundUpgrade<Self::Output, Output = O, Error = E> + OutboundUpgrade<Self::Output, Output = O, Error = E>,
Self::Output: AsyncRead,
Self::Output: AsyncWrite,
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]
C: FnOnce(Self::Output, ConnectedPoint) -> F + Clone,
F: IntoFuture<Item = O>,
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,
TTrans: Send,
impl<TTrans> Sync for IdentifyTransport<TTrans> where
TTrans: Sync,
TTrans: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
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> 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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Same for T
type Output = T
Should always be Self