Struct libp2p::core::muxing::SingletonMuxer
source · pub struct SingletonMuxer<TSocket> { /* private fields */ }
Expand description
Implementation of StreamMuxer
that allows only one substream on top of a connection,
yielding the connection itself.
Applying this muxer on a connection doesn’t read or write any data on the connection itself. Most notably, no protocol is negotiated.
Implementations§
source§impl<TSocket> SingletonMuxer<TSocket>
impl<TSocket> SingletonMuxer<TSocket>
sourcepub fn new(inner: TSocket, endpoint: Endpoint) -> SingletonMuxer<TSocket>
pub fn new(inner: TSocket, endpoint: Endpoint) -> SingletonMuxer<TSocket>
Creates a new SingletonMuxer
.
If endpoint
is Dialer
, then only one outbound substream will be permitted.
If endpoint
is Listener
, then only one inbound substream will be permitted.
Trait Implementations§
source§impl<TSocket> StreamMuxer for SingletonMuxer<TSocket>where
TSocket: AsyncRead + AsyncWrite + Unpin,
impl<TSocket> StreamMuxer for SingletonMuxer<TSocket>where
TSocket: AsyncRead + AsyncWrite + Unpin,
§type Substream = TSocket
type Substream = TSocket
Type of the object that represents the raw substream where data can be read and written.
§type OutboundSubstream = OutboundSubstream
type OutboundSubstream = OutboundSubstream
Future that will be resolved when the outgoing substream is open.
source§fn poll_event(
&self,
_: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>
fn poll_event(
&self,
_: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>
Polls for a connection-wide event. Read more
source§fn open_outbound(
&self
) -> <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
fn open_outbound(
&self
) -> <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
Opens a new outgoing substream, and produces the equivalent to a future that will be
resolved when it becomes available. Read more
source§fn poll_outbound(
&self,
_: &mut Context<'_>,
_: &mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>
fn poll_outbound(
&self,
_: &mut Context<'_>,
_: &mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>
Polls the outbound substream. Read more
source§fn destroy_outbound(
&self,
_: <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
)
fn destroy_outbound(
&self,
_: <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
)
Destroys an outbound substream future. Use this after the outbound substream has finished,
or if you want to interrupt it. Read more