pub struct IncomingBody { /* private fields */ }
Expand description
Wraps the incoming body of a request which just contains
the stream and the body of the request itself. The bytes of the body
are only read into memory explicitly. The implementation of OutgoingBody
for this type will read the bytes from the stream and write them to the
output stream.
Implementations§
Source§impl IncomingBody
impl IncomingBody
pub fn into_trailers(self) -> Result<Option<HeaderMap>>
pub fn into_trailers_wasi(self) -> Result<Option<Fields>>
Methods from Deref<Target = InputStream>§
Sourcepub fn read(&self, len: u64) -> Result<Vec<u8>, StreamError>
pub fn read(&self, len: u64) -> Result<Vec<u8>, StreamError>
Perform a non-blocking read from the stream.
When the source of a read
is binary data, the bytes from the source
are returned verbatim. When the source of a read
is known to the
implementation to be text, bytes containing the UTF-8 encoding of the
text are returned.
This function returns a list of bytes containing the read data,
when successful. The returned list will contain up to len
bytes;
it may return fewer than requested, but not more. The list is
empty when no bytes are available for reading at this time. The
pollable given by subscribe
will be ready when more bytes are
available.
This function fails with a stream-error
when the operation
encounters an error, giving last-operation-failed
, or when the
stream is closed, giving closed
.
When the caller gives a len
of 0, it represents a request to
read 0 bytes. If the stream is still open, this call should
succeed and return an empty list, or otherwise fail with closed
.
The len
parameter is a u64
, which could represent a list of u8 which
is not possible to allocate in wasm32, or not desirable to allocate as
as a return value by the callee. The callee may return a list of bytes
less than len
in size while more bytes are available for reading.
Sourcepub fn blocking_read(&self, len: u64) -> Result<Vec<u8>, StreamError>
pub fn blocking_read(&self, len: u64) -> Result<Vec<u8>, StreamError>
Read bytes from a stream, after blocking until at least one byte can
be read. Except for blocking, behavior is identical to read
.
Sourcepub fn skip(&self, len: u64) -> Result<u64, StreamError>
pub fn skip(&self, len: u64) -> Result<u64, StreamError>
Skip bytes from a stream. Returns number of bytes skipped.
Behaves identical to read
, except instead of returning a list
of bytes, returns the number of bytes consumed from the stream.
Sourcepub fn blocking_skip(&self, len: u64) -> Result<u64, StreamError>
pub fn blocking_skip(&self, len: u64) -> Result<u64, StreamError>
Skip bytes from a stream, after blocking until at least one byte
can be skipped. Except for blocking behavior, identical to skip
.
Sourcepub fn subscribe(&self) -> Pollable
pub fn subscribe(&self) -> Pollable
Create a pollable
which will resolve once either the specified stream
has bytes available to read or the other end of the stream has been
closed.
The created pollable
is a child resource of the input-stream
.
Implementations may trap if the input-stream
is dropped before
all derived pollable
s created with this function are dropped.
Trait Implementations§
Source§impl Deref for IncomingBody
impl Deref for IncomingBody
Source§impl DerefMut for IncomingBody
impl DerefMut for IncomingBody
Source§impl OutgoingBody for IncomingBody
impl OutgoingBody for IncomingBody
fn write(self, body: OutgoingBody, stream: OutputStream) -> Result<()>
Source§impl Read for IncomingBody
impl Read for IncomingBody
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read
, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read more