if copy_size == 0 { return Err(ByteIOError::EOF); }
let dst = &mut buf[0..copy_size];
dst.copy_from_slice(&self.buf[self.pos..][..copy_size]);
if copy_size == 0 { return Err(ByteIOError::EOF); }
let dst = &mut buf[0..copy_size];
dst.copy_from_slice(&self.buf[self.pos..][..copy_size]);