//! # Error handling pub use anyhow::{bail, ensure, format_err, Error, Result}; // #[fail(display = "Invalid Message ID.")] // InvalidMsgId, // #[fail(display = "Watch folder not found {:?}", _0)] // WatchFolderNotFound(String), // #[fail(display = "Not Configured")] // NotConfigured, #[macro_export] macro_rules! ensure_eq { ($left:expr, $right:expr) => ({ match (&$left, &$right) { (left_val, right_val) => { if !(*left_val == *right_val) { bail!(r#"assertion failed: `(left == right)` left: `{:?}`, right: `{:?}`"#, left_val, right_val) } } } }); ($left:expr, $right:expr,) => ({ ensure_eq!($left, $right) }); ($left:expr, $right:expr, $($arg:tt)+) => ({ match (&($left), &($right)) { (left_val, right_val) => { if !(*left_val == *right_val) { bail!(r#"assertion failed: `(left == right)` left: `{:?}`, right: `{:?}`: {}"#, left_val, right_val, format_args!($($arg)+)) } } } }); }