mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
- failure is deprecated - thiserror for deriving Error impl - anyhow for highlevel error handling
41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
//! # 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)+))
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|