(&mut self, buf: &[u8])
| 220 | |
| 221 | impl io::Write for ShortSegment { |
| 222 | fn write(&mut self, buf: &[u8]) -> io::Result<usize> { |
| 223 | let pos = self.inner.stream_position()?; |
| 224 | debug!("pos={} max_len={} buf-len={}", pos, self.max_len, buf.len()); |
| 225 | if pos + buf.len() as u64 > self.max_len { |
| 226 | let max = cmp::min(1, (self.max_len - pos) as usize); |
| 227 | let n = self.inner.write(&buf[..max])?; |
| 228 | debug!("partial write {}/{}", n, buf.len()); |
| 229 | return Err(io::Error::from_raw_os_error(ENOSPC)); |
| 230 | } |
| 231 | self.inner.write(buf) |
| 232 | } |
| 233 | |
| 234 | fn flush(&mut self) -> io::Result<()> { |
| 235 | self.inner.flush() |
no test coverage detected