pub async fn copy<'a, R: ?Sized, W: ?Sized>(
reader: &'a mut R,
writer: &'a mut W
) -> Result<u64> where
R: AsyncRead + Unpin,
W: AsyncWrite + Unpin,
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
writer is returned.
This is an asynchronous version of
The returned future will finish with an error will return an error
immediately if any call to
poll_write returns an error.
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[..]);