Структура BufWriter
pub struct BufWriter<W> { /* private fields */ }
io-util.Оборачивает средство записи и буферизует его вывод.
Прямая работа с объектом, реализующим AsyncWrite, может быть крайне неэффективной. BufWriter хранит данные во внутреннем буфере и записывает их в нижележащее средство записи большими, но редкими порциями.
BufWriter может повысить скорость программ, которые выполняют небольшие и повторяющиеся вызовы записи в один и тот же файл или сетевой сокет. Это не помогает при записи очень больших объёмов данных за один раз или при выполнении всего одного или нескольких вызовов записи. Это также не даёт преимуществ при записи в расположенное в памяти место назначения, например в Vec<u8>.
При удалении BufWriter содержимое его буфера будет потеряно. Создание нескольких экземпляров BufWriter для одного потока может привести к потере данных. Если необходимо записать содержимое буфера, нужно вручную вызвать flush до удаления средства записи.
Реализации
impl<W: AsyncWrite> BufWriter<W>
pub fn new(inner: W) -> Self
Создаёт новый BufWriter с буфером ёмкости по умолчанию. В настоящее время размер буфера по умолчанию составляет 8 КБ, но в будущем он может измениться.
pub fn with_capacity(cap: usize, inner: W) -> Self
Создаёт новый BufWriter с заданной ёмкостью буфера.
pub fn get_mut(&mut self) -> &mut W
Возвращает изменяемую ссылку на нижележащее средство записи.
Не рекомендуется выполнять запись непосредственно в нижележащее средство записи.
pub fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut W>
Возвращает закреплённую изменяемую ссылку на нижележащее средство записи.
Не рекомендуется выполнять запись непосредственно в нижележащее средство записи.
pub fn into_inner(self) -> W
Потребляет этот BufWriter и возвращает нижележащее средство записи.
Обратите внимание, что все оставшиеся во внутреннем буфере данные будут потеряны.
Реализации трейтов
impl<W: AsyncWrite + AsyncBufRead> AsyncBufRead for BufWriter<W>
impl<W: AsyncWrite + AsyncRead> AsyncRead for BufWriter<W>
impl<W: AsyncWrite + AsyncSeek> AsyncSeek for BufWriter<W>
Перемещает указатель на указанное смещение в байтах в базовом средстве записи.
Перед перемещением указателя внутренний буфер всегда записывается.
impl<W: AsyncWrite> AsyncWrite for BufWriter<W>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>
buf в объект. Подробнее
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize>>
poll_write, но записывает данные из среза буферов. Подробнее
fn is_write_vectored(&self) -> bool
poll_write_vectored. Подробнее
impl<'__pin, W> Unpin for BufWriter<W>where PinnedFieldsOf<__Origin<'__pin, W>>: Unpin,
Реализации автоматических трейтов
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,
Общие реализации
impl<R> AsyncBufReadExt for Rwhere R: AsyncBufRead + ?Sized,
fn read_until<'a>( &'a mut self, byte: u8, buf: &'a mut Vec<u8>, ) -> ReadUntil<'a, Self>where Self: Unpin,
io-util.fn read_line<'a>(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>where Self: Unpin,
io-util.fn split(self, byte: u8) -> Split<Self>
io-util.byte. Подробнее
fn fill_buf(&mut self) -> FillBuf<'_, Self>where Self: Unpin,
io-util.fn consume(&mut self, amt: usize)where Self: Unpin,
io-util.fn lines(self) -> Lines<Self>where Self: Sized,
io-util.BufRead::lines. Подробнее
impl<R> AsyncReadExt for R
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where Self: Unpin,
io-util.fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
io-util.fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where Self: Unpin,
io-util.buf. Подробнее
fn read_u8(&mut self) -> ReadU8<&mut Self>where Self: Unpin,
io-util.fn read_i8(&mut self) -> ReadI8<&mut Self>where Self: Unpin,
io-util.fn read_u16(&mut self) -> ReadU16<&mut Self>where Self: Unpin,
io-util.fn read_i32(&mut self) -> ReadI32<&mut Self>where Self: Unpin,
io-util.fn read_u64(&mut self) -> ReadU64<&mut Self>where Self: Unpin,
io-util.fn read_i64(&mut self) -> ReadI64<&mut Self>where Self: Unpin,
io-util.fn read_u128(&mut self) -> ReadU128<&mut Self>where Self: Unpin,
io-util.fn read_i128(&mut self) -> ReadI128<&mut Self>where Self: Unpin,
io-util.fn read_f32(&mut self) -> ReadF32<&mut Self>where Self: Unpin,
io-util.fn read_f64(&mut self) -> ReadF64<&mut Self>where Self: Unpin,
io-util.fn read_u16_le(&mut self) -> ReadU16Le<&mut Self>where Self: Unpin,
io-util.fn read_i16_le(&mut self) -> ReadI16Le<&mut Self>where Self: Unpin,
io-util.fn read_u32_le(&mut self) -> ReadU32Le<&mut Self>where Self: Unpin,
io-util.fn read_i32_le(&mut self) -> ReadI32Le<&mut Self>where Self: Unpin,
io-util.fn read_u64_le(&mut self) -> ReadU64Le<&mut Self>where Self: Unpin,
io-util.fn read_i64_le(&mut self) -> ReadI64Le<&mut Self>where Self: Unpin,
io-util.fn read_u128_le(&mut self) -> ReadU128Le<&mut Self>where Self: Unpin,
io-util.fn read_i128_le(&mut self) -> ReadI128Le<&mut Self>where Self: Unpin,
io-util.fn read_f32_le(&mut self) -> ReadF32Le<&mut Self>where Self: Unpin,
io-util.fn read_f64_le(&mut self) -> ReadF64Le<&mut Self>where Self: Unpin,
io-util.fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where Self: Unpin,
io-util.buf. Подробнее
fn read_to_string<'a>( &'a mut self, dst: &'a mut String, ) -> ReadToString<'a, Self>where Self: Unpin,
io-util.buf. Подробнее
impl<S> AsyncSeekExt for S
fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>where Self: Unpin,
io-util.fn rewind(&mut self) -> Seek<'_, Self>where Self: Unpin,
io-util.fn stream_position(&mut self) -> Seek<'_, Self>where Self: Unpin,
io-util.impl<W> AsyncWriteExt for Wwhere W: AsyncWrite + ?Sized,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where Self: Unpin,
io-util.fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>], ) -> WriteVectored<'a, 'b, Self>where Self: Unpin,
io-util.fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
io-util.fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
io-util.fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where Self: Unpin,
io-util.fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where Self: Unpin,
io-util.fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where Self: Unpin,
io-util.fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where Self: Unpin,
io-util.fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where Self: Unpin,
io-util.fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where Self: Unpin,
io-util.fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where Self: Unpin,
io-util.fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where Self: Unpin,
io-util.fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where Self: Unpin,
io-util.fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where Self: Unpin,
io-util.fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where Self: Unpin,
io-util.fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where Self: Unpin,
io-util.fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where Self: Unpin,
io-util.fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where Self: Unpin,
io-util.fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where Self: Unpin,
io-util.fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where Self: Unpin,
io-util.fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where Self: Unpin,
io-util.fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where Self: Unpin,
io-util.fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where Self: Unpin,
io-util.impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Subscriber к этому типу, возвращая обёртку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/io/struct.BufWriter.html