Function empty

pub fn empty() -> Empty

Creates a value that is always at EOF for reads, and ignores all data written.

All writes on the returned instance will return Poll::Ready(Ok(buf.len())) and the contents of the buffer will not be inspected.

All reads from the returned instance will return Poll::Ready(Ok(0)).

This is an asynchronous version of std::io::empty.

Examples

A slightly sad example of not reading anything into a buffer:

use tokio::io::{self, AsyncReadExt};

# #[tokio::main(flavor = "current_thread")]
# async fn main() {
    let mut buffer = String::new();
    io::empty().read_to_string(&mut buffer).await.unwrap();
    assert!(buffer.is_empty());
# }

A convoluted way of getting the length of a buffer:

use tokio::io::{self, AsyncWriteExt};

# #[tokio::main(flavor = "current_thread")]
# async fn main() {
let buffer = vec![1, 2, 3, 5, 8];
let num_bytes = io::empty().write(&buffer).await.unwrap();
assert_eq!(num_bytes, 5);
# }