VSLQNAQBAGOJC2IV55V3W755UIPN47J4RTCCLCABRFFFUU5LT2JQC 32VE6LJUU6QHHAF5MRMDMSS75XMSDU4GF3FWE3XTTMRG2UINVKRQC BFXTSXY7ZZ4ZGKYJOODQKIE6P5J5ATUOTLQ56N5AA77OEWLLNFRQC RIKD63GT7RFV3UAV4BYD57GFXKXALWUP6J7AAHB3M6JVAZ3WFTXAC AOQSHDBY3FLBJBFEIJQDYHGQOBECTYRN3KPWJWQMCVWDTB6L2IRQC RQSDP2B2OVRFRJ33OZCVB4TYCQMSR3JZYG7FNA6TQ3HFABTGOGMQC CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC ZDN7BJ3JA3VL4AYWX3SV24GHP6NCAETJVAKAXKMIZTLHTWLUNMOQC UM7DFUYLW4HSMBUDZY3R6ZNJRSX2E75C4DYV3MJAU57EUCGE6JLAC HHQUHNVMK5HPDJJ53MBD4IE2TDC3BMQOARPHRQAOO43AWG2LNMOAC NPOFDGQF4CE72IZBT5Y7KPIBHWPPNOEPBYD5RTUHSVUJ2W4XFRVQC UR5XDZ3SS7QXSUFAYQDYUXX4QDROIYVXUH3Z24F6PAWJDNODAZYAC T64LKJ2RTUDFYSJQI7KF4WHZYXZHNEGNOS7ZMMCRIQZ4YN5LOOMAC BQU6MTEH6QEW5E2HX3F2AAZ54AHIVDVOEE7FTCQTPLO23U5ILFIQC 3LI5FAF5ULXOWBMTG4XCUOMUPVROSFDY6FWGE574OH4JGPMOPNVAC MCPTFJMN333Z2GVL5J2KPLR6BJ3TAZKUGFORXNZ4YZBRXVQLCMFQC /// The `Error` type, a wrapper around a dynamic error type.////// `Error` works a lot like `Box<dyn std::error::Error>`, but with these/// differences:////// - `Error` requires that the error is `Send`, `Sync`, and `'static`./// - `Error` guarantees that a backtrace is available, even if the underlying/// error type does not provide one./// - `Error` is represented as a narrow pointer — exactly one word in/// size instead of two.pub struct Error {inner: ManuallyDrop<Box<ErrorImpl<()>>>,}
}/// Iterator of a chain of source errors.////// This type is the iterator returned by [`Error::chain`].////// # Example////// ```/// use anyhow::Error;/// use std::io;////// pub fn underlying_io_error_kind(error: &Error) -> Option<io::ErrorKind> {/// for cause in error.chain() {/// if let Some(io_error) = cause.downcast_ref::<io::Error>() {/// return Some(io_error.kind());/// }/// }/// None/// }/// ```pub struct Chain<'a> {next: Option<&'a (dyn StdError + 'static)>,
pub use crate::error::{Chain, Error};
/// The `Error` type, a wrapper around a dynamic error type.////// `Error` works a lot like `Box<dyn std::error::Error>`, but with these/// differences:////// - `Error` requires that the error is `Send`, `Sync`, and `'static`./// - `Error` guarantees that a backtrace is available, even if the underlying/// error type does not provide one./// - `Error` is represented as a narrow pointer — exactly one word in/// size instead of two.pub struct Error {inner: ManuallyDrop<Box<ErrorImpl<()>>>,}/// Iterator of a chain of source errors.////// This type is the iterator returned by [`Error::chain`].////// # Example////// ```/// use anyhow::Error;/// use std::io;////// pub fn underlying_io_error_kind(error: &Error) -> Option<io::ErrorKind> {/// for cause in error.chain() {/// if let Some(io_error) = cause.downcast_ref::<io::Error>() {/// return Some(io_error.kind());/// }/// }/// None/// }/// ```pub struct Chain<'a> {next: Option<&'a (dyn StdError + 'static)>,}