[][src]Struct timeout_readwrite::reader::TimeoutReader

pub struct TimeoutReader<H> where
    H: Read + AsRawFd
{ /* fields omitted */ }

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.

Methods

impl<H> TimeoutReader<H> where
    H: Read + AsRawFd
[src]

Important traits for TimeoutReader<H>
pub fn new<T: Into<Option<Duration>>>(handle: H, timeout: T) -> TimeoutReader<H>[src]

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

impl<H> AsRawFd for TimeoutReader<H> where
    H: Read + AsRawFd
[src]

impl<H> Clone for TimeoutReader<H> where
    H: Read + AsRawFd + Clone
[src]

impl<H> Read for TimeoutReader<H> where
    H: Read + AsRawFd
[src]

impl<H> Seek for TimeoutReader<H> where
    H: Read + AsRawFd + Seek
[src]

Auto Trait Implementations

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<H> TimeoutReadExt<H> for H where
    H: Read + AsRawFd
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.