Struct minicbor_io::AsyncWriter
source · pub struct AsyncWriter<W> { /* private fields */ }
Expand description
Wraps an AsyncWrite
and writes length-delimited CBOR values.
Requires cargo feature "async-io"
.
Implementations§
source§impl<W> AsyncWriter<W>
impl<W> AsyncWriter<W>
sourcepub fn with_buffer(writer: W, buffer: Vec<u8>) -> Self
pub fn with_buffer(writer: W, buffer: Vec<u8>) -> Self
Create a new writer with a max. buffer size of 512KiB.
sourcepub fn set_max_len(&mut self, val: u32)
pub fn set_max_len(&mut self, val: u32)
Set the max. buffer size in bytes.
If length values greater than this are encoded, an
Error::InvalidLen
will be returned.
sourcepub fn writer_mut(&mut self) -> &mut W
pub fn writer_mut(&mut self) -> &mut W
Get a mutable reference to the inner writer.
sourcepub fn into_parts(self) -> (W, Vec<u8>)
pub fn into_parts(self) -> (W, Vec<u8>)
Deconstruct this writer into the inner writer and the buffer.
source§impl<W: AsyncWrite + Unpin> AsyncWriter<W>
impl<W: AsyncWrite + Unpin> AsyncWriter<W>
sourcepub async fn write<T: Encode<()>>(&mut self, val: T) -> Result<usize, Error>
pub async fn write<T: Encode<()>>(&mut self, val: T) -> Result<usize, Error>
Encode and write a CBOR value and return its size in bytes.
The value will be preceded by a u32
(4 bytes in network byte order),
denoting the length of bytes constituting the serialised value.
§Cancellation
If the future returned by AsyncWriter::write
is dropped while still
pending, subsequent calls to AsyncWriter::write
will discard any
buffered data and instead encode, buffer and commit the new value.
Cancelling a future thus cancels the transfer. However, it is also
possible to resume the transfer by calling AsyncWriter::sync
after cancellation, which is normally called implicitly by this method.
sourcepub async fn write_with<C, T: Encode<C>>(
&mut self,
val: T,
ctx: &mut C
) -> Result<usize, Error>
pub async fn write_with<C, T: Encode<C>>( &mut self, val: T, ctx: &mut C ) -> Result<usize, Error>
Like AsyncWriter::write
but accepting a user provided encoding context.
sourcepub async fn sync(&mut self) -> Result<(), Error>
pub async fn sync(&mut self) -> Result<(), Error>
Commit any buffered data to the inner AsyncWrite
.
This method is implicitly called by AsyncWriter::write
. The only
reason to call it explicitly is to resume the write operation started
by a previously unfinished, i.e. cancelled, AsyncWriter::write
call.