(&mut self, data: &mut [u8])
| 728 | |
| 729 | impl Read for TestStream { |
| 730 | fn read(&mut self, data: &mut [u8]) -> IoResult<usize> { |
| 731 | match self.read_state { |
| 732 | StreamState::Closed => Ok(0), |
| 733 | StreamState::Error(kind) => Err(IoError::new(kind, "whatevs")), |
| 734 | StreamState::Ready => { |
| 735 | if self.read_buf.is_empty() { |
| 736 | return Err(IoError::new(ErrorKind::WouldBlock, "EAGAIN")); |
| 737 | } |
| 738 | let len = std::cmp::min(data.len(), self.read_buf.len()); |
| 739 | assert_ne!(len, 0); |
| 740 | data[..len].copy_from_slice(&self.read_buf[..len]); |
| 741 | self.read_buf = self.read_buf.split_off(len); |
| 742 | Ok(len) |
| 743 | } |
| 744 | StreamState::WouldBlock => Err(IoError::new(ErrorKind::WouldBlock, "EAGAIN")), |
| 745 | } |
| 746 | } |
| 747 | } |
| 748 | |
| 749 | impl Write for TestStream { |
no test coverage detected