summaryrefslogtreecommitdiffstats
path: root/buffered-reader/src/memory.rs
diff options
context:
space:
mode:
Diffstat (limited to 'buffered-reader/src/memory.rs')
-rw-r--r--buffered-reader/src/memory.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/buffered-reader/src/memory.rs b/buffered-reader/src/memory.rs
index c2fd8781..a7e8c1de 100644
--- a/buffered-reader/src/memory.rs
+++ b/buffered-reader/src/memory.rs
@@ -6,7 +6,11 @@ use std::io::{Error, ErrorKind};
use super::*;
-/// A `BufferedReader` specialized for reading from memory buffers.
+/// Wraps a memory buffer.
+///
+/// Although it is possible to use `BufferedReaderGeneric` to wrap a
+/// buffer, this implementation is optimized for a memory buffer, and
+/// avoids double buffering.
pub struct BufferedReaderMemory<'a, C> {
buffer: &'a [u8],
// The next byte to read in the buffer.
@@ -26,17 +30,19 @@ impl<'a, C> fmt::Debug for BufferedReaderMemory<'a, C> {
}
impl<'a> BufferedReaderMemory<'a, ()> {
- /// Instantiate a new memory-based reader. `buffer` contains the
- /// reader's contents.
+ /// Instantiates a new `BufferedReaderMemory`.
+ ///
+ /// `buffer` contains the `BufferedReaderMemory`'s contents.
pub fn new(buffer: &'a [u8]) -> Self {
Self::with_cookie(buffer, ())
}
}
impl<'a, C> BufferedReaderMemory<'a, C> {
- /// Like `new()`, but sets a cookie, which can be retrieved using
- /// the `cookie_ref` and `cookie_mut` methods, and set using
- /// the `cookie_set` method.
+ /// Like `new()`, but sets a cookie.
+ ///
+ /// The cookie can be retrieved using the `cookie_ref` and
+ /// `cookie_mut` methods, and set using the `cookie_set` method.
pub fn with_cookie(buffer: &'a [u8], cookie: C) -> Self {
BufferedReaderMemory {
buffer: buffer,
@@ -67,8 +73,6 @@ impl<'a, C> BufferedReader<C> for BufferedReaderMemory<'a, C> {
&self.buffer[self.cursor..]
}
- /// Return the buffer. Ensure that it contains at least `amount`
- /// bytes.
fn data(&mut self, _amount: usize) -> Result<&[u8], io::Error> {
assert!(self.cursor <= self.buffer.len());
return Ok(&self.buffer[self.cursor..]);