pub async fn copy<'a, R, W>(reader: &'a mut R, writer: &'a mut W) -> Result<u64> where
R: AsyncRead + Unpin + ?Sized,
W: AsyncWrite + Unpin + ?Sized,
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.
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
.
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[..]);