Spec-Zone.ru › Tokio

Структура DuplexStream

pub struct DuplexStream { /* private fields */ }
Доступно только при включённой функции crate io-util.

Двунаправленный канал для чтения и записи байтов в памяти.

Пара DuplexStream создаётся одновременно; они образуют «канал», который можно использовать как типы ввода-вывода в памяти. Запись в один из пары позволяет прочитать эти данные с другого конца, и наоборот.

Закрытие DuplexStream

Если один конец канала DuplexStream отброшен, все ожидающие чтения на другой стороне продолжат читать данные, пока буфер не опустеет, а затем сообщат о достижении конца файла, вернув 0 байт. Любые записи на другую сторону, включая ожидающие записи (которые ждут освобождения места в буфере), немедленно вернут Err(BrokenPipe).

Пример

let (mut client, mut server) = tokio::io::duplex(64);

client.write_all(b"ping").await?;

let mut buf = [0u8; 4];
server.read_exact(&mut buf).await?;
assert_eq!(&buf, b"ping");

server.write_all(b"pong").await?;

client.read_exact(&mut buf).await?;
assert_eq!(&buf, b"pong");

Реализации трейтов

impl AsyncRead for DuplexStream

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

Пытается прочитать данные из AsyncRead в buf. Подробнее

impl AsyncWrite for DuplexStream

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, Error>>

Как poll_write, но запись выполняется из среза буферов. Подробнее

fn is_write_vectored(&self) -> bool

Определяет, реализует ли этот писатель эффективный метод poll_write_vectored. Подробнее

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

Пытается сбросить буфер объекта, гарантируя, что все буферизованные данные достигнут места назначения. Подробнее

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

Инициирует или пытается завершить работу этого писателя; возвращает успех, когда соединение ввода-вывода полностью закрыто. Подробнее

impl Debug for DuplexStream

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

Форматирует значение с помощью указанного форматировщика. Подробнее

impl Drop for DuplexStream

fn drop(&mut self)

Выполняет деструктор этого типа. Подробнее

fn pin_drop(self: Pin<&mut Self>)

🔬Это экспериментальный API, доступный только в nightly-версии. (pin_ergonomics)
Выполняет деструктор этого типа, но, в отличие от Drop::drop, требует, чтобы self был закреплён. Подробнее

Реализации автоматических трейтов

impl !RefUnwindSafe for DuplexStream

impl !UnwindSafe for DuplexStream

impl Freeze for DuplexStream

impl Send for DuplexStream

impl Sync for DuplexStream

impl Unpin for DuplexStream

impl UnsafeUnpin for DuplexStream

Обобщённые реализации

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

fn type_id(&self) -> TypeId

Возвращает TypeId для self. Подробнее

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

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

Доступно только при включённой функции крейта io-util.
Создаёт новый экземпляр AsyncRead, объединяющий этот поток с next. Подробнее

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>
where Self: Unpin, B: BufMut + ?Sized,

Доступно только при включённой функции крейта 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.
Считывает беззнаковое 8-битное целое число из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Считывает знаковое 8-битное целое число из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Считывает беззнаковое 16-битное целое число в порядке от старшего байта к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Считывает знаковое 16-битное целое число в порядке от старшего байта к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Считывает беззнаковое 32-битное целое число в порядке от старшего байта к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает знаковое 32-битное целое число в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает беззнаковое 64-битное целое число в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает знаковое 64-битное целое число в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает беззнаковое 128-битное целое число в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает знаковое 128-битное целое число в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает 32-битное число с плавающей точкой в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает 64-битное число с плавающей точкой в порядке байтов от старшего к младшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает беззнаковое 16-битное целое число в порядке байтов от младшего к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает знаковое 16-битное целое число в порядке байтов от младшего к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой функции крейта io-util.
Читает беззнаковое 32-битное целое число в порядке байтов от младшего к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает знаковое 32-битное целое число в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает беззнаковое 64-битное целое число в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает знаковое 64-битное целое число в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает беззнаковое 128-битное целое число в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает знаковое 128-битное целое число в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает число с плавающей запятой одинарной точности (32 бита) в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Считывает число с плавающей запятой двойной точности (64 бита) в порядке от младшего байта к старшему из базового средства чтения. Подробнее

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. Подробнее

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

Доступно только при включённой возможности crate io-util.
Создаёт адаптер, который считывает из него не более limit байт. Подробнее

impl<W> AsyncWriteExt for W
where 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.
Подобно write, но записывает данные из среза буферов. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает буфер в этот объект записи, сдвигая внутренний курсор буфера. Подробнее

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

Доступно только при включённой функции крейта 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.
Записывает беззнаковое 8-битное целое число в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает знаковое 8-битное целое число в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает беззнаковое 16-битное целое число в порядке байтов от старшего к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает знаковое 16-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает беззнаковое 32-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает знаковое 32-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает беззнаковое 64-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает знаковое 64-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает беззнаковое 128-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает знаковое 128-битное целое число в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает 32-битное число с плавающей точкой в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции crate io-util.
Записывает 64-битное число с плавающей точкой в порядке от старшего байта к младшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает беззнаковое 16-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает знаковое 16-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает беззнаковое 32-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает знаковое 32-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает беззнаковое 64-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает знаковое 64-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает беззнаковое 128-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой функции крейта io-util.
Записывает знаковое 128-битное целое число в порядке от младшего байта к старшему в базовый объект записи. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Записывает значение типа с плавающей точкой и шириной 32 бита в формате little-endian в базовый поток записи. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Записывает значение типа с плавающей точкой и шириной 64 бита в формате little-endian в базовый поток записи. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Очищает этот выходной поток, обеспечивая передачу всего промежуточно буферизованного содержимого в место назначения. Подробнее

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

Доступно только при включённой возможности крейта io-util.
Завершает работу выходного потока, обеспечивая возможность корректно удалить значение. Подробнее

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

fn borrow(&self) -> &T

Неизменяемо заимствует данные из принадлежащего значения. Подробнее

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

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

Изменяемо заимствует данные из принадлежащего значения. Подробнее

impl<T> From<T> for T

fn from(t: T) -> T

Возвращает аргумент без изменений.

impl<T> Instrument for T

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

Инструментирует этот тип с помощью указанного Span, возвращая обёртку Instrumented. Подробнее

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

Инструментирует этот тип с помощью текущего Span, возвращая обёртку Instrumented. Подробнее

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

fn into(self) -> U

Вызывает U::from(self).

То есть это преобразование выполняется так, как определяет реализация From<T> for U.

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

type Error = Infallible

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

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

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

Тип, возвращаемый в случае ошибки преобразования.

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

Выполняет преобразование.

impl<T> WithSubscriber for T

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

Присоединяет предоставленный Subscriber к этому типу, возвращая обёртку WithDispatch. Подробнее

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

Присоединяет текущий по умолчанию Subscriber к этому типу, возвращая обёртку WithDispatch. Подробнее

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

Spec-Zone.ru

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