Spec-Zone.ru › Tokio

Struct BufWriter

pub struct BufWriter<W> { /* private fields */ }
Available on crate feature io-util only.

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

impl<W: AsyncWrite> BufWriter<W>

pub fn new(inner: W) -> Self

Creates a new BufWriter with a default buffer capacity. The default is currently 8 KB, but may change in the future.

pub fn with_capacity(cap: usize, inner: W) -> Self

Creates a new BufWriter with the specified buffer capacity.

pub fn get_ref(&self) -> &W

Gets a reference to the underlying writer.

pub fn get_mut(&mut self) -> &mut W

Gets a mutable reference to the underlying writer.

It is inadvisable to directly write to the underlying writer.

pub fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut W>

Gets a pinned mutable reference to the underlying writer.

It is inadvisable to directly write to the underlying writer.

pub fn into_inner(self) -> W

Consumes this BufWriter, returning the underlying writer.

Note that any leftover data in the internal buffer is lost.

pub fn buffer(&self) -> &[u8] ⓘ

Returns a reference to the internally buffered data.

Trait Implementations

impl<W: AsyncWrite + AsyncBufRead> AsyncBufRead for BufWriter<W>

fn poll_fill_buf( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<&[u8]>>

Attempts to return the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

fn consume(self: Pin<&mut Self>, amt: usize)

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to poll_read. Read more

impl<W: AsyncWrite + AsyncRead> AsyncRead for BufWriter<W>

fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_>, ) -> Poll<Result<()>>

Attempts to read from the AsyncRead into buf. Read more

impl<W: AsyncWrite + AsyncSeek> AsyncSeek for BufWriter<W>

Seek to the offset, in bytes, in the underlying writer.

Seeking always writes out the internal buffer before seeking.

fn start_seek(self: Pin<&mut Self>, pos: SeekFrom) -> Result<()>

Attempts to seek to an offset, in bytes, in a stream. Read more

fn poll_complete( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<u64>>

Waits for a seek operation to complete. Read more

impl<W: AsyncWrite> AsyncWrite for BufWriter<W>

fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>

Attempt to write bytes from buf into the object. Read more

fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize>>

Like poll_write, except that it writes from a slice of buffers. Read more

fn is_write_vectored(&self) -> bool

Determines if this writer has an efficient poll_write_vectored implementation. Read more

fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>

Attempts to flush the object, ensuring that any buffered data reach their destination. Read more

fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>

Initiates or attempts to shut down this writer, returning success when the I/O connection has completely shut down. Read more

impl<W: Debug> Debug for BufWriter<W>

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

impl<RW> From<BufWriter<BufReader<RW>>> for BufStream<RW>

fn from(b: BufWriter<BufReader<RW>>) -> Self

Converts to this type from the input type.

impl<'__pin, W> Unpin for BufWriter<W>
where PinnedFieldsOf<__Origin<'__pin, W>>: Unpin,

Auto Trait Implementations

impl<W> Freeze for BufWriter<W>
where W: Freeze,

impl<W> RefUnwindSafe for BufWriter<W>
where W: RefUnwindSafe,

impl<W> Send for BufWriter<W>
where W: Send,

impl<W> Sync for BufWriter<W>
where W: Sync,

impl<W> UnsafeUnpin for BufWriter<W>
where W: UnsafeUnpin,

impl<W> UnwindSafe for BufWriter<W>
where W: UnwindSafe,

Blanket Implementations

impl<T> Any for T
where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more

impl<R> AsyncBufReadExt for R
where R: AsyncBufRead + ?Sized,

fn read_until<'a>( &'a mut self, byte: u8, buf: &'a mut Vec<u8>, ) -> ReadUntil<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads all bytes into buf until the delimiter byte or EOF is reached. Read more

fn read_line<'a>(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more

fn split(self, byte: u8) -> Split<Self>
where Self: Sized + Unpin,

Available on crate feature io-util only.
Returns a stream of the contents of this reader split on the byte byte. Read more

fn fill_buf(&mut self) -> FillBuf<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

fn consume(&mut self, amt: usize)
where Self: Unpin,

Available on crate feature io-util only.
Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to read. Read more

fn lines(self) -> Lines<Self>
where Self: Sized,

Available on crate feature io-util only.
Returns a stream over the lines of this reader. This method is the async equivalent to BufRead::lines. Read more

impl<R> AsyncReadExt for R
where R: AsyncRead + ?Sized,

fn chain<R>(self, next: R) -> Chain<Self, R>
where Self: Sized, R: AsyncRead,

Available on crate feature io-util only.
Creates a new AsyncRead instance that chains this stream with next. Read more

fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Pulls some bytes from this source into the specified buffer, returning how many bytes were read. Read more

fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
where Self: Unpin, B: BufMut + ?Sized,

Available on crate feature io-util only.
Pulls some bytes from this source into the specified buffer, advancing the buffer’s internal cursor. Read more

fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads the exact number of bytes required to fill buf. Read more

fn read_u8(&mut self) -> ReadU8<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 8 bit integer from the underlying reader. Read more

fn read_i8(&mut self) -> ReadI8<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads a signed 8 bit integer from the underlying reader. Read more

fn read_u16(&mut self) -> ReadU16<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 16-bit integer in big-endian order from the underlying reader. Read more

fn read_i16(&mut self) -> ReadI16<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads a signed 16-bit integer in big-endian order from the underlying reader. Read more

fn read_u32(&mut self) -> ReadU32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 32-bit integer in big-endian order from the underlying reader. Read more

fn read_i32(&mut self) -> ReadI32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads a signed 32-bit integer in big-endian order from the underlying reader. Read more

fn read_u64(&mut self) -> ReadU64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 64-bit integer in big-endian order from the underlying reader. Read more

fn read_i64(&mut self) -> ReadI64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an signed 64-bit integer in big-endian order from the underlying reader. Read more

fn read_u128(&mut self) -> ReadU128<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 128-bit integer in big-endian order from the underlying reader. Read more

fn read_i128(&mut self) -> ReadI128<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an signed 128-bit integer in big-endian order from the underlying reader. Read more

fn read_f32(&mut self) -> ReadF32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an 32-bit floating point type in big-endian order from the underlying reader. Read more

fn read_f64(&mut self) -> ReadF64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an 64-bit floating point type in big-endian order from the underlying reader. Read more

fn read_u16_le(&mut self) -> ReadU16Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 16-bit integer in little-endian order from the underlying reader. Read more

fn read_i16_le(&mut self) -> ReadI16Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads a signed 16-bit integer in little-endian order from the underlying reader. Read more

fn read_u32_le(&mut self) -> ReadU32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 32-bit integer in little-endian order from the underlying reader. Read more

fn read_i32_le(&mut self) -> ReadI32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads a signed 32-bit integer in little-endian order from the underlying reader. Read more

fn read_u64_le(&mut self) -> ReadU64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 64-bit integer in little-endian order from the underlying reader. Read more

fn read_i64_le(&mut self) -> ReadI64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an signed 64-bit integer in little-endian order from the underlying reader. Read more

fn read_u128_le(&mut self) -> ReadU128Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an unsigned 128-bit integer in little-endian order from the underlying reader. Read more

fn read_i128_le(&mut self) -> ReadI128Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an signed 128-bit integer in little-endian order from the underlying reader. Read more

fn read_f32_le(&mut self) -> ReadF32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an 32-bit floating point type in little-endian order from the underlying reader. Read more

fn read_f64_le(&mut self) -> ReadF64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads an 64-bit floating point type in little-endian order from the underlying reader. Read more

fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads all bytes until EOF in this source, placing them into buf. Read more

fn read_to_string<'a>( &'a mut self, dst: &'a mut String, ) -> ReadToString<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Reads all bytes until EOF in this source, appending them to buf. Read more

fn take(self, limit: u64) -> Take<Self>
where Self: Sized,

Available on crate feature io-util only.
Creates an adaptor which reads at most limit bytes from it. Read more

impl<S> AsyncSeekExt for S
where S: AsyncSeek + ?Sized,

fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Creates a future which will seek an IO object, and then yield the new position in the object and the object itself. Read more

fn rewind(&mut self) -> Seek<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Creates a future which will rewind to the beginning of the stream. Read more

fn stream_position(&mut self) -> Seek<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Creates a future which will return the current seek position from the start of the stream. Read more

impl<W> AsyncWriteExt for W
where W: AsyncWrite + ?Sized,

fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a buffer into this writer, returning how many bytes were written. Read more

fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>], ) -> WriteVectored<'a, 'b, Self>
where Self: Unpin,

