//!
//! - Anyhow works with any error type that has an impl of `std::error::Error`,
//! including ones defined in your crate. We do not bundle a `derive(Error)`
//! macro but you can write the impls yourself or use a standalone macro like
//! [err-derive].
//!
//! [err-derive]: https://crates.io/crates/err-derive
//!
//! ```
//! # const IGNORE: &str = stringify! {
//! #[derive(Error, Debug)]
//! pub enum FormatError {
//! #[error(display = "invalid header (expected {:?}, got {:?})", expected, found)]
//! InvalidHeader {
//! expected: String,
//! found: String,
//! },
//! #[error(display = "missing attribute: {}", _0)]
//! MissingAttribute(String),
//! }
//! # };
//! ```