From 7ecf1c6868f28b4afa403db385ac5e8538961fa0 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 19 Oct 2020 15:58:10 +0200 Subject: buffered-reader: Make Generic::reader private and add accessors. --- buffered-reader/src/decompress_bzip2.rs | 6 +++--- buffered-reader/src/decompress_deflate.rs | 12 ++++++------ buffered-reader/src/generic.rs | 20 +++++++++++++++++--- 3 files changed, 26 insertions(+), 12 deletions(-) (limited to 'buffered-reader') 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, C> BufferedReader for Bzip { } fn get_mut(&mut self) -> Option<&mut dyn BufferedReader> { - Some(self.reader.reader.get_mut()) + Some(self.reader.reader_mut().get_mut()) } fn get_ref(&self) -> Option<&dyn BufferedReader> { - Some(self.reader.reader.get_ref()) + Some(self.reader.reader_ref().get_ref()) } fn into_inner<'b>(self: Box) -> Option + '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, C> BufferedReader } fn get_mut(&mut self) -> Option<&mut dyn BufferedReader> { - Some(self.reader.reader.get_mut()) + Some(self.reader.reader_mut().get_mut()) } fn get_ref(&self) -> Option<&dyn BufferedReader> { - Some(self.reader.reader.get_ref()) + Some(self.reader.reader_ref().get_ref()) } fn into_inner<'b>(self: Box) -> Option + '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, C> BufferedReader } fn get_mut(&mut self) -> Option<&mut dyn BufferedReader> { - Some(self.reader.reader.get_mut()) + Some(self.reader.reader_mut().get_mut()) } fn get_ref(&self) -> Option<&dyn BufferedReader> { - Some(self.reader.reader.get_ref()) + Some(self.reader.reader_ref().get_ref()) } fn into_inner<'b>(self: Box) -> Option + '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 { 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, + // The wrapped reader. + reader: Box, // The user settable cookie. cookie: C, @@ -72,6 +71,21 @@ impl Generic { } } + /// 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) -- cgit v1.2.3