pub struct TimeoutReader<H>{ /* private fields */ }
Expand description
The TimeoutReader
struct adds read timeouts to any reader.
The read
call on a Read
instance will block forever until data is available.
A TimeoutReader
will wait until data is available, up until an optional timeout,
before actually performing the read
operation.
If any Read
operation times out, the method called will return
an io::ErrorKind::TimedOut
variant as the value of io::Error
. All other
error values that would normally be produced by the underlying implementation
of the Read
trait could also be produced by the TimeoutReader
.
Implementations§
Source§impl<H> TimeoutReader<H>
impl<H> TimeoutReader<H>
Sourcepub fn new<T: Into<Option<Duration>>>(handle: H, timeout: T) -> TimeoutReader<H> ⓘ
pub fn new<T: Into<Option<Duration>>>(handle: H, timeout: T) -> TimeoutReader<H> ⓘ
Create a new TimeoutReader
with an optional timeout.
§Examples
This first example creates the TimeoutReader
with a 5-second timeout.
use timeout_readwrite::TimeoutReader;
use std::fs::File;
use std::time::Duration;
let mut f = File::open("file.txt")?;
let mut rdr = TimeoutReader::new(f, Duration::new(5, 0));
This example creates the TimeoutReader
without a timeout at all.
use timeout_readwrite::TimeoutReader;
use std::fs::File;
use std::time::Duration;
let mut f = File::open("file.txt")?;
let mut rdr = TimeoutReader::new(f, None);
Trait Implementations§
Source§impl<H> AsFd for TimeoutReader<H>
impl<H> AsFd for TimeoutReader<H>
Source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
Source§impl<H> Clone for TimeoutReader<H>
impl<H> Clone for TimeoutReader<H>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<H> Read for TimeoutReader<H>
impl<H> Read for TimeoutReader<H>
Source§fn 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
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreSource§impl<H> Seek for TimeoutReader<H>
impl<H> Seek for TimeoutReader<H>
Source§fn 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 · Source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Rewind to the beginning of a stream. Read more
Source§fn stream_len(&mut self) -> Result<u64, Error>
fn stream_len(&mut self) -> Result<u64, Error>
🔬This is a nightly-only experimental API. (
seek_stream_len
)Returns the length of this stream (in bytes). Read more
Auto Trait Implementations§
impl<H> Freeze for TimeoutReader<H>where
H: Freeze,
impl<H> RefUnwindSafe for TimeoutReader<H>where
H: RefUnwindSafe,
impl<H> Send for TimeoutReader<H>where
H: Send,
impl<H> Sync for TimeoutReader<H>where
H: Sync,
impl<H> Unpin for TimeoutReader<H>where
H: Unpin,
impl<H> UnwindSafe for TimeoutReader<H>where
H: UnwindSafe,
Blanket Implementations§
Source§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