pub struct RecvStream<'a> { /* private fields */ }
Expand description
Access to streams
Implementations§
Source§impl<'a> RecvStream<'a>
impl<'a> RecvStream<'a>
Sourcepub fn read(&mut self, ordered: bool) -> Result<Chunks<'_>, ReadableError>
pub fn read(&mut self, ordered: bool) -> Result<Chunks<'_>, ReadableError>
Read from the given recv stream
max_length
limits the maximum size of the returned Bytes
value; passing usize::MAX
will yield the best performance. ordered
will make sure the returned chunk’s offset will
have an offset exactly equal to the previously returned offset plus the previously returned
bytes’ length.
Yields Ok(None)
if the stream was finished. Otherwise, yields a segment of data and its
offset in the stream. If ordered
is false
, segments may be received in any order, and
the Chunk
’s offset
field can be used to determine ordering in the caller.
While most applications will prefer to consume stream data in order, unordered reads can
improve performance when packet loss occurs and data cannot be retransmitted before the flow
control window is filled. On any given stream, you can switch from ordered to unordered
reads, but ordered reads on streams that have seen previous unordered reads will return
ReadError::IllegalOrderedRead
.
Sourcepub fn stop(&mut self, error_code: VarInt) -> Result<(), ClosedStream>
pub fn stop(&mut self, error_code: VarInt) -> Result<(), ClosedStream>
Stop accepting data on the given receive stream
Discards unread data and notifies the peer to stop transmitting. Once stopped, further
attempts to operate on a stream will yield ClosedStream
errors.
Sourcepub fn received_reset(&mut self) -> Result<Option<VarInt>, ClosedStream>
pub fn received_reset(&mut self) -> Result<Option<VarInt>, ClosedStream>
Check whether this stream has been reset by the peer, returning the reset error code if so
After returning Ok(Some(_))
once, stream state will be discarded and all future calls will
return Err(ClosedStream)
.