pub async fn copy<'a, R, W>(reader: &'a mut R, writer: &'a mut W) -> Result<u64>Expand description
Asynchronously copies the entire contents of a reader into a writer.
This function returns a future that will continuously read data from
reader and then write it into writer in a streaming fashion until
reader returns EOF or fails.
On success, the total number of bytes that were copied from reader to
writer is returned.
This is an asynchronous version of std::io::copy.
A heap-allocated copy buffer with 8 KB is created to take data from the
reader to the writer, check copy_buf if you want an alternative for
AsyncBufRead. You can use copy_buf with BufReader to change the
buffer capacity.
§Errors
The returned future will return an error immediately if any call to
poll_read or poll_write returns an error.
§Examples
use tokio::io;
let mut reader: &[u8] = b"hello";
let mut writer: Vec<u8> = vec![];
io::copy(&mut reader, &mut writer).await?;
assert_eq!(&b"hello"[..], &writer[..]);