pub trait Write {
// Required methods
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>;
fn flush(&mut self) -> Result<(), Error>;
// Provided methods
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error> { ... }
fn by_ref(&mut self) -> &mut Self
where Self: Sized { ... }
}
std
only.Expand description
A trait for objects which are byte-oriented sinks, modeled after its
std::io::Write
counterpart.
The documentation for this trait is taken from the aforementioned std
trait.
Required Methods§
sourcefn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Write a buffer into this writer, returning how many bytes were written.
This function will attempt to write the entire contents of buf
, but
the entire write might not succeed, or the write may also generate an
error. A call to write
represents at most one attempt to write to
any wrapped object.
Calls to write
are not guaranteed to block waiting for data to be
written, and a write which would otherwise block can be indicated through
an Err
variant.
If the return value is Ok(n)
then it must be guaranteed that
n <= buf.len()
. A return value of 0
typically means that the
underlying object is no longer able to accept bytes and will likely not
be able to in the future as well, or that the buffer provided is empty.
§Errors
Each call to write
may generate an I/O error indicating that the
operation could not be completed. If an error is returned then no bytes
in the buffer were written to this writer.
It is not considered an error if the entire buffer could not be written to this writer.
An error of the ErrorKind::Interrupted
kind is non-fatal and the
write operation should be retried if there is nothing else to do.
Provided Methods§
sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer.
This method will continuously call write
until there is no more data
to be written or an error of non-ErrorKind::Interrupted
kind is
returned. This method will not return until the entire buffer has been
successfully written or such an error occurs. The first error that is
not of ErrorKind::Interrupted
kind generated from this method will be
returned.
If the buffer contains no data, this will never call write
.
§Errors
This function will return the first error of
non-ErrorKind::Interrupted
kind that write
returns.
Implementations on Foreign Types§
Implementors§
impl<W: Write> Write for DeflateEncoder<W>
impl<W: Write> Write for GzipEncoder<W>
gzip
only.impl<W: Write> Write for ZlibEncoder<W>
zlib
only.