Struct futures_util::io::AllowStdIo
source · [−]pub struct AllowStdIo<T>(_);
Expand description
A simple wrapper type which allows types which implement only
implement std::io::Read
or std::io::Write
to be used in contexts which expect an AsyncRead
or AsyncWrite
.
If these types issue an error with the kind io::ErrorKind::WouldBlock
,
it is expected that they will notify the current task on readiness.
Synchronous std
types should not issue errors of this kind and
are safe to use in this context. However, using these types with
AllowStdIo
will cause the event loop to block, so they should be used
with care.
Implementations
sourceimpl<T> AllowStdIo<T>
impl<T> AllowStdIo<T>
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consumes self and returns the contained IO object.
Trait Implementations
sourceimpl<T> AsyncBufRead for AllowStdIo<T> where
T: BufRead,
impl<T> AsyncBufRead for AllowStdIo<T> where
T: BufRead,
sourceimpl<T> AsyncRead for AllowStdIo<T> where
T: Read,
impl<T> AsyncRead for AllowStdIo<T> where
T: Read,
sourcefn poll_read(
self: Pin<&mut Self>,
_: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
fn poll_read(
self: Pin<&mut Self>,
_: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
Attempt to read from the AsyncRead
into buf
. Read more
sourcefn poll_read_vectored(
self: Pin<&mut Self>,
_: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize>>
fn poll_read_vectored(
self: Pin<&mut Self>,
_: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize>>
Attempt to read from the AsyncRead
into bufs
using vectored
IO operations. Read more
sourceimpl<T> AsyncSeek for AllowStdIo<T> where
T: Seek,
impl<T> AsyncSeek for AllowStdIo<T> where
T: Seek,
sourceimpl<T> AsyncWrite for AllowStdIo<T> where
T: Write,
impl<T> AsyncWrite for AllowStdIo<T> where
T: Write,
sourcefn poll_write(
self: Pin<&mut Self>,
_: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize>>
fn poll_write(
self: Pin<&mut Self>,
_: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize>>
Attempt to write bytes from buf
into the object. Read more
sourcefn poll_write_vectored(
self: Pin<&mut Self>,
_: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize>>
fn poll_write_vectored(
self: Pin<&mut Self>,
_: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize>>
Attempt to write bytes from bufs
into the object using vectored
IO operations. Read more
sourceimpl<T> BufRead for AllowStdIo<T> where
T: BufRead,
impl<T> BufRead for AllowStdIo<T> where
T: BufRead,
sourcefn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
sourcefn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
Tells this buffer that amt
bytes have been consumed from the buffer,
so they should no longer be returned in calls to read
. Read more
sourcefn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
buf_read_has_data_left
)Check if the underlying Read
has any data left to be read. Read more
1.0.0 · sourcefn read_until(
&mut self,
byte: u8,
buf: &mut Vec<u8, Global>
) -> Result<usize, Error>
fn read_until(
&mut self,
byte: u8,
buf: &mut Vec<u8, Global>
) -> Result<usize, Error>
Read all bytes into buf
until the delimiter byte
or EOF is reached. Read more
1.0.0 · sourcefn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until a newline (the 0xA
byte) is reached, and append
them to the provided buffer. You do not need to clear the buffer before
appending. Read more
sourceimpl<T: Clone> Clone for AllowStdIo<T>
impl<T: Clone> Clone for AllowStdIo<T>
sourcefn clone(&self) -> AllowStdIo<T>ⓘNotable traits for AllowStdIo<T>impl<T> Write for AllowStdIo<T> where
T: Write, impl<T> Read for AllowStdIo<T> where
T: Read,
fn clone(&self) -> AllowStdIo<T>ⓘNotable traits for AllowStdIo<T>impl<T> Write for AllowStdIo<T> where
T: Write, impl<T> Read for AllowStdIo<T> where
T: Read,
T: Write, impl<T> Read for AllowStdIo<T> where
T: Read,
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<T: Debug> Debug for AllowStdIo<T>
impl<T: Debug> Debug for AllowStdIo<T>
sourceimpl<T: Hash> Hash for AllowStdIo<T>
impl<T: Hash> Hash for AllowStdIo<T>
sourceimpl<T: Ord> Ord for AllowStdIo<T>
impl<T: Ord> Ord for AllowStdIo<T>
sourcefn cmp(&self, other: &AllowStdIo<T>) -> Ordering
fn cmp(&self, other: &AllowStdIo<T>) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl<T: PartialEq> PartialEq<AllowStdIo<T>> for AllowStdIo<T>
impl<T: PartialEq> PartialEq<AllowStdIo<T>> for AllowStdIo<T>
sourcefn eq(&self, other: &AllowStdIo<T>) -> bool
fn eq(&self, other: &AllowStdIo<T>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &AllowStdIo<T>) -> bool
fn ne(&self, other: &AllowStdIo<T>) -> bool
This method tests for !=
.
sourceimpl<T: PartialOrd> PartialOrd<AllowStdIo<T>> for AllowStdIo<T>
impl<T: PartialOrd> PartialOrd<AllowStdIo<T>> for AllowStdIo<T>
sourcefn partial_cmp(&self, other: &AllowStdIo<T>) -> Option<Ordering>
fn partial_cmp(&self, other: &AllowStdIo<T>) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl<T> Read for AllowStdIo<T> where
T: Read,
impl<T> Read for AllowStdIo<T> where
T: Read,
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
Like read
, except that it reads into a slice of buffers. Read more
sourcefn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
Read all bytes until EOF in this source, placing them into buf
. Read more
sourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
Read all bytes until EOF in this source, appending them to buf
. Read more
sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
Read the exact number of bytes required to fill buf
. Read more
sourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
sourcefn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Pull some bytes from this source into the specified buffer. Read more
sourcefn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Read the exact number of bytes required to fill buf
. Read more
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Creates a “by reference” adaptor for this instance of Read
. Read more
sourceimpl<T> Seek for AllowStdIo<T> where
T: Seek,
impl<T> Seek for AllowStdIo<T> where
T: Seek,
sourcefn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Seek to an offset, in bytes, in a stream. Read more
1.55.0 · sourcefn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Rewind to the beginning of a stream. Read more
sourceimpl<T> Write for AllowStdIo<T> where
T: Write,
impl<T> Write for AllowStdIo<T> where
T: Write,
sourcefn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>
fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>
sourcefn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
Writes a formatted string into this writer, returning any error encountered. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
impl<T: Copy> Copy for AllowStdIo<T>
impl<T: Eq> Eq for AllowStdIo<T>
impl<T> StructuralEq for AllowStdIo<T>
impl<T> StructuralPartialEq for AllowStdIo<T>
impl<T> Unpin for AllowStdIo<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for AllowStdIo<T> where
T: RefUnwindSafe,
impl<T> Send for AllowStdIo<T> where
T: Send,
impl<T> Sync for AllowStdIo<T> where
T: Sync,
impl<T> UnwindSafe for AllowStdIo<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<R> AsyncBufReadExt for R where
R: AsyncBufRead + ?Sized,
impl<R> AsyncBufReadExt for R where
R: AsyncBufRead + ?Sized,
sourcefn fill_buf(&mut self) -> FillBuf<'_, Self>ⓘNotable traits for FillBuf<'a, R>impl<'a, R> Future for FillBuf<'a, R> where
R: AsyncBufRead + ?Sized + Unpin, type Output = Result<&'a [u8]>;
where
Self: Unpin,
fn fill_buf(&mut self) -> FillBuf<'_, Self>ⓘNotable traits for FillBuf<'a, R>impl<'a, R> Future for FillBuf<'a, R> where
R: AsyncBufRead + ?Sized + Unpin, type Output = Result<&'a [u8]>;
where
Self: Unpin,
R: AsyncBufRead + ?Sized + Unpin, type Output = Result<&'a [u8]>;
Creates a future which will wait for a non-empty buffer to be available from this I/O object or EOF to be reached. Read more
sourcefn consume_unpin(&mut self, amt: usize) where
Self: Unpin,
fn consume_unpin(&mut self, amt: usize) where
Self: Unpin,
A convenience for calling AsyncBufRead::consume
on Unpin
IO types. Read more
sourcefn read_until<'a>(
&'a mut self,
byte: u8,
buf: &'a mut Vec<u8>
) -> ReadUntil<'a, Self>ⓘNotable traits for ReadUntil<'_, R>impl<R: AsyncBufRead + ?Sized + Unpin> Future for ReadUntil<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read_until<'a>(
&'a mut self,
byte: u8,
buf: &'a mut Vec<u8>
) -> ReadUntil<'a, Self>ⓘNotable traits for ReadUntil<'_, R>impl<R: AsyncBufRead + ?Sized + Unpin> Future for ReadUntil<'_, R> type Output = Result<usize>;
where
Self: Unpin,
Creates a future which will read all the bytes associated with this I/O
object into buf
until the delimiter byte
or EOF is reached.
This method is the async equivalent to BufRead::read_until
. Read more
sourcefn read_line<'a>(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>ⓘNotable traits for ReadLine<'_, R>impl<R: AsyncBufRead + ?Sized + Unpin> Future for ReadLine<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read_line<'a>(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>ⓘNotable traits for ReadLine<'_, R>impl<R: AsyncBufRead + ?Sized + Unpin> Future for ReadLine<'_, R> type Output = Result<usize>;
where
Self: Unpin,
Creates a future which will read all the bytes associated with this I/O
object into buf
until a newline (the 0xA byte) or EOF is reached,
This method is the async equivalent to BufRead::read_line
. Read more
sourceimpl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
sourcefn 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
sourcefn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>ⓘNotable traits for Read<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for Read<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>ⓘNotable traits for Read<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for Read<'_, R> type Output = Result<usize>;
where
Self: Unpin,
Tries to read some bytes directly into the given buf
in asynchronous
manner, returning a future type. Read more
sourcefn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadVectored<'_, R> type Output = Result<usize>;
where
Self: Unpin,
Creates a future which will read from the AsyncRead
into bufs
using vectored
IO operations. Read more
sourcefn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>ⓘNotable traits for ReadExact<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadExact<'_, R> type Output = Result<()>;
where
Self: Unpin,
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>ⓘNotable traits for ReadExact<'_, R>impl<R: AsyncRead + ?Sized + Unpin> Future for ReadExact<'_, R> type Output = Result<()>;
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
sourcefn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>ⓘNotable traits for ReadToEnd<'_, A>impl<A> Future for ReadToEnd<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>ⓘNotable traits for ReadToEnd<'_, A>impl<A> Future for ReadToEnd<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
Creates a future which will read all the bytes from this AsyncRead
. Read more
sourcefn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String
) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>impl<A> Future for ReadToString<'_, A> where
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
where
Self: Unpin,
A: AsyncRead + ?Sized + Unpin, type Output = Result<usize>;
Creates a future which will read all the bytes from this AsyncRead
. Read more
sourceimpl<S> AsyncSeekExt for S where
S: AsyncSeek + ?Sized,
impl<S> AsyncSeekExt for S where
S: AsyncSeek + ?Sized,
sourcefn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>ⓘNotable traits for Seek<'_, S>impl<S: AsyncSeek + ?Sized + Unpin> Future for Seek<'_, S> type Output = Result<u64>;
where
Self: Unpin,
fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>ⓘNotable traits for Seek<'_, S>impl<S: AsyncSeek + ?Sized + Unpin> Future for Seek<'_, S> type Output = Result<u64>;
where
Self: Unpin,
Creates a future which will seek an IO object, and then yield the new position in the object and the object itself. Read more
sourceimpl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
sourcefn flush(&mut self) -> Flush<'_, Self>ⓘNotable traits for Flush<'_, W>impl<W> Future for Flush<'_, W> where
W: AsyncWrite + ?Sized + Unpin, type Output = Result<()>;
where
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self>ⓘNotable traits for Flush<'_, W>impl<W> Future for Flush<'_, W> where
W: AsyncWrite + ?Sized + Unpin, type Output = Result<()>;
where
Self: Unpin,
W: AsyncWrite + ?Sized + Unpin, type Output = Result<()>;
Creates a future which will entirely flush this AsyncWrite
. Read more
sourcefn close(&mut self) -> Close<'_, Self>ⓘNotable traits for Close<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for Close<'_, W> type Output = Result<()>;
where
Self: Unpin,
fn close(&mut self) -> Close<'_, Self>ⓘNotable traits for Close<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for Close<'_, W> type Output = Result<()>;
where
Self: Unpin,
Creates a future which will entirely close this AsyncWrite
.
sourcefn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>ⓘNotable traits for Write<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for Write<'_, W> type Output = Result<usize>;
where
Self: Unpin,
fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>ⓘNotable traits for Write<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for Write<'_, W> type Output = Result<usize>;
where
Self: Unpin,
Creates a future which will write bytes from buf
into the object. Read more
sourcefn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>impl<W: AsyncWrite + ?Sized + Unpin> Future for WriteVectored<'_, W> type Output = Result<usize>;
where
Self: Unpin,
Creates a future which will write bytes from bufs
into the object using vectored
IO operations. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more