Struct libp2p::core::muxing::SingletonMuxer [−][src]
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
impl<TSocket> SingletonMuxer<TSocket>
[src]
pub fn new(inner: TSocket, endpoint: Endpoint) -> SingletonMuxer<TSocket>
[src]
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
impl<TSocket> StreamMuxer for SingletonMuxer<TSocket> where
TSocket: AsyncRead + AsyncWrite + Unpin,
[src]
TSocket: AsyncRead + AsyncWrite + Unpin,
type Substream = Substream
Type of the object that represents the raw substream where data can be read and written.
type OutboundSubstream = OutboundSubstream
Future that will be resolved when the outgoing substream is open.
type Error = Error
Error type of the muxer
pub fn poll_event(
&self,
&mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>
[src]
&self,
&mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<<SingletonMuxer<TSocket> as StreamMuxer>::Substream>, Error>>
pub fn open_outbound(
&self
) -> <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
[src]
&self
) -> <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
pub fn poll_outbound(
&self,
&mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>
[src]
&self,
&mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
) -> Poll<Result<<SingletonMuxer<TSocket> as StreamMuxer>::Substream, Error>>
pub fn destroy_outbound(
&self,
<SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
)
[src]
&self,
<SingletonMuxer<TSocket> as StreamMuxer>::OutboundSubstream
)
pub fn read_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
pub fn write_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>
[src]
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>
pub fn flush_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
[src]
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
pub fn shutdown_substream(
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
[src]
&self,
cx: &mut Context<'_>,
&mut <SingletonMuxer<TSocket> as StreamMuxer>::Substream
) -> Poll<Result<(), Error>>
pub fn destroy_substream(
&self,
<SingletonMuxer<TSocket> as StreamMuxer>::Substream
)
[src]
&self,
<SingletonMuxer<TSocket> as StreamMuxer>::Substream
)
pub fn close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
[src]
pub fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
[src]
pub fn is_remote_acknowledged(&self) -> bool
[src]
Auto Trait Implementations
impl<TSocket> !RefUnwindSafe for SingletonMuxer<TSocket>
impl<TSocket> Send for SingletonMuxer<TSocket> where
TSocket: Send,
TSocket: Send,
impl<TSocket> Sync for SingletonMuxer<TSocket> where
TSocket: Send,
TSocket: Send,
impl<TSocket> Unpin for SingletonMuxer<TSocket> where
TSocket: Unpin,
TSocket: Unpin,
impl<TSocket> UnwindSafe for SingletonMuxer<TSocket> where
TSocket: UnwindSafe,
TSocket: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,