Struct futures_util::io::BufWriter
source · [−]pub struct BufWriter<W> { /* private fields */ }
Expand description
Wraps a writer and buffers its output.
It can be excessively inefficient to work directly with something that
implements AsyncWrite
. A BufWriter
keeps an in-memory buffer of data and
writes it to an underlying writer in large, infrequent batches.
BufWriter
can improve the speed of programs that make small and
repeated write calls to the same file or network socket. It does not
help when writing very large amounts at once, or writing just one or a few
times. It also provides no advantage when writing to a destination that is
in memory, like a Vec<u8>
.
When the BufWriter
is dropped, the contents of its buffer will be
discarded. Creating multiple instances of a BufWriter
on the same
stream can cause data loss. If you need to write out the contents of its
buffer, you must manually call flush before the writer is dropped.
Implementations
Creates a new BufWriter
with a default buffer capacity. The default is currently 8 KB,
but may change in the future.
Creates a new BufWriter
with the specified buffer capacity.
Acquires a reference to the underlying sink or stream that this combinator is pulling from.
Acquires a mutable reference to the underlying sink or stream that this combinator is pulling from.
Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.
Acquires a pinned mutable reference to the underlying sink or stream that this combinator is pulling from.
Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.
Consumes this combinator, returning the underlying sink or stream.
Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.
Trait Implementations
Attempt to return the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
Attempt to read from the AsyncRead
into buf
. Read more
Auto Trait Implementations
impl<W> RefUnwindSafe for BufWriter<W> where
W: RefUnwindSafe,
impl<W> UnwindSafe for BufWriter<W> where
W: UnwindSafe,
Blanket Implementations
Creates a future which will wait for a non-empty buffer to be available from this I/O object or EOF to be reached. Read more
A convenience for calling AsyncBufRead::consume
on Unpin
IO types. Read more
Creates a future which will read all the bytes associated with this I/O
object into buf
until the delimiter byte
or EOF is reached.
This method is the async equivalent to BufRead::read_until
. Read more
Creates a future which will read all the bytes associated with this I/O
object into buf
until a newline (the 0xA byte) or EOF is reached,
This method is the async equivalent to BufRead::read_line
. Read more
Creates an adaptor which will chain this stream with another. Read more
Tries to read some bytes directly into the given buf
in asynchronous
manner, returning a future type. Read more
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
Creates a future which will read from the AsyncRead
into bufs
using vectored
IO operations. Read more
Creates a future which will read exactly enough bytes to fill buf
,
returning an error if end of file (EOF) is hit sooner. Read more
Creates a future which will read all the bytes from this AsyncRead
. Read more
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
Creates a future which will read all the bytes from this AsyncRead
. Read more
Helper method for splitting this read/write object into two halves. Read more
Creates a future which will seek an IO object, and then yield the new position in the object and the object itself. Read more
Creates a future which will entirely flush this AsyncWrite
. Read more
Creates a future which will entirely close this AsyncWrite
.
Creates a future which will write bytes from buf
into the object. Read more
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
Creates a future which will write bytes from bufs
into the object using vectored
IO operations. Read more
Write data into this object. Read more
Mutably borrows from an owned value. Read more