TXHTORSMXMKDSGFNFIKQZYIY3KBDKJF2DJPA55NW4R6ZYBCQKRVQC LZI6VQ7KGB7PBTKDYY37LAZHJK67VBKIGNDRO7DLUEQXKVC5MWRQC N7U2FHPRHGARPZ6M7LYBDJ52NMYE23VD5YALZ7CC76W3V5OLBP7QC KVTZ5BUW7V7RZ3STMQXF6LXVLMGRXDBEOPRBTHX2O4HELTQ2467QC LNM226ITXRMWOSX6GOJ4HO72BWFRBDKQTEZMF4QUJUACUIOKIEJQC EKYR4HDT6DHI7H5YMSHEBHXLPDCA2X2XNXYHDKHWGMPHNVTUBCMQC GFUITBG5JGUCDMG34FEMPPJAZGQKURXA5L2RYS6YOQC4DIQGASMAC 77T3TBBG5VN2Q4AUXHQVZTIFOSXDGTHW72J4MLX4P7LMYQURYZJAC GYNLSVK3MDYAOAKNOUXTC27IRIDEOUVSOEEG5LZ2PS3T4DEL6DQAC YTH3GCSKUG34XBAAVP65UA67C26K2JDDL2N6PGYLKL2GG3MGFU6AC OQCFKTKCBTWGXL27ZLWQSL4L5VPREJAYN7MVCCR4GXW6WLWYOUHAC YWW5TKMSPEGRZ52FQZ3SC4C3DEZ57U5XUO4LHZC34BJA7QR5NSCQC FJ7MWHMLIDTBGJJNKCNS5GIBQIJBUQRXLQEAFOCVZI7O4NA4XGSAC GPASF452R6CFMY6PRIRQ4AGZTCYCLD33Q7CCWSDCK4N2LSHI4UZQC KB6THMJJPQ56OLYYODIM5IVEF3IAPCAEC2HGH3C7LAEF24IW6XQQC 3YMIGCYC3YUOZP5OBNSTOIJOT6ZTEDDKNMR5YCAJRD5JNBYFETYAC CITEDKPB6MKVZUEYEDE5ZKTNVY35HCOAXKDPYG7YLLEOVFNMSRXQC X4XC4Q2MJC6Q45SOWNGIG2PWZFE4AG5E3M5ZW3OGV6ABUVC2XNGQC NVJJABMFM5CUP7M2BAPEIZIVK5IV7OGL7ERK237RR33I2ABFXUUQC A2YH3UCN3AEAXWW7IHTJBBQY4XRBSV2TBOX3N47ZZGKE6L7P7L5AC test:
test-features:name: Test Suiteruns-on: ubuntu-lateststeps:- uses: actions/checkout@v1- uses: actions-rs/toolchain@v1with:toolchain: stableoverride: true- uses: actions-rs/cargo@v1with:command: test- uses: actions-rs/cargo@v1with:command: testargs: --all-featurestest-versions:
# - uses: actions-rs/cargo@v1# with:# command: test# args: --no-default-features
test-os:name: Test Suiteruns-on: ${{ matrix.os }}strategy:matrix:os: [ubuntu-latest, windows-latest, macOS-latest]steps:- uses: actions/checkout@v1- uses: actions-rs/toolchain@v1with:toolchain: stableprofile: minimaloverride: true- uses: actions-rs/cargo@v1with:command: test
[`eyre::EyreContext`]. For an example on how to implement a custom contextcheck out [`stable-eyre`] which implements a minimal custom context forcapturing backtraces on stable.
[`eyre::EyreContext`].## Custom ContextsThe heart of this crate is it's ability to swap out the Context type to changewhat information is carried alongside errors and how the end report isformatted. This crate is meant to be used alongside companion crates thatcustomize its behavior. Below is a list of known custom context crates andshort summaries of what features they provide.- [`stable-eyre`]: Switches the backtrace type from `std`'s to `backtrace-rs`'sso that it can be captured on stable. The report format is identical to`DefaultContext`'s report format.- [`color-eyre`]: Captures a `backtrace::Backtrace` and a`tracing_error::SpanTrace`. Provides a `Help` trait for attaching warningsand suggestions to error reports. The end report is then pretty printed withthe help of [`color-backtrace`], [`color-spantrace`], and `ansi_term`. Checkout the README on [`color-eyre`] for screenshots of the report format.- [`simple-eyre`]: A minimal `EyreContext` that captures no additionalinformation, for when you do not wish to capture `Backtrace`s with errors.- [`jane-eyre`]: A custom context type that exists purely for the pun.Currently just re-exports `color-eyre`.
[`stable-eyre`]: https://docs.rs/stable-eyre
[`stable-eyre`]: https://github.com/yaahc/stable-eyre[`color-eyre`]: https://github.com/yaahc/color-eyre[`jane-eyre`]: https://github.com/yaahc/jane-eyre[`simple-eyre`]: https://github.com/yaahc/simple-eyre[`color-spantrace`]: https://github.com/yaahc/color-spantrace[`color-backtrace`]: https://github.com/athre0z/color-backtrace
//! This crate is a fork of [`anyhow`] by @dtolnay with a support for customized `Reports`. For//! more details on customization checkout the docs on [`eyre::EyreContext`]. For an example on how//! to implement a custom context check out [`stable-eyre`] which implements a minimal custom//! context for capturing backtraces on stable.
//! This crate is a fork of [`anyhow`] by @dtolnay with a support for customized//! `Reports`. For more details on customization checkout the docs on//! [`eyre::EyreContext`].
//!//! ## Custom Contexts//!//! The heart of this crate is it's ability to swap out the Context type to change//! what information is carried alongside errors and how the end report is//! formatted. This crate is meant to be used alongside companion crates that//! customize its behavior. Below is a list of known custom context crates and//! short summaries of what features they provide.//!//! - [`stable-eyre`]: Switches the backtrace type from `std`'s to `backtrace-rs`'s//! so that it can be captured on stable. The report format is identical to//! `DefaultContext`'s report format.//! - [`color-eyre`]: Captures a `backtrace::Backtrace` and a//! `tracing_error::SpanTrace`. Provides a `Help` trait for attaching warnings//! and suggestions to error reports. The end report is then pretty printed with//! the help of [`color-backtrace`], [`color-spantrace`], and `ansi_term`. Check//! out the README on [`color-eyre`] for screenshots of the report format.//! - [`simple-eyre`]: A minimal `EyreContext` that captures no additional//! information, for when you do not wish to capture `Backtrace`s with errors.//! - [`jane-eyre`]: A custom context type that exists purely for the pun.//! Currently just re-exports `color-eyre`.//!
//! [`stable_eyre`]: https://docs.rs/stable-eyre#![doc(html_root_url = "https://docs.rs/eyre/0.4.1")]
//! [`stable-eyre`]: https://github.com/yaahc/stable-eyre//! [`color-eyre`]: https://github.com/yaahc/color-eyre//! [`jane-eyre`]: https://github.com/yaahc/jane-eyre//! [`simple-eyre`]: https://github.com/yaahc/simple-eyre//! [`color-spantrace`]: https://github.com/yaahc/color-spantrace//! [`color-backtrace`]: https://github.com/athre0z/color-backtrace#![doc(html_root_url = "https://docs.rs/eyre/0.4.2")]
#[test]fn test_boxed_sources() {let error = MyError {source: io::Error::new(io::ErrorKind::Other, "oh no!"),};let error = Box::<dyn StdError + Send + Sync>::from(error);let error: Report = eyre!(error).wrap_err("it failed");assert_eq!("it failed", error.to_string());assert_eq!("outer", error.source().unwrap().to_string());assert_eq!("oh no!",error.source().unwrap().source().unwrap().to_string());}