summaryrefslogtreecommitdiffstats
path: root/src/fail.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fail.rs')
-rw-r--r--src/fail.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/fail.rs b/src/fail.rs
index 6cf4afe..039002a 100644
--- a/src/fail.rs
+++ b/src/fail.rs
@@ -37,6 +37,12 @@ pub enum HError {
NoneError(Backtrace),
#[fail(display = "Not ready yet!")]
WillBeNotReady(Backtrace),
+ #[fail(display = "Not ready yet!")]
+ AsyncNotReadyError(Backtrace),
+ #[fail(display = "Value has already been taken!")]
+ AsyncAlreadyTakenError(Backtrace),
+ #[fail(display = "Async Error: {}", _0)]
+ AsyncError(String),
#[fail(display = "No widget found")]
NoWidgetError(Backtrace),
#[fail(display = "Path: {:?} not in this directory: {:?}", path, dir)]
@@ -72,7 +78,7 @@ pub enum HError {
#[fail(display = "Terminal has been resized!")]
TerminalResizedError,
#[fail(display = "{}", _0)]
- Log(String)
+ Log(String),
}
impl HError {
@@ -126,6 +132,18 @@ impl HError {
pub fn stale<T>() -> HResult<T> {
Err(HError::StaleError(Backtrace::new()))
}
+
+ pub fn async_not_ready<T>() -> HResult<T> {
+ Err(HError::AsyncNotReadyError(Backtrace::new()))
+ }
+
+ pub fn async_taken<T>() -> HResult<T> {
+ Err(HError::AsyncAlreadyTakenError(Backtrace::new()))
+ }
+
+ pub fn async_error<T>(error: &HError) -> HResult<T> {
+ Err(HError::AsyncError(format!("{}", error)))
+ }
}