summaryrefslogtreecommitdiffstats
path: root/tokio/src/time/error.rs
diff options
context:
space:
mode:
authorJuan Alvarez <j@yabit.io>2020-10-12 12:21:44 -0500
committerGitHub <noreply@github.com>2020-10-12 10:21:44 -0700
commit0893841f31542b2b04c5050a8a4a3c45cf867e55 (patch)
tree5ac53629380e882de37264221d79072100d170f5 /tokio/src/time/error.rs
parentec99e61945ae46edcb2ee3f282f49f661b63dcd0 (diff)
time: move error types into `time::error` (#2938)
Diffstat (limited to 'tokio/src/time/error.rs')
-rw-r--r--tokio/src/time/error.rs36
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()
+ }
+}