summaryrefslogtreecommitdiffstats
path: root/buffered-reader
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-10-19 15:58:10 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-10-19 18:13:51 +0200
commit7ecf1c6868f28b4afa403db385ac5e8538961fa0 (patch)
treefd22aee8a881e5632f811aa0f935201f4e411f99 /buffered-reader
parent9ba3972b9bef03a446c1b53385ef1313c492147a (diff)
buffered-reader: Make Generic::reader private and add accessors.
Diffstat (limited to 'buffered-reader')
-rw-r--r--buffered-reader/src/decompress_bzip2.rs6
-rw-r--r--buffered-reader/src/decompress_deflate.rs12
-rw-r--r--buffered-reader/src/generic.rs20
3 files changed, 26 insertions, 12 deletions
diff --git a/buffered-reader/src/decompress_bzip2.rs b/buffered-reader/src/decompress_bzip2.rs
index 96cf13b0..ddb0dd67 100644
--- a/buffered-reader/src/decompress_bzip2.rs
+++ b/buffered-reader/src/decompress_bzip2.rs
@@ -101,17 +101,17 @@ impl<R: BufferedReader<C>, C> BufferedReader<C> for Bzip<R, C> {
}
fn get_mut(&mut self) -> Option<&mut dyn BufferedReader<C>> {
- Some(self.reader.reader.get_mut())
+ Some(self.reader.reader_mut().get_mut())
}
fn get_ref(&self) -> Option<&dyn BufferedReader<C>> {
- Some(self.reader.reader.get_ref())
+ Some(self.reader.reader_ref().get_ref())
}
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<dyn BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(self.reader.reader.into_inner().as_boxed())
+ Some(self.reader.into_reader().into_inner().as_boxed())
}
fn cookie_set(&mut self, cookie: C) -> C {
diff --git a/buffered-reader/src/decompress_deflate.rs b/buffered-reader/src/decompress_deflate.rs
index a54d018c..de6210e7 100644
--- a/buffered-reader/src/decompress_deflate.rs
+++ b/buffered-reader/src/decompress_deflate.rs
@@ -102,17 +102,17 @@ impl<R: BufferedReader<C>, C> BufferedReader<C>
}
fn get_mut(&mut self) -> Option<&mut dyn BufferedReader<C>> {
- Some(self.reader.reader.get_mut())
+ Some(self.reader.reader_mut().get_mut())
}
fn get_ref(&self) -> Option<&dyn BufferedReader<C>> {
- Some(self.reader.reader.get_ref())
+ Some(self.reader.reader_ref().get_ref())
}
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<dyn BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(self.reader.reader.into_inner().as_boxed())
+ Some(self.reader.into_reader().into_inner().as_boxed())
}
fn cookie_set(&mut self, cookie: C) -> C {
@@ -224,17 +224,17 @@ impl<R: BufferedReader<C>, C> BufferedReader<C>
}
fn get_mut(&mut self) -> Option<&mut dyn BufferedReader<C>> {
- Some(self.reader.reader.get_mut())
+ Some(self.reader.reader_mut().get_mut())
}
fn get_ref(&self) -> Option<&dyn BufferedReader<C>> {
- Some(self.reader.reader.get_ref())
+ Some(self.reader.reader_ref().get_ref())
}
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<dyn BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(self.reader.reader.into_inner().as_boxed())
+ Some(self.reader.into_reader().into_inner().as_boxed())
}
fn cookie_set(&mut self, cookie: C) -> C {
diff --git a/buffered-reader/src/generic.rs b/buffered-reader/src/generic.rs
index 1ab87e50..c4d8aedd 100644
--- a/buffered-reader/src/generic.rs
+++ b/buffered-reader/src/generic.rs
@@ -15,9 +15,8 @@ pub struct Generic<T: io::Read, C> {
cursor: usize,
// The preferred chunk size. This is just a hint.
preferred_chunk_size: usize,
- // XXX: This is pub for the decompressors. It would be better to
- // change this to some accessor method.
- pub reader: Box<T>,
+ // The wrapped reader.
+ reader: Box<T>,
// The user settable cookie.
cookie: C,
@@ -72,6 +71,21 @@ impl<T: io::Read, C> Generic<T, C> {
}
}
+ /// Returns a reference to the wrapped writer.
+ pub fn reader_ref(&self) -> &T {
+ &self.reader
+ }
+
+ /// Returns a mutable reference to the wrapped writer.
+ pub fn reader_mut(&mut self) -> &mut T {
+ &mut self.reader
+ }
+
+ /// Returns the wrapped writer.
+ pub fn into_reader(self) -> T {
+ *self.reader
+ }
+
/// Return the buffer. Ensure that it contains at least `amount`
/// bytes.
fn data_helper(&mut self, amount: usize, hard: bool, and_consume: bool)