[][src]Struct libp2p::swarm::ExpandedSwarm

pub struct ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo = PeerId> where
    TTransport: Transport
{ /* fields omitted */ }

Contains the state of the network, plus the way it should behave.

Methods

impl<TTransport, TBehaviour, TMuxer, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
    TConnInfo: ConnectionInfo<PeerId = PeerId> + Debug + Clone + Send + 'static,
    THandler: IntoProtocolsHandler + Send + 'static,
    THandlerErr: Error + Send + 'static,
    TInEvent: Send + 'static,
    TMuxer: StreamMuxer + Send + Sync + 'static,
    TOutEvent: Send + 'static,
    TTransport: Transport<Output = (TConnInfo, TMuxer)> + Clone,
    <TMuxer as StreamMuxer>::OutboundSubstream: Send,
    <TMuxer as StreamMuxer>::OutboundSubstream: 'static,
    <TMuxer as StreamMuxer>::Substream: Send,
    <TMuxer as StreamMuxer>::Substream: 'static,
    <TTransport as Transport>::Error: Send,
    <TTransport as Transport>::Error: 'static,
    <TTransport as Transport>::Listener: Send,
    <TTransport as Transport>::Listener: 'static,
    <TTransport as Transport>::ListenerUpgrade: Send,
    <TTransport as Transport>::ListenerUpgrade: 'static,
    <TTransport as Transport>::Dial: Send,
    <TTransport as Transport>::Dial: 'static,
    <THandler as IntoProtocolsHandler>::Handler: ProtocolsHandler,
    <THandler as IntoProtocolsHandler>::Handler: Send,
    <THandler as IntoProtocolsHandler>::Handler: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundOpenInfo: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundOpenInfo: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::Info: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::Info: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter: 'static,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::Info: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::Info: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter: 'static,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InEvent == TInEvent,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutEvent == TOutEvent,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Substream == SubstreamRef<Arc<TMuxer>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Error == THandlerErr, 
[src]

pub fn new(
    transport: TTransport,
    behaviour: TBehaviour,
    local_peer_id: PeerId
) -> ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>
[src]

Builds a new Swarm.

pub fn transport(
    me: &ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>
) -> &TTransport
[src]

Returns the transport passed when building this object.

pub fn listen_on(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    addr: Multiaddr
) -> Result<ListenerId, TransportError<<TTransport as Transport>::Error>>
[src]

Starts listening on the given address.

Returns an error if the address is not supported.

pub fn remove_listener(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    id: ListenerId
) -> Result<(), ()>
[src]

Remove some listener.

Returns Ok(()) if there was a listener with this ID.

pub fn dial_addr(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    addr: Multiaddr
) -> Result<(), TransportError<<TTransport as Transport>::Error>>
[src]

Tries to dial the given address.

Returns an error if the address is not supported.

pub fn dial(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    peer_id: PeerId
)
[src]

Tries to reach the given peer using the elements in the topology.

Has no effect if we are already connected to that peer, or if no address is known for the peer.

pub fn listeners(
    me: &ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>
) -> impl Iterator<Item = &Multiaddr>
[src]

Returns an iterator that produces the list of addresses we're listening on.

pub fn external_addresses(
    me: &ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>
) -> impl Iterator<Item = &Multiaddr>
[src]

Returns an iterator that produces the list of addresses that other nodes can use to reach us.

pub fn local_peer_id(
    me: &ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>
) -> &PeerId
[src]

Returns the peer ID of the swarm passed as parameter.

pub fn add_external_address(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    addr: Multiaddr
)
[src]

Adds an external address.

An external address is an address we are listening on but that accounts for things such as NAT traversal.

pub fn connection_info(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    peer_id: &PeerId
) -> Option<TConnInfo>
[src]

Returns the connection info of a node, or None if we're not connected to it.

pub fn ban_peer_id(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    peer_id: PeerId
)
[src]

Bans a peer by its peer ID.

