diff options
Diffstat (limited to 'buffered-reader')
-rw-r--r-- | buffered-reader/src/lib.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/buffered-reader/src/lib.rs b/buffered-reader/src/lib.rs index f226198e..4661b959 100644 --- a/buffered-reader/src/lib.rs +++ b/buffered-reader/src/lib.rs @@ -818,6 +818,13 @@ pub trait BufferedReader<C> : io::Read + fmt::Debug + fmt::Display { Ok(at_least_one_byte) } + /// Boxes the reader. + fn as_boxed<'a>(self) -> Box<dyn BufferedReader<C> + 'a> + where Self: 'a + Sized + { + Box::new(self) + } + /// Returns the underlying reader, if any. /// /// To allow this to work with `BufferedReader` traits, it is @@ -963,6 +970,12 @@ impl <'a, C> BufferedReader<C> for Box<dyn BufferedReader<C> + 'a> { self.as_ref().get_ref() } + fn as_boxed<'b>(self) -> Box<dyn BufferedReader<C> + 'b> + where Self: 'b + { + self + } + fn into_inner<'b>(self: Box<Self>) -> Option<Box<dyn BufferedReader<C> + 'b>> where Self: 'b { // Strip the outer box. |