Struct pal_async::pipe::PolledPipe
source · pub struct PolledPipe { /* private fields */ }
Expand description
A polled Unix pipe (or other pipe-like file).
Implementations§
source§impl PolledPipe
impl PolledPipe
sourcepub fn new(driver: &(impl ?Sized + Driver), file: File) -> Result<Self>
pub fn new(driver: &(impl ?Sized + Driver), file: File) -> Result<Self>
Creates a polled pipe from a file.
sourcepub fn pair(driver: &(impl ?Sized + Driver)) -> Result<(Self, Self)>
pub fn pair(driver: &(impl ?Sized + Driver)) -> Result<(Self, Self)>
Creates a connected pair of polled pipes, returning (read pipe, write pipe).
sourcepub fn file_pair() -> Result<(File, File)>
pub fn file_pair() -> Result<(File, File)>
Creates a connected pair of pipes (read pipe, write pipe) suitable for
passing to Self::new
.
sourcepub fn into_inner(self) -> File
pub fn into_inner(self) -> File
Returns the inner pipe file.
sourcepub fn split(self) -> (ReadHalf, WriteHalf)
pub fn split(self) -> (ReadHalf, WriteHalf)
Splits the file into a read and write half that can be used concurrently.
This is more flexible and efficient than
[futures::io::AsyncReadExt::split
], since it avoids holding a lock
while calling into the kernel, and it provides access to the underlying
file for more advanced operations.
Trait Implementations§
source§impl AsyncRead for PolledPipe
impl AsyncRead for PolledPipe
source§impl AsyncWrite for PolledPipe
impl AsyncWrite for PolledPipe
source§fn poll_write(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize>>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>
Attempt to write bytes from
buf
into the object. Read moresource§fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>
Attempt to flush the object, ensuring that any buffered data reach
their destination. Read more
source§impl PollReady for PolledPipe
impl PollReady for PolledPipe
source§fn poll_ready(
&mut self,
cx: &mut Context<'_>,
events: PollEvents,
) -> Poll<PollEvents>
fn poll_ready( &mut self, cx: &mut Context<'_>, events: PollEvents, ) -> Poll<PollEvents>
Polls an object for readiness.
Auto Trait Implementations§
impl Freeze for PolledPipe
impl !RefUnwindSafe for PolledPipe
impl Send for PolledPipe
impl Sync for PolledPipe
impl Unpin for PolledPipe
impl !UnwindSafe for PolledPipe
Blanket Implementations§
§impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
§fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
Creates an adaptor which will chain this stream with another. Read more
§fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
Tries to read some bytes directly into the given
buf
in asynchronous
manner, returning a future type. Read more§fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>],
) -> ReadVectored<'a, Self>where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>],
) -> ReadVectored<'a, Self>where
Self: Unpin,
Creates a future which will read from the
AsyncRead
into bufs
using vectored
IO operations. Read more§fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
Creates a future which will read exactly enough bytes to fill
buf
,
returning an error if end of file (EOF) is hit sooner. Read more§fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where
Self: Unpin,
fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead
. Read more§fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String,
) -> ReadToString<'a, Self>where
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String,
) -> ReadToString<'a, Self>where
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead
. Read more§impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
§fn flush(&mut self) -> Flush<'_, Self>where
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self>where
Self: Unpin,
Creates a future which will entirely flush this
AsyncWrite
. Read more§fn close(&mut self) -> Close<'_, Self>where
Self: Unpin,
fn close(&mut self) -> Close<'_, Self>where
Self: Unpin,
Creates a future which will entirely close this
AsyncWrite
.§fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
Creates a future which will write bytes from
buf
into the object. Read more§fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>],
) -> WriteVectored<'a, Self>where
Self: Unpin,
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>],
) -> WriteVectored<'a, Self>where
Self: Unpin,
Creates a future which will write bytes from
bufs
into the object using vectored
IO operations. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> PollReadyExt for T
impl<T> PollReadyExt for T
source§fn wait_ready(&mut self, events: PollEvents) -> Ready<'_, T> ⓘwhere
T: Unpin,
fn wait_ready(&mut self, events: PollEvents) -> Ready<'_, T> ⓘwhere
T: Unpin,
Waits for a socket or file to hang up.