summaryrefslogtreecommitdiffstats
path: root/buffered-reader/src/decompress.rs
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@pep.foundation>2018-02-23 12:17:24 +0100
committerNeal H. Walfield <neal@pep.foundation>2018-02-23 12:48:27 +0100
commitafbe6667f98dd9396c102e9c5b033681c2dcf6b2 (patch)
tree2ab483cf342b51f23511ac93b32a18237f24351a /buffered-reader/src/decompress.rs
parentec8c7984f72debd3bca2a5e76b5c8292c81772f2 (diff)
buffered-reader: Add methods to get a reference to the inner reader.
- To be able to walk a stack of buffered readers without consuming them, add the get_mut and get_ref methods to the `BufferedReader` trait.
Diffstat (limited to 'buffered-reader/src/decompress.rs')
-rw-r--r--buffered-reader/src/decompress.rs30
1 files changed, 27 insertions, 3 deletions
diff --git a/buffered-reader/src/decompress.rs b/buffered-reader/src/decompress.rs
index 0bad2e48..81a11e48 100644
--- a/buffered-reader/src/decompress.rs
+++ b/buffered-reader/src/decompress.rs
@@ -88,10 +88,18 @@ impl<R: BufferedReader<C>, C> BufferedReader<C>
return self.reader.steal_eof();
}
+ fn get_mut(&mut self) -> Option<&mut BufferedReader<C>> {
+ Some(self.reader.reader.get_mut())
+ }
+
+ fn get_ref(&self) -> Option<&BufferedReader<C>> {
+ Some(self.reader.reader.get_ref())
+ }
+
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(Box::new((*self).reader.reader.into_inner()))
+ Some(Box::new(self.reader.reader.into_inner()))
}
fn cookie_set(&mut self, cookie: C) -> C {
@@ -188,10 +196,18 @@ impl<R: BufferedReader<C>, C> BufferedReader<C>
return self.reader.steal_eof();
}
+ fn get_mut(&mut self) -> Option<&mut BufferedReader<C>> {
+ Some(self.reader.reader.get_mut())
+ }
+
+ fn get_ref(&self) -> Option<&BufferedReader<C>> {
+ Some(self.reader.reader.get_ref())
+ }
+
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(Box::new((*self).reader.reader.into_inner()))
+ Some(Box::new(self.reader.reader.into_inner()))
}
fn cookie_set(&mut self, cookie: C) -> C {
@@ -287,10 +303,18 @@ impl<R: BufferedReader<C>, C> BufferedReader<C> for BufferedReaderBzip<R, C> {
return self.reader.steal_eof();
}
+ fn get_mut(&mut self) -> Option<&mut BufferedReader<C>> {
+ Some(self.reader.reader.get_mut())
+ }
+
+ fn get_ref(&self) -> Option<&BufferedReader<C>> {
+ Some(self.reader.reader.get_ref())
+ }
+
fn into_inner<'b>(self: Box<Self>)
-> Option<Box<BufferedReader<C> + 'b>> where Self: 'b {
// Strip the outer box.
- Some(Box::new((*self).reader.reader.into_inner()))
+ Some(Box::new(self.reader.reader.into_inner()))
}
fn cookie_set(&mut self, cookie: C) -> C {