Available on crate feature io-util only.
Like write, except that it writes from a slice of buffers. Read more

fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
where Self: Sized + Unpin, B: Buf,

Available on crate feature io-util only.
Writes a buffer into this writer, advancing the buffer’s internal cursor. Read more

fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
where Self: Sized + Unpin, B: Buf,

Available on crate feature io-util only.
Attempts to write an entire buffer into this writer. Read more

fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>
where Self: Unpin,

Available on crate feature io-util only.
Attempts to write an entire buffer into this writer. Read more

fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 8-bit integer to the underlying writer. Read more

fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 8-bit integer to the underlying writer. Read more

fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 16-bit integer in big-endian order to the underlying writer. Read more

fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 16-bit integer in big-endian order to the underlying writer. Read more

fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 32-bit integer in big-endian order to the underlying writer. Read more

fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 32-bit integer in big-endian order to the underlying writer. Read more

fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 64-bit integer in big-endian order to the underlying writer. Read more

fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 64-bit integer in big-endian order to the underlying writer. Read more

fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 128-bit integer in big-endian order to the underlying writer. Read more

fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 128-bit integer in big-endian order to the underlying writer. Read more

fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an 32-bit floating point type in big-endian order to the underlying writer. Read more

fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an 64-bit floating point type in big-endian order to the underlying writer. Read more

fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 16-bit integer in little-endian order to the underlying writer. Read more

fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 16-bit integer in little-endian order to the underlying writer. Read more

fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 32-bit integer in little-endian order to the underlying writer. Read more

fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 32-bit integer in little-endian order to the underlying writer. Read more

fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 64-bit integer in little-endian order to the underlying writer. Read more

fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 64-bit integer in little-endian order to the underlying writer. Read more

fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 128-bit integer in little-endian order to the underlying writer. Read more

fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 128-bit integer in little-endian order to the underlying writer. Read more

fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an 32-bit floating point type in little-endian order to the underlying writer. Read more

fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>
where Self: Unpin,

Available on crate feature io-util only.
Writes an 64-bit floating point type in little-endian order to the underlying writer. Read more

fn flush(&mut self) -> Flush<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

fn shutdown(&mut self) -> Shutdown<'_, Self>
where Self: Unpin,

Available on crate feature io-util only.
Shuts down the output stream, ensuring that the value can be dropped cleanly. Read more

impl<T> Borrow<T> for T
where T: ?Sized,

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T
where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

impl<T> From<T> for T

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Instrument for T

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

impl<T, U> Into<U> for T
where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

impl<T, U> TryFrom<U> for T
where U: Into<T>,

type Error = Infallible

The type returned in the event of a conversion error.

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

impl<T> WithSubscriber for T

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/io/struct.BufWriter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API