pub(crate) fn copy_spec<R: Read + ?Sized, W: Write + ?Sized>( read: &mut R, write: &mut W ) -> Result<u64>