Implement Error for a few error types (#511)

This commit is contained in:
Stjepan Glavina
2018-08-07 19:45:58 -07:00
committed by Carl Lerche
parent 4153cc4076
commit 6b1e4ab0a3
4 changed files with 46 additions and 3 deletions
+14 -1
View File
@@ -1,5 +1,6 @@
use std::prelude::v1::*;
use std::cell::Cell;
use std::error::Error;
use std::fmt;
#[cfg(feature = "unstable-futures")]
@@ -27,11 +28,23 @@ pub struct EnterError {
impl fmt::Debug for EnterError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("EnterError")
.field("reason", &"attempted to run an executor while another executor is already running")
.field("reason", &self.description())
.finish()
}
}
impl fmt::Display for EnterError {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(fmt, "{}", self.description())
}
}
impl Error for EnterError {
fn description(&self) -> &str {
"attempted to run an executor while another executor is already running"
}
}
/// Marks the current thread as being within the dynamic extent of an
/// executor.
///
+15
View File
@@ -52,6 +52,9 @@ pub use global::spawn2;
use futures::Future;
use std::error::Error;
use std::fmt;
/// A value that executes futures.
///
/// The [`spawn`] function is used to submit a future to an executor. Once
@@ -238,3 +241,15 @@ impl SpawnError {
!self.is_shutdown
}
}
impl fmt::Display for SpawnError {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(fmt, "{}", self.description())
}
}
impl Error for SpawnError {
fn description(&self) -> &str {
"attempted to spawn task while the executor is at capacity or shut down"
}
}