diff options
author | Juan Alvarez <j@yabit.io> | 2020-10-12 12:21:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-12 10:21:44 -0700 |
commit | 0893841f31542b2b04c5050a8a4a3c45cf867e55 (patch) | |
tree | 5ac53629380e882de37264221d79072100d170f5 /tokio/src/time/error.rs | |
parent | ec99e61945ae46edcb2ee3f282f49f661b63dcd0 (diff) |
time: move error types into `time::error` (#2938)
Diffstat (limited to 'tokio/src/time/error.rs')
-rw-r--r-- | tokio/src/time/error.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tokio/src/time/error.rs b/tokio/src/time/error.rs index 7154a330..24395c47 100644 --- a/tokio/src/time/error.rs +++ b/tokio/src/time/error.rs @@ -1,3 +1,5 @@ +//! Time error types. + use self::Kind::*; use std::error; use std::fmt; @@ -32,6 +34,18 @@ enum Kind { Invalid = 3, } +/// Error returned by `Timeout`. +#[derive(Debug, PartialEq)] +pub struct Elapsed(()); + +#[derive(Debug)] +pub(crate) enum InsertError { + Elapsed, + Invalid, +} + +// ===== impl Error ===== + impl Error { /// Creates an error representing a shutdown timer. pub fn shutdown() -> Error { @@ -90,3 +104,25 @@ impl fmt::Display for Error { write!(fmt, "{}", descr) } } + +// ===== impl Elapsed ===== + +impl Elapsed { + pub(crate) fn new() -> Self { + Elapsed(()) + } +} + +impl fmt::Display for Elapsed { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + "deadline has elapsed".fmt(fmt) + } +} + +impl std::error::Error for Elapsed {} + +impl From<Elapsed> for std::io::Error { + fn from(_err: Elapsed) -> std::io::Error { + std::io::ErrorKind::TimedOut.into() + } +} |