Struct custom_print::IoTryWriter
source · pub struct IoTryWriter<F1, F2>(_, _);
Expand description
A writer that uses write_bytes
and has both write
and flush
methods.
It calls write_bytes
for each formatted chunk like the FmtTryWriter
,
but provides write and flush methods that allows you to use BufWriter
, LineWriter
etc.
Write function can return either ()
, usize
, io::Result
<()>
, io::Result
<usize>
,
Result
<(),
ffi::NulError
>
or Result
<usize,
ffi::NulError
>
.
The usize
itself or in Result
indicates how many bytes were written.
write_fmt
method that is used by write!
and writeln!
will continuously call write until there is no more data to be written
or a non-ErrorKind::Interrupted
kind is returned.
Flush function can return either ()
or io::Result
<()>
.
Writer propagates error to the caller if the write function returns Result::Err
.
Implementations§
source§impl<F1, F2> IoTryWriter<F1, F2>where
F1: WriteStr,
F2: Flush,
impl<F1, F2> IoTryWriter<F1, F2>where F1: WriteStr, F2: Flush,
sourcepub fn new(write: F1, flush: F2) -> Self
pub fn new(write: F1, flush: F2) -> Self
Creates a new IoTryWriter
from an object that implements WriteBytes
and object that implements Flush
.
source§impl<F1> IoTryWriter<F1, ()>where
F1: WriteStr,
impl<F1> IoTryWriter<F1, ()>where F1: WriteStr,
sourcepub fn from_closure<F, Ts>(closure: F) -> Selfwhere
F: IntoTryWriteFn<Ts, TryWriteFn = F1>,
pub fn from_closure<F, Ts>(closure: F) -> Selfwhere F: IntoTryWriteFn<Ts, TryWriteFn = F1>,
Creates a new IoTryWriter
with a WriteBytes
wrapper
deduced with IntoTryWriteFn
by the closure signature and constructed from it.
source§impl<F1> IoTryWriter<F1, ()>where
Self: Write,
impl<F1> IoTryWriter<F1, ()>where Self: Write,
sourcepub fn write_fmt(&mut self, args: Arguments<'_>) -> Result<()>
pub fn write_fmt(&mut self, args: Arguments<'_>) -> Result<()>
Writes a formatted string into this writer, returning any error encountered.
This method is primarily used to interface with the format_args!
macro,
but it is rare that this should explicitly be called.
The write!
macro should be favored to invoke this method instead.
Trait Implementations§
source§impl<F1, F2> Flush for IoTryWriter<F1, F2>where
F2: Flush,
F2::Output: IntoIoFlushResult,
impl<F1, F2> Flush for IoTryWriter<F1, F2>where F2: Flush, F2::Output: IntoIoFlushResult,
source§impl<F1: PartialEq, F2: PartialEq> PartialEq<IoTryWriter<F1, F2>> for IoTryWriter<F1, F2>
impl<F1: PartialEq, F2: PartialEq> PartialEq<IoTryWriter<F1, F2>> for IoTryWriter<F1, F2>
source§fn eq(&self, other: &IoTryWriter<F1, F2>) -> bool
fn eq(&self, other: &IoTryWriter<F1, F2>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<F1, F2> Write for IoTryWriter<F1, F2>where
Self: WriteBytes<Output = Result<usize>> + Flush<Output = Result<()>>,
impl<F1, F2> Write for IoTryWriter<F1, F2>where Self: WriteBytes<Output = Result<usize>> + Flush<Output = Result<()>>,
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)