black_bagg/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4#[allow(dead_code)]
5pub enum Error {
6    #[error(transparent)]
7    Anyhow(#[from] anyhow::Error),
8
9    #[error("I/O error: {0}")]
10    Io(#[from] std::io::Error),
11
12    #[error("serialization error: {0}")]
13    Serde(&'static str),
14
15    #[error("invalid input: {0}")]
16    Invalid(&'static str),
17
18    #[error("{0}")]
19    Message(String),
20
21    #[error(transparent)]
22    Csv(#[from] csv::Error),
23
24    #[error(transparent)]
25    Persist(#[from] tempfile::PersistError),
26
27    #[error(transparent)]
28    Hex(#[from] hex::FromHexError),
29
30    #[error(transparent)]
31    SystemTime(#[from] std::time::SystemTimeError),
32
33    #[error(transparent)]
34    FromUtf8(#[from] std::string::FromUtf8Error),
35}
36
37#[allow(dead_code)]
38pub type Result<T> = std::result::Result<T, Error>;
39
40#[macro_export]
41macro_rules! bail {
42    ($($arg:tt)*) => { return Err($crate::error::Error::Message(format!($($arg)*))) };
43}