Rollup merge of #42347 - frewsxcv:frewsxcv/improve-receiver-recv-timeout-docs, r=QuietMisdreavus

Rewrite doc examples for `Receiver::recv_timeout`.

None
This commit is contained in:
Corey Farwell 2017-06-01 00:09:27 -04:00 committed by GitHub
commit 9bd6dc73fc
1 changed files with 33 additions and 4 deletions

View File

@ -1252,14 +1252,43 @@ impl<T> Receiver<T> {
///
/// # Examples
///
/// Successfully receiving value before encountering timeout:
///
/// ```no_run
/// use std::sync::mpsc::{self, RecvTimeoutError};
/// use std::thread;
/// use std::time::Duration;
/// use std::sync::mpsc;
///
/// let (send, recv) = mpsc::channel::<()>();
/// let (send, recv) = mpsc::channel();
///
/// let timeout = Duration::from_millis(100);
/// assert_eq!(Err(RecvTimeoutError::Timeout), recv.recv_timeout(timeout));
/// thread::spawn(move || {
/// send.send('a').unwrap();
/// });
///
/// assert_eq!(
/// recv.recv_timeout(Duration::from_millis(400)),
/// Ok('a')
/// );
/// ```
///
/// Receiving an error upon reaching timeout:
///
/// ```no_run
/// use std::thread;
/// use std::time::Duration;
/// use std::sync::mpsc;
///
/// let (send, recv) = mpsc::channel();
///
/// thread::spawn(move || {
/// thread::sleep(Duration::from_millis(800));
/// send.send('a').unwrap();
/// });
///
/// assert_eq!(
/// recv.recv_timeout(Duration::from_millis(400)),
/// Err(mpsc::RecvTimeoutError::Timeout)
/// );
/// ```
#[stable(feature = "mpsc_recv_timeout", since = "1.12.0")]
pub fn recv_timeout(&self, timeout: Duration) -> Result<T, RecvTimeoutError> {