Stabilise BufWriter::into_parts

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
This commit is contained in:
Ian Jackson 2021-05-01 00:38:01 +01:00
parent 47ab5f7ce2
commit db13636f03
3 changed files with 8 additions and 10 deletions

View File

@ -323,7 +323,6 @@ impl<W: Write> BufWriter<W> {
/// # Examples /// # Examples
/// ///
/// ``` /// ```
/// #![feature(bufwriter_into_parts)]
/// use std::io::{BufWriter, Write}; /// use std::io::{BufWriter, Write};
/// ///
/// let mut buffer = [0u8; 10]; /// let mut buffer = [0u8; 10];
@ -334,7 +333,7 @@ impl<W: Write> BufWriter<W> {
/// assert_eq!(recovered_writer.len(), 0); /// assert_eq!(recovered_writer.len(), 0);
/// assert_eq!(&buffered_data.unwrap(), b"ata"); /// assert_eq!(&buffered_data.unwrap(), b"ata");
/// ``` /// ```
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
pub fn into_parts(mut self) -> (W, Result<Vec<u8>, WriterPanicked>) { pub fn into_parts(mut self) -> (W, Result<Vec<u8>, WriterPanicked>) {
let buf = mem::take(&mut self.buf); let buf = mem::take(&mut self.buf);
let buf = if !self.panicked { Ok(buf) } else { Err(WriterPanicked { buf }) }; let buf = if !self.panicked { Ok(buf) } else { Err(WriterPanicked { buf }) };
@ -444,14 +443,13 @@ impl<W: Write> BufWriter<W> {
} }
} }
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
/// Error returned for the buffered data from `BufWriter::into_parts`, when the underlying /// Error returned for the buffered data from `BufWriter::into_parts`, when the underlying
/// writer has previously panicked. Contains the (possibly partly written) buffered data. /// writer has previously panicked. Contains the (possibly partly written) buffered data.
/// ///
/// # Example /// # Example
/// ///
/// ``` /// ```
/// #![feature(bufwriter_into_parts)]
/// use std::io::{self, BufWriter, Write}; /// use std::io::{self, BufWriter, Write};
/// use std::panic::{catch_unwind, AssertUnwindSafe}; /// use std::panic::{catch_unwind, AssertUnwindSafe};
/// ///
@ -478,7 +476,7 @@ pub struct WriterPanicked {
impl WriterPanicked { impl WriterPanicked {
/// Returns the perhaps-unwritten data. Some of this data may have been written by the /// Returns the perhaps-unwritten data. Some of this data may have been written by the
/// panicking call(s) to the underlying writer, so simply writing it again is not a good idea. /// panicking call(s) to the underlying writer, so simply writing it again is not a good idea.
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
pub fn into_inner(self) -> Vec<u8> { pub fn into_inner(self) -> Vec<u8> {
self.buf self.buf
} }
@ -487,7 +485,7 @@ impl WriterPanicked {
"BufWriter inner writer panicked, what data remains unwritten is not known"; "BufWriter inner writer panicked, what data remains unwritten is not known";
} }
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
impl error::Error for WriterPanicked { impl error::Error for WriterPanicked {
#[allow(deprecated, deprecated_in_future)] #[allow(deprecated, deprecated_in_future)]
fn description(&self) -> &str { fn description(&self) -> &str {
@ -495,14 +493,14 @@ impl error::Error for WriterPanicked {
} }
} }
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
impl fmt::Display for WriterPanicked { impl fmt::Display for WriterPanicked {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", Self::DESCRIPTION) write!(f, "{}", Self::DESCRIPTION)
} }
} }
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
impl fmt::Debug for WriterPanicked { impl fmt::Debug for WriterPanicked {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("WriterPanicked") f.debug_struct("WriterPanicked")

View File

@ -14,7 +14,7 @@ use crate::io::Error;
pub use bufreader::BufReader; pub use bufreader::BufReader;
pub use bufwriter::BufWriter; pub use bufwriter::BufWriter;
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
pub use bufwriter::WriterPanicked; pub use bufwriter::WriterPanicked;
pub use linewriter::LineWriter; pub use linewriter::LineWriter;
use linewritershim::LineWriterShim; use linewritershim::LineWriterShim;

View File

@ -264,7 +264,7 @@ use crate::sys_common::memchr;
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub use self::buffered::IntoInnerError; pub use self::buffered::IntoInnerError;
#[unstable(feature = "bufwriter_into_parts", issue = "80690")] #[stable(feature = "bufwriter_into_parts", since = "1.56.0")]
pub use self::buffered::WriterPanicked; pub use self::buffered::WriterPanicked;
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub use self::buffered::{BufReader, BufWriter, LineWriter}; pub use self::buffered::{BufReader, BufWriter, LineWriter};