Struct std::io::WriterPanicked
pub struct WriterPanicked { /* fields omitted */ }
Error returned for the buffered data from BufWriter::into_parts
, when the underlying writer has previously panicked. Contains the (possibly partly written) buffered data.
Example
use std::io::{self, BufWriter, Write}; use std::panic::{catch_unwind, AssertUnwindSafe}; struct PanickingWriter; impl Write for PanickingWriter { fn write(&mut self, buf: &[u8]) -> io::Result<usize> { panic!() } fn flush(&mut self) -> io::Result<()> { panic!() } } let mut stream = BufWriter::new(PanickingWriter); write!(stream, "some data").unwrap(); let result = catch_unwind(AssertUnwindSafe(|| { stream.flush().unwrap() })); assert!(result.is_err()); let (recovered_writer, buffered_data) = stream.into_parts(); assert!(matches!(recovered_writer, PanickingWriter)); assert_eq!(buffered_data.unwrap_err().into_inner(), b"some data");
Implementations
impl WriterPanicked
pub fn into_inner(self) -> Vec<u8>
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.
Trait Implementations
impl Debug for WriterPanicked
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using the given formatter. Read more
impl Display for WriterPanicked
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using the given formatter. Read more
impl Error for WriterPanicked
fn description(&self) -> &str
use the Display impl or to_string()
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
fn backtrace(&self) -> Option<&Backtrace>
Returns a stack backtrace, if available, of where this error occurred. Read more
fn cause(&self) -> Option<&dyn Error>
replaced by Error::source, which can support downcasting
Auto Trait Implementations
impl RefUnwindSafe for WriterPanicked
impl Send for WriterPanicked
impl Sync for WriterPanicked
impl Unpin for WriterPanicked
impl UnwindSafe for WriterPanicked
Blanket Implementations
impl<T> From<T> for T
pub fn from(t: T) -> T
Performs the conversion.
pub fn into(self) -> U
Performs the conversion.
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/io/struct.WriterPanicked.html