]> git.lizzy.rs Git - rust.git/commitdiff
Introduce `into_inner` method on `std::io::Take`.
authorCorey Farwell <coreyf@rwell.org>
Fri, 26 Aug 2016 17:59:46 +0000 (10:59 -0700)
committerCorey Farwell <coreyf@rwell.org>
Fri, 26 Aug 2016 18:02:32 +0000 (11:02 -0700)
https://github.com/rust-lang/rust/issues/23755

src/libstd/io/mod.rs

index 1053792cd439bc4ef414f507a66973451f4ec51d..06609cfad152e969130324f96b552c5852a06294 100644 (file)
@@ -1501,6 +1501,33 @@ impl<T> Take<T> {
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     pub fn limit(&self) -> u64 { self.limit }
+
+    /// Consumes the `Take`, returning the wrapped reader.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// #![feature(io_take_into_inner)]
+    ///
+    /// use std::io;
+    /// use std::io::prelude::*;
+    /// use std::fs::File;
+    ///
+    /// # fn foo() -> io::Result<()> {
+    /// let mut file = try!(File::open("foo.txt"));
+    ///
+    /// let mut buffer = [0; 5];
+    /// let mut handle = file.take(5);
+    /// try!(handle.read(&mut buffer));
+    ///
+    /// let file = handle.into_inner();
+    /// # Ok(())
+    /// # }
+    /// ```
+    #[unstable(feature = "io_take_into_inner", issue = "0")]
+    pub fn into_inner(self) -> T {
+        self.inner
+    }
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]