Структура Simplex Stream
pub struct SimplexStream { /* private fields */ }
Доступно только при включённой функции крейта
io-util.Однонаправленный канал для чтения и записи байтов в памяти.
Его можно создать с помощью функции simplex, которая создаёт пару — читатель и писатель, или вызвав SimplexStream::new_unsplit, которая создаёт дескриптор для чтения и записи.
Пример
let (mut receiver, mut sender) = tokio::io::simplex(64);
sender.write_all(b"ping").await?;
let mut buf = [0u8; 4];
receiver.read_exact(&mut buf).await?;
assert_eq!(&buf, b"ping");Реализации
impl SimplexStream
pub fn new_unsplit(max_buf_size: usize) -> SimplexStream
Создаёт однонаправленный буфер, который работает как канал в памяти. Чтобы создать разделённую версию с отдельными читателем и писателем, можно воспользоваться функцией simplex.
Аргумент max_buf_size задаёт максимальное количество байтов, которое можно записать в буфер, прежде чем он вернёт Poll::Pending.
Реализации трейтов
impl AsyncRead for SimplexStream
impl AsyncWrite for SimplexStream
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. Подробнее
Автоматические реализации трейтов
impl Freeze for SimplexStream
impl RefUnwindSafe for SimplexStream
impl Send for SimplexStream
impl Sync for SimplexStream
impl Unpin for SimplexStream
impl UnsafeUnpin for SimplexStream
impl UnwindSafe for SimplexStream
Обобщённые реализации
impl<R> AsyncReadExt for R
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Извлекает несколько байтов из этого источника в указанный буфер и возвращает количество прочитанных байтов. Подробнее
fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
Доступно только при включённой функции crate
io-util.Извлекает несколько байтов из этого источника в указанный буфер, продвигая внутренний курсор буфера. Подробнее
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Считывает ровно столько байтов, сколько требуется для заполнения
buf. Подробнее
fn read_u8(&mut self) -> ReadU8<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Считывает из нижележащего средства чтения беззнаковое 8-битное целое число. Подробнее
fn read_i8(&mut self) -> ReadI8<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Считывает из нижележащего средства чтения знаковое 8-битное целое число. Подробнее
fn read_u16(&mut self) -> ReadU16<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Считывает из нижележащего средства чтения беззнаковое 16-битное целое число в порядке байтов от старшего к младшему. Подробнее
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,
Доступно только при включённой функции crate
io-util.Читает знаковое 32-битное целое число в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_u64_le(&mut self) -> ReadU64Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает беззнаковое 64-битное целое число в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_i64_le(&mut self) -> ReadI64Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает знаковое 64-битное целое число в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_u128_le(&mut self) -> ReadU128Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает беззнаковое 128-битное целое число в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_i128_le(&mut self) -> ReadI128Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает знаковое 128-битное целое число в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_f32_le(&mut self) -> ReadF32Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает 32-битное число с плавающей запятой в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_f64_le(&mut self) -> ReadF64Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает 64-битное число с плавающей запятой в порядке байтов от младшего к старшему из нижележащего источника чтения. Подробнее
fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает все байты из этого источника до конца файла (EOF), помещая их в
buf. Подробнее
fn read_to_string<'a>( &'a mut self, dst: &'a mut String, ) -> ReadToString<'a, Self>where Self: Unpin,
Доступно только при включённой функции crate
io-util.Читает все байты из этого источника до конца файла (EOF), добавляя их в
buf. Подробнее
impl<W> AsyncWriteExt for Wwhere W: AsyncWrite + ?Sized,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where Self: Unpin,
Доступно только при включенной функции crate
io-util.Записывает буфер в этот объект записи и возвращает количество записанных байтов. Подробнее
fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>], ) -> WriteVectored<'a, 'b, Self>where Self: Unpin,
Доступно только при включенной функции crate
io-util.fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
Доступно только при включенной функции crate
io-util.Записывает буфер в этот объект записи, сдвигая внутренний курсор буфера. Подробнее
fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
Доступно только при включенной функции crate
io-util.Пытается записать весь буфер в этот объект записи. Подробнее
fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where Self: Unpin,
Доступно только при включенной функции crate
io-util.Пытается записать весь буфер в этот объект записи. Подробнее
fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where Self: Unpin,
Доступно только при включенной функции crate
io-util.Записывает беззнаковое 8-битное целое число в нижележащий объект записи. Подробнее
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_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-битного числа с плавающей точкой в порядке от младшего байта к старшему в базовый объект записи. Подробнее
fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where Self: Unpin,
Доступно только при включённой функции крейта
io-util.Записывает значение 64-битного числа с плавающей точкой в порядке от младшего байта к старшему в базовый объект записи. Подробнее
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.SimplexStream.html