Struct tokio::io::DuplexStream [−][src]
A bidirectional pipe to read and write bytes in memory.
A pair of DuplexStream
s are created together, and they act as a “channel”
that can be used as in-memory IO types. Writing to one of the pairs will
allow that data to be read from the other, and vice versa.
Example
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");
Trait Implementations
impl AsyncRead for DuplexStream
[src]
fn poll_read(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut ReadBuf<'_>
) -> Poll<Result<()>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut ReadBuf<'_>
) -> Poll<Result<()>>
impl AsyncWrite for DuplexStream
[src]
fn poll_write(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize>>
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
[src]
fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
[src]
fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
fn is_write_vectored(&self) -> bool
[src]
impl Debug for DuplexStream
[src]
impl Drop for DuplexStream
[src]
Auto Trait Implementations
impl !RefUnwindSafe for DuplexStream
impl Send for DuplexStream
impl Sync for DuplexStream
impl Unpin for DuplexStream
impl !UnwindSafe for DuplexStream
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,