Struct diny_core::util::AsyncSliceWriter[][src]

pub struct AsyncSliceWriter<'b> { /* fields omitted */ }
Expand description

Writes asynchronously to a slice of bytes, without attempting to allocate more memory if a write is attempted past the end of the slice.

Should a write be attempted past the end of the slice without any remaining space, an error of WriteZero will be returned.

Examples

use futures::{AsyncWriteExt, executor};
use diny_core::util::AsyncSliceWriter;
 
let     send = [7u8; 5];
let mut buff = [0u8; 7];
let mut writer = AsyncSliceWriter::from(&mut buff[..]);
executor::block_on(writer.write(&send));
assert_eq!(send, writer.as_written());

The written bytes can then be easily retrieved by using an AsyncSliceReader

use futures::AsyncReadExt;
use diny_core::util::AsyncSliceReader;

let mut recv = [0u8; 5];
let mut reader = AsyncSliceReader::from(&writer);
executor::block_on(reader.read(&mut recv));
assert_eq!(send, recv);

Implementations

Instantiates a new async reader that implements AsyncWrite over the provided slice.

Returns the number of bytes that have been written so far into the provided slice.

Returns a read-only slice of the data that has been written so far into the provided slice.

Trait Implementations

Attempt to write bytes from buf into the object. Read more

Attempt to flush the object, ensuring that any buffered data reach their destination. Read more

Attempt to close the object. Read more

Attempt to write bytes from bufs into the object using vectored IO operations. Read more

Performs the conversion.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

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

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

This is supported on crate feature sink only.

Allow using an AsyncWrite as a Sink<Item: AsRef<[u8]>>. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.