pub trait WriteLayered: Write + Bufferable {
    // Required method
    fn close(&mut self) -> Result<()>;

    // Provided method
    fn flush_with_status(&mut self, status: Status) -> Result<()> { ... }
}
Expand description

An extension of std::io::Write, but adds a close function to allow the stream to be closed and any outstanding errors to be reported, without requiring a sync_all.

Required Methods§

source

fn close(&mut self) -> Result<()>

Flush any buffers and declare the end of the stream. Subsequent writes will fail.

Provided Methods§

source

fn flush_with_status(&mut self, status: Status) -> Result<()>

Like Write::flush, but has a status parameter describing the future of the stream:

  • Status::Ok(Activity::Active): do nothing
  • Status::Ok(Activity::Push): flush any buffers and transmit all data
  • Status::End: flush any buffers and declare the end of the stream

Passing Status::Ok(Activity::Push) makes this behave the same as flush().

Implementations on Foreign Types§

source§

impl<W: WriteLayered> WriteLayered for Box<W>

source§

fn close(&mut self) -> Result<()>

source§

impl WriteLayered for Cursor<&mut [u8]>

source§

fn close(&mut self) -> Result<()>

source§

impl WriteLayered for Cursor<Box<[u8]>>

source§

fn close(&mut self) -> Result<()>

source§

impl<W: WriteLayered> WriteLayered for &mut W

source§

fn close(&mut self) -> Result<()>

source§

impl WriteLayered for Cursor<&mut Vec<u8>>

source§

fn close(&mut self) -> Result<()>

source§

impl WriteLayered for Cursor<Vec<u8>>

source§

fn close(&mut self) -> Result<()>

Implementors§

source§

impl<Inner: Read + Write> WriteLayered for LayeredDuplexer<Inner>

source§

impl<Inner: Write> WriteLayered for LayeredWriter<Inner>