Структура Owned Write Half
pub struct OwnedWriteHalf { /* private fields */ }
net.Владеющая половина для записи из UnixStream, созданная с помощью into_split.
Обратите внимание, что в реализации AsyncWrite для этого типа вызов poll_shutdown завершит работу потока в направлении записи. Удаление половины для записи также завершит работу половины потока для записи.
Запись в OwnedWriteHalf обычно выполняется с помощью вспомогательных методов, предоставляемых трейтом AsyncWriteExt.
Реализации
impl OwnedWriteHalf
pub fn reunite(self, other: OwnedReadHalf) -> Result<UnixStream, ReuniteError>
Пытается объединить две половины UnixStream и восстановить исходный сокет. Операция завершается успешно, только если обе половины были получены в результате одного вызова into_split.
pub fn forget(self)
Уничтожает половину для записи, но не закрывает её до тех пор, пока не будет уничтожена половина для чтения. Если половина для чтения уже уничтожена, поток закрывается.
pub async fn ready(&self, interest: Interest) -> Result<Ready>
Ожидает наступления любого из запрошенных состояний готовности.
Эта функция обычно используется в паре с try_write(). Её можно использовать вместо writable(), чтобы проверить, содержит ли возвращённый набор готовности события Ready::WRITABLE и Ready::WRITE_CLOSED.
Функция может завершиться, даже если сокет не готов. Это ложноположительный результат, и попытка выполнить операцию вернёт io::ErrorKind::WouldBlock. Функция также может вернуть пустой набор Ready, поэтому всегда проверяйте возвращённое значение и, возможно, снова ожидайте, если запрошенные состояния не установлены.
Эта функция эквивалентна UnixStream::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, buf: &[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<UnixStream> for OwnedWriteHalf
fn as_ref(&self) -> &UnixStream
impl AsyncWrite for OwnedWriteHalf
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 Debug for OwnedWriteHalf
impl Drop for OwnedWriteHalf
Реализации автоматических трейтов
impl Freeze for OwnedWriteHalf
impl RefUnwindSafe for OwnedWriteHalf
impl Send for OwnedWriteHalf
impl Sync for OwnedWriteHalf
impl Unpin for OwnedWriteHalf
impl UnsafeUnpin for OwnedWriteHalf
impl UnwindSafe for OwnedWriteHalf
Общие реализации
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_u16(&mut self, n: u16) -> WriteU16<&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_f32(&mut self, n: f32) -> WriteF32<&mut Self>where Self: Unpin,
io-util.fn write_f64(&mut self, n: f64) -> WriteF64<&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/net/unix/struct.OwnedWriteHalf.html