pub fn copy<R, W>(
    read: R,
    write: W
) -> Result<u64, CopyError<R::Error, W::Error>> where
    R: Read,
    W: Write