Spec-Zone.ru › Tokio

Структура WriteHalf

pub struct WriteHalf<'a>(/* private fields */);
Доступно только при включённой возможности крейта net.

Заимствованная половина для записи TcpStream, создаваемая методом split.

Обратите внимание, что в реализации AsyncWrite для этого типа вызов poll_shutdown завершит работу TCP-потока в направлении записи.

Запись в WriteHalf обычно выполняется с помощью удобных методов, предоставляемых трейтом AsyncWriteExt.

Реализации

impl WriteHalf<'_>

pub async fn ready(&self, interest: Interest) -> Result<Ready>

Ожидает наступления любого из запрошенных состояний готовности.

Эту функцию обычно используют в паре с try_write(). Её можно использовать вместо writable(), чтобы проверить возвращённый набор состояний готовности на наличие событий Ready::WRITABLE и Ready::WRITE_CLOSED.

Функция может завершиться, даже если сокет не готов. Это ложноположительный результат, и попытка выполнить операцию вернёт io::ErrorKind::WouldBlock. Функция также может вернуть пустой набор Ready, поэтому всегда следует проверять возвращённое значение и, возможно, снова ожидать, если запрошенные состояния не установлены.

Эта функция эквивалентна TcpStream::ready.

Безопасность отмены

Этот метод безопасен при отмене. После наступления события готовности метод будет немедленно возвращать управление, пока это событие не будет обработано попыткой чтения или записи, завершившейся с ошибкой WouldBlock или Poll::Pending.

pub async fn writable(&self) -> Result<()>

Ожидает, пока сокет не станет готов к записи.

Эта функция эквивалентна ready(Interest::WRITABLE) и обычно используется в паре с try_write().

Безопасность отмены

Этот метод безопасен при отмене. После наступления события готовности метод будет немедленно возвращать управление, пока это событие не будет обработано попыткой записи, завершившейся с ошибкой WouldBlock или Poll::Pending.

pub fn try_write(&self, buf: &[u8]) -> Result<usize>

Пытается записать буфер в поток и возвращает количество записанных байтов.

Функция попытается записать всё содержимое buf, но может быть записана только часть буфера.

Эту функцию обычно используют в паре с writable().

Возвращаемое значение

При успешной записи данных возвращается Ok(n), где n — количество записанных байтов. Если поток не готов к записи данных, возвращается Err(io::ErrorKind::WouldBlock).

pub fn try_write_vectored(&self, bufs: &[IoSlice<'_>]) -> Result<usize>

Пытается записать в поток несколько буферов и возвращает количество записанных байтов.

Данные записываются из каждого буфера по порядку; последний считываемый буфер может быть использован лишь частично. Этот метод эквивалентен одному вызову try_write() с объединёнными буферами.

Эту функцию обычно используют в паре с writable().

Возвращаемое значение

При успешной записи данных возвращается Ok(n), где n — количество записанных байтов. Если поток не готов к записи данных, возвращается Err(io::ErrorKind::WouldBlock).

pub fn peer_addr(&self) -> Result<SocketAddr>

Возвращает удалённый адрес, к которому подключён этот поток.

pub fn local_addr(&self) -> Result<SocketAddr>

Возвращает локальный адрес, к которому привязан этот поток.

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

impl AsRef<TcpStream> for WriteHalf<'_>

fn as_ref(&self) -> &TcpStream

Преобразует этот тип в общую ссылку на входной тип (обычно выводимый).

impl AsyncWrite for WriteHalf<'_>

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

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

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

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

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

impl<'a> Debug for WriteHalf<'a>

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

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

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

impl<'a> Freeze for WriteHalf<'a>

impl<'a> RefUnwindSafe for WriteHalf<'a>

impl<'a> Send for WriteHalf<'a>

impl<'a> Sync for WriteHalf<'a>

impl<'a> Unpin for WriteHalf<'a>

impl<'a> UnsafeUnpin for WriteHalf<'a>

impl<'a> UnwindSafe for WriteHalf<'a>

Общие реализации

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

fn type_id(&self) -> TypeId

Получает TypeId для self. Подробнее

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,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Доступно только при включённой функции крейта 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,

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

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

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

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

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

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

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

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

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

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

Доступно только при включённой функции crate 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/net/tcp/struct.WriteHalf.html

Spec-Zone.ru

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