[−][src]Struct futures_lite::io::BlockOn
Blocks on all async I/O operations and implements std::io traits.
Sometimes async I/O needs to be used in a blocking manner. If calling future::block_on()
manually all the time becomes too tedious, use this type for more convenient blocking on async
I/O operations.
This type implements traits Read, Write, or
Seek if the inner type implements AsyncRead, AsyncWrite, or
AsyncSeek, respectively.
If writing data through the Write trait, make sure to flush before
dropping the BlockOn handle or some buffered data might get lost.
Examples
use futures_lite::*; use std::io::Read; let reader: &[u8] = b"hello"; pin!(reader); let mut blocking_reader = io::BlockOn::new(reader); let mut contents = String::new(); // This line blocks - note that there is no await: blocking_reader.read_to_string(&mut contents)?;
Implementations
impl<T> BlockOn<T>[src]
pub fn new(io: T) -> BlockOn<T>ⓘ[src]
Wraps an async I/O handle into a blocking interface.
Examples
use futures_lite::*; let reader: &[u8] = b"hello"; pin!(reader); let blocking_reader = io::BlockOn::new(reader);
pub fn get_ref(&self) -> &T[src]
Gets a reference to the async I/O handle.
Examples
use futures_lite::*; let reader: &[u8] = b"hello"; pin!(reader); let blocking_reader = io::BlockOn::new(reader); let r = blocking_reader.get_ref();
pub fn get_mut(&mut self) -> &mut T[src]
Gets a mutable reference to the async I/O handle.
Examples
use futures_lite::*; let reader: &[u8] = b"hello"; pin!(reader); let mut blocking_reader = io::BlockOn::new(reader); let r = blocking_reader.get_mut();
pub fn into_inner(self) -> T[src]
Extracts the inner async I/O handle.
Examples
use futures_lite::*; let reader: &[u8] = b"hello"; pin!(reader); let blocking_reader = io::BlockOn::new(reader); let inner = blocking_reader.into_inner();
Trait Implementations
impl<T: Debug> Debug for BlockOn<T>[src]
impl<T: AsyncRead + Unpin> Read for BlockOn<T>[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut]) -> Result<usize, Error>1.36.0[src]
fn is_read_vectored(&self) -> bool[src]
unsafe fn initializer(&self) -> Initializer[src]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>1.0.0[src]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>1.0.0[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>1.6.0[src]
fn by_ref(&mut self) -> &mut Self1.0.0[src]
fn bytes(self) -> Bytes<Self>1.0.0[src]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read, 1.0.0[src]
R: Read,
fn take(self, limit: u64) -> Take<Self>1.0.0[src]
impl<T: AsyncSeek + Unpin> Seek for BlockOn<T>[src]
fn seek(&mut self, pos: SeekFrom) -> Result<u64>[src]
fn stream_len(&mut self) -> Result<u64, Error>[src]
fn stream_position(&mut self) -> Result<u64, Error>[src]
impl<T: AsyncWrite + Unpin> Write for BlockOn<T>[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>[src]
fn flush(&mut self) -> Result<()>[src]
fn write_vectored(&mut self, bufs: &[IoSlice]) -> Result<usize, Error>1.36.0[src]
fn is_write_vectored(&self) -> bool[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>1.0.0[src]
fn write_all_vectored(&mut self, bufs: &mut [IoSlice]) -> Result<(), Error>[src]
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>1.0.0[src]
fn by_ref(&mut self) -> &mut Self1.0.0[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for BlockOn<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for BlockOn<T> where
T: Send,
T: Send,
impl<T> Sync for BlockOn<T> where
T: Sync,
T: Sync,
impl<T> Unpin for BlockOn<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for BlockOn<T> where
T: UnwindSafe,
T: UnwindSafe,
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,
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.
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>,