Struct custom_print::IoWriter
source · pub struct IoWriter<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 FmtWriter
,
but provides write and flush methods that allows you to use BufWriter
, LineWriter
etc.
Write function can return either
()
, usize
, for<E>
Result
<(), E>
or for<E>
Result
<usize, E>
.
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 [for<E> Result<(), E>
].
Panics
Writer panics if the write function returns Result::Err
.
Implementations§
source§impl<F1, F2> IoWriter<F1, F2>where
F1: WriteStr,
F2: Flush,
impl<F1, F2> IoWriter<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 IoWriter
from an object that implements WriteBytes
and object that implements Flush
.
source§impl<F1> IoWriter<F1, ()>where
F1: WriteStr,
impl<F1> IoWriter<F1, ()>where F1: WriteStr,
sourcepub fn from_closure<F, Ts>(closure: F) -> Selfwhere
F: IntoWriteFn<Ts, WriteFn = F1>,
pub fn from_closure<F, Ts>(closure: F) -> Selfwhere F: IntoWriteFn<Ts, WriteFn = F1>,
Creates a new IoWriter
with a WriteBytes
wrapper
deduced with IntoWriteFn
by the closure signature and constructed from it.
source§impl<F1> IoWriter<F1, ()>where
Self: Write,
impl<F1> IoWriter<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.
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: PartialEq, F2: PartialEq> PartialEq<IoWriter<F1, F2>> for IoWriter<F1, F2>
impl<F1: PartialEq, F2: PartialEq> PartialEq<IoWriter<F1, F2>> for IoWriter<F1, F2>
source§impl<F1, F2> Write for IoWriter<F1, F2>where
Self: WriteBytes<Output = Result<usize>> + Flush<Output = Result<()>>,
impl<F1, F2> Write for IoWriter<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
)