summaryrefslogtreecommitdiffstats
path: root/src/fail.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fail.rs')
-rw-r--r--src/fail.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/fail.rs b/src/fail.rs
index a6f8abe..2c01885 100644
--- a/src/fail.rs
+++ b/src/fail.rs
@@ -45,13 +45,27 @@ pub enum HError {
#[fail(display = "No header for widget")]
NoHeaderError,
#[fail(display = "You wanted this!")]
- Quit
+ Quit,
+ #[fail(display = "HBox ratio mismatch: {} widgets, ratio is {:?}", wnum, ratio)]
+ HBoxWrongRatioError{ wnum: usize, ratio: Vec<usize> },
+ #[fail(display = "Got wrong widget: {}! Wanted: {}", got, wanted)]
+ WrongWidgetError{got: String, wanted: String},
}
impl HError {
pub fn quit() -> HResult<()> {
Err(HError::Quit)
}
+ pub fn wrong_ratio<T>(wnum: usize, ratio: Vec<usize>) -> HResult<T> {
+ Err(HError::HBoxWrongRatioError{ wnum: wnum, ratio: ratio })
+ }
+ pub fn no_widget<T>() -> HResult<T> {
+ Err(HError::NoWidgetError(Backtrace::new()))
+ }
+ pub fn wrong_widget<T>(got: &str, wanted: &str) -> HResult<T> {
+ Err(HError::WrongWidgetError{ got: got.to_string(),
+ wanted: wanted.to_string()})
+ }
}
pub trait ErrorLog where Self: Sized {