Struct multistream_select::Negotiated [−][src]
pub struct Negotiated<TInner> { /* fields omitted */ }
Expand description
An I/O stream that has settled on an (application-layer) protocol to use.
A Negotiated
represents an I/O stream that has settled on a protocol
to use. In particular, it is not implied that all of the protocol negotiation
frames have yet been sent and / or received, just that the selected protocol
is fully determined. This is to allow the last protocol negotiation frames
sent by a peer to be combined in a single write, possibly piggy-backing
data from the negotiated protocol on top.
Reading from a Negotiated
I/O stream that still has pending negotiation
protocol data to send implicitly triggers flushing of all yet unsent data.
Implementations
pub fn complete(self) -> NegotiatedComplete<TInner>ⓘNotable traits for NegotiatedComplete<TInner>impl<TInner> Future for NegotiatedComplete<TInner> where
TInner: AsyncRead + AsyncWrite + Unpin, type Output = Result<Negotiated<TInner>, NegotiationError>;
pub fn complete(self) -> NegotiatedComplete<TInner>ⓘNotable traits for NegotiatedComplete<TInner>impl<TInner> Future for NegotiatedComplete<TInner> where
TInner: AsyncRead + AsyncWrite + Unpin, type Output = Result<Negotiated<TInner>, NegotiationError>;
impl<TInner> Future for NegotiatedComplete<TInner> where
TInner: AsyncRead + AsyncWrite + Unpin, type Output = Result<Negotiated<TInner>, NegotiationError>;
Returns a NegotiatedComplete
future that waits for protocol
negotiation to complete.
Trait Implementations
Attempt to read from the AsyncRead
into buf
. Read more
Auto Trait Implementations
impl<TInner> RefUnwindSafe for Negotiated<TInner> where
TInner: RefUnwindSafe,
impl<TInner> Send for Negotiated<TInner> where
TInner: Send,
impl<TInner> Sync for Negotiated<TInner> where
TInner: Sync,
impl<TInner> UnwindSafe for Negotiated<TInner> where
TInner: UnwindSafe,
Blanket Implementations
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
Creates an adaptor which will chain this stream with another. Read more
Tries to read some bytes directly into the given buf
in asynchronous
manner, returning a future type. Read more
fn read_vectored(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self> where
Self: Unpin,
fn read_vectored(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self> where
Self: Unpin,
Creates a future which will read from the AsyncRead
into bufs
using vectored
IO operations. Read more
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> where
Self: Unpin,
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> where
Self: Unpin,
Creates a future which will read exactly enough bytes to fill buf
,
returning an error if end of file (EOF) is hit sooner. Read more
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self> where
Self: Unpin,
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self> where
Self: Unpin,
Creates a future which will read all the bytes from this AsyncRead
. Read more
fn read_to_string(&'a mut self, buf: &'a mut String) -> ReadToString<'a, Self> where
Self: Unpin,
fn read_to_string(&'a mut self, buf: &'a mut String) -> ReadToString<'a, Self> where
Self: Unpin,
Creates a future which will read all the bytes from this AsyncRead
. Read more
Helper method for splitting this read/write object into two halves. Read more
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
Creates a future which will entirely flush this AsyncWrite
. Read more
Creates a future which will entirely close this AsyncWrite
.
Creates a future which will write bytes from buf
into the object. Read more
fn write_vectored(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self> where
Self: Unpin,
fn write_vectored(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self> where
Self: Unpin,
Creates a future which will write bytes from bufs
into the object using vectored
IO operations. Read more
Write data into this object. Read more
Mutably borrows from an owned value. Read more