1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
///
/// A glue between thiserror and anyhow libraries adding a functionality
/// similar to defining multiple #[from] tags.
///
/// Usage:
///
/// ```
/// use kopperdb::from_error;
///
/// #[derive(Debug, thiserror::Error)]
/// pub enum DuzyError {
/// #[error("General Error")]
/// GeneralError(anyhow::Error),
///
/// #[error("Specific Error")]
/// SpecificError
/// }
///
/// from_error!(DuzyError::GeneralError, std::io::Error, std::num::ParseIntError);
///
/// fn fallo() -> Result<u32, DuzyError> {
///
/// std::fs::read_to_string("bad_file")?; // io::std::Error
/// "a".parse::<u32>()?; // std::num::ParseIntError
/// Ok(Err(DuzyError::SpecificError)?) // DuzyError::GuwnianyError
///
/// // ...
/// }
/// ```
///