#[derive(Error)]
{
// Attributes available to this derive:
#[error]
}
Expand description
The implementation of trait ‘Error’ (writed for crate add_macro)
§Examples:
use add_macro_impl_error::Error;
#[derive(Debug, Error)]
enum CustomError {
Io(std::io::Error),
Wrong,
}
impl std::fmt::Display for CustomError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match &self {
Self::Io(e) => write!(f, "{e}"),
Self::Wrong => write!(f, "Something went wrong.. =/"),
}
}
}
#[derive(Debug, Error)]
pub struct Error {
source: CustomError,
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", &self.source)
}
}
fn main() {
let err = CustomError::Wrong;
assert_eq!(format!("{err}"), "Something went wrong.. =/");
let err = Error { source: CustomError::Wrong };
assert_eq!(format!("{err}"), "Something went wrong.. =/");
}