|  | pub use crate::sync::mpsc::{RecvError, RecvTimeoutError, SendError, TryRecvError, TrySendError}; | 
|  | use crate::{error, fmt}; | 
|  |  | 
|  | /// An error returned from the [`send_timeout`] method. | 
|  | /// | 
|  | /// The error contains the message being sent so it can be recovered. | 
|  | /// | 
|  | /// [`send_timeout`]: super::Sender::send_timeout | 
|  | #[derive(PartialEq, Eq, Clone, Copy)] | 
|  | #[unstable(feature = "mpmc_channel", issue = "126840")] | 
|  | pub enum SendTimeoutError<T> { | 
|  | /// The message could not be sent because the channel is full and the operation timed out. | 
|  | /// | 
|  | /// If this is a zero-capacity channel, then the error indicates that there was no receiver | 
|  | /// available to receive the message and the operation timed out. | 
|  | Timeout(T), | 
|  |  | 
|  | /// The message could not be sent because the channel is disconnected. | 
|  | Disconnected(T), | 
|  | } | 
|  |  | 
|  | #[unstable(feature = "mpmc_channel", issue = "126840")] | 
|  | impl<T> fmt::Debug for SendTimeoutError<T> { | 
|  | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | 
|  | "SendTimeoutError(..)".fmt(f) | 
|  | } | 
|  | } | 
|  |  | 
|  | #[unstable(feature = "mpmc_channel", issue = "126840")] | 
|  | impl<T> fmt::Display for SendTimeoutError<T> { | 
|  | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | 
|  | match *self { | 
|  | SendTimeoutError::Timeout(..) => "timed out waiting on send operation".fmt(f), | 
|  | SendTimeoutError::Disconnected(..) => "sending on a disconnected channel".fmt(f), | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | #[unstable(feature = "mpmc_channel", issue = "126840")] | 
|  | impl<T> error::Error for SendTimeoutError<T> {} | 
|  |  | 
|  | #[unstable(feature = "mpmc_channel", issue = "126840")] | 
|  | impl<T> From<SendError<T>> for SendTimeoutError<T> { | 
|  | fn from(err: SendError<T>) -> SendTimeoutError<T> { | 
|  | match err { | 
|  | SendError(e) => SendTimeoutError::Disconnected(e), | 
|  | } | 
|  | } | 
|  | } |