Any incoming connection and any dialing attempt will immediately be rejected. This function has no effect is the peer is already banned.

pub fn unban_peer_id(
    me: &mut ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>,
    peer_id: PeerId
)
[src]

Unbans a peer.

pub async fn next_event(
    &'_ mut self
) -> SwarmEvent<<TBehaviour as NetworkBehaviour>::OutEvent>
[src]

Returns the next event that happens in the Swarm.

Includes events from the NetworkBehaviour but also events about the connections status.

pub async fn next(&'_ mut self) -> <TBehaviour as NetworkBehaviour>::OutEvent[src]

Returns the next event produced by the [NetworkBehaviour].

Trait Implementations

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> Deref for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TTransport: Transport
[src]

type Target = TBehaviour

The resulting type after dereferencing.

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> DerefMut for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TTransport: Transport
[src]

impl<TTransport, TBehaviour, TMuxer, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> Stream for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
    TConnInfo: ConnectionInfo<PeerId = PeerId> + Debug + Clone + Send + 'static,
    THandler: IntoProtocolsHandler + Send + 'static,
    THandlerErr: Error + Send + 'static,
    TInEvent: Send + 'static,
    TMuxer: StreamMuxer + Send + Sync + 'static,
    TOutEvent: Send + 'static,
    TTransport: Transport<Output = (TConnInfo, TMuxer)> + Clone,
    <TMuxer as StreamMuxer>::OutboundSubstream: Send,
    <TMuxer as StreamMuxer>::OutboundSubstream: 'static,
    <TMuxer as StreamMuxer>::Substream: Send,
    <TMuxer as StreamMuxer>::Substream: 'static,
    <TTransport as Transport>::Error: Send,
    <TTransport as Transport>::Error: 'static,
    <TTransport as Transport>::Listener: Send,
    <TTransport as Transport>::Listener: 'static,
    <TTransport as Transport>::ListenerUpgrade: Send,
    <TTransport as Transport>::ListenerUpgrade: 'static,
    <TTransport as Transport>::Dial: Send,
    <TTransport as Transport>::Dial: 'static,
    <THandler as IntoProtocolsHandler>::Handler: ProtocolsHandler,
    <THandler as IntoProtocolsHandler>::Handler: Send,
    <THandler as IntoProtocolsHandler>::Handler: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundOpenInfo: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundOpenInfo: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as InboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::Info: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::Info: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter: 'static,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: Send,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Future: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as OutboundUpgrade<Compat01As03<Negotiated<Compat<SubstreamRef<Arc<TMuxer>>>>>>>::Error: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::Info: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::Info: 'static,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter: Send,
    <<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter: 'static,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: Send,
    <<<<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutboundProtocol as UpgradeInfo>::InfoIter as IntoIterator>::IntoIter: 'static,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::InEvent == TInEvent,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::OutEvent == TOutEvent,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Substream == SubstreamRef<Arc<TMuxer>>,
    <<THandler as IntoProtocolsHandler>::Handler as ProtocolsHandler>::Error == THandlerErr, 
[src]

type Item = <TBehaviour as NetworkBehaviour>::OutEvent

Values yielded by the stream.

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> Unpin for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TTransport: Transport
[src]

Auto Trait Implementations

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo = PeerId> !RefUnwindSafe for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> Send for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo> where
    TBehaviour: Send,
    TConnInfo: Send,
    THandler: Send,
    THandlerErr: Send,
    TInEvent: Send,
    TOutEvent: Send,
    TTransport: Send,
    <TTransport as Transport>::Error: Send,
    <TTransport as Transport>::Listener: Send

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo = PeerId> !Sync for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>

impl<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo = PeerId> !UnwindSafe for ExpandedSwarm<TTransport, TBehaviour, TInEvent, TOutEvent, THandler, THandlerErr, TConnInfo>

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> 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<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]

impl<S> TryStreamExt for S where
    S: TryStream
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,