summaryrefslogtreecommitdiffstats
path: root/src/fail.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-03-22 22:49:34 +0100
committerrabite <rabite@posteo.de>2019-03-22 22:53:54 +0100
commitfd366a26dcddfc50d54ec0481a8f6e4848356b32 (patch)
treee1f72f7c8859c71989da6036b3ffe04972e7f818 /src/fail.rs
parentbb917a0dad8922c3a629450aba1e7da905e36c1a (diff)
async stuff much improved
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)))
+ }
}