impl<R: Read> Read for BufReader<R> { fn read(&mutself, buf: &mut [u8]) -> io::Result<usize> { // If we don't have any buffered data and we're doing a massive read // (larger than our internal buffer), bypass our internal buffer // entirely. ifself.pos == self.cap && buf.len() >= self.buf.len() { returnself.inner.read(buf);
} let nread = { letmut rem = self.fill_buf()?;
rem.read(buf)?
}; self.consume(nread);
Ok(nread)
}
}
impl<R: Read> BufRead for BufReader<R> { fn fill_buf(&mutself) -> io::Result<&[u8]> { // If we've reached the end of our internal buffer then we need to fetch // some more data from the underlying reader. ifself.pos == self.cap { self.cap = self.inner.read(&mutself.buf)?; self.pos = 0;
}
Ok(&self.buf[self.pos..self.cap])
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.