7WGNUDSYDVWLON2ZGOWOEAFITUZGIWOYDPH24CTPT3LOPNYCW56QC
6ZEY2NWHKGME25ZSTH6OYNG75JIOJECLVGY3KF4FIWSQBAVFRDAQC
RQSDP2B2OVRFRJ33OZCVB4TYCQMSR3JZYG7FNA6TQ3HFABTGOGMQC
CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC
FI5C6CUHWX54GBVTIVMOO2E6KS4SMKMAZJULXGGVNST5QFZFHSMAC
6XBYIKVZHCOUS5XT2T3RQPCFG7SB6V33RLSKZFXTQMPINY5BMTTQC
GMOFRJTUHSZVX2U7Z7PVQDY45MQJQ7LTUIHCKHTCJJX2P6UH76ZAC
GOPJFSDQLXOY7EGBNR26HON32UIMSC3IAWZZL57A277CMX2D4OOAC
RF4MODRCRWKMUG26O222X3ZY3MLE6X7BYZDWEQRLVUITTWYAGNUAC
3ZZ75E2AOF7DO3TMR422QV7ZXNYOQZTOGF67LVSCEMX6N75Y36LAC
OXKWHQFHTDDOWX3QDMHDWHCT3HFKWQS7Z7DEL3ILJBA7GNITA4GAC
HO72KYBN3DYN6EC2RQUW4YP3CFBSY4X3ULYLFA2HQ36S5QGTGKIQC
LNM226ITXRMWOSX6GOJ4HO72BWFRBDKQTEZMF4QUJUACUIOKIEJQC
/// For attaching context to a `Result` as it is propagated, the
/// [`WrapErr`][crate::WrapErr] extension trait may be more convenient than
/// this function.
/// For attaching a higher level error message to a `Result` as it is propagated, the
/// [`WrapErr`][crate::WrapErr] extension trait may be more convenient than this function.
/// The primary reason to use `error.context(...)` instead of
/// `result.context(...)` via the `WrapErr` trait would be if the context
/// needs to depend on some data held by the underlying error:
/// The primary reason to use `error.wrap_err(...)` instead of `result.wrap_err(...)` via the
/// `WrapErr` trait would be if the message needs to depend on some data held by the underlying
/// error:
/// For errors with context, this method returns true if `E` matches the
/// type of the context `D` **or** the type of the error on which the
/// context has been attached. For details about the interaction between
/// context and downcasting, [see here].
/// For errors constructed from messages, this method returns true if `E` matches the type of
/// the message `D` **or** the type of the error on which the message has been attached. For
/// details about the interaction between message and downcasting, [see here].
//! - Attach context to help the person troubleshooting the error understand
//! where things went wrong. A low-level error like "No such file or
//! directory" can be annoying to debug without more context about what higher
//! level step the application was in the middle of.
//! - Create new errors from messages to help the person troubleshooting the error understand where
//! things went wrong. A low-level error like "No such file or directory" can be annoying to
//! directly and often benefit from being wrapped with higher level error messages.
/// When you print an error object using "{}" or to_string(), only the outermost
/// underlying error or context is printed, not any of the lower level causes.
/// This is exactly as if you had called the Display impl of the error from
/// which you constructed your eyre::ErrReport.
/// When you print an error object using "{}" or to_string(), only the outermost underlying error
/// is printed, not any of the lower level causes. This is exactly as if you had called the Display
/// impl of the error from which you constructed your eyre::ErrReport.