mirror of
https://github.com/eyre-rs/eyre.git
synced 2025-09-30 22:42:02 +00:00
Make doc tests compilable
This commit is contained in:
parent
ecdfdc25f7
commit
6d162476c6
66
src/lib.rs
66
src/lib.rs
@ -12,6 +12,21 @@
|
|||||||
//! the `std::error::Error` trait.
|
//! the `std::error::Error` trait.
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
|
//! # pub trait Deserialize {}
|
||||||
|
//! #
|
||||||
|
//! # mod serde_json {
|
||||||
|
//! # use super::Deserialize;
|
||||||
|
//! # use std::io;
|
||||||
|
//! #
|
||||||
|
//! # pub fn from_str<T: Deserialize>(json: &str) -> io::Result<T> {
|
||||||
|
//! # unimplemented!()
|
||||||
|
//! # }
|
||||||
|
//! # }
|
||||||
|
//! #
|
||||||
|
//! # struct ClusterMap;
|
||||||
|
//! #
|
||||||
|
//! # impl Deserialize for ClusterMap {}
|
||||||
|
//! #
|
||||||
//! use anyhow::Result;
|
//! use anyhow::Result;
|
||||||
//!
|
//!
|
||||||
//! fn get_cluster_info() -> Result<ClusterMap> {
|
//! fn get_cluster_info() -> Result<ClusterMap> {
|
||||||
@ -19,6 +34,8 @@
|
|||||||
//! let map: ClusterMap = serde_json::from_str(&config)?;
|
//! let map: ClusterMap = serde_json::from_str(&config)?;
|
||||||
//! Ok(map)
|
//! Ok(map)
|
||||||
//! }
|
//! }
|
||||||
|
//! #
|
||||||
|
//! # fn main() {}
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! - Attach context to help the person troubleshooting the error understand
|
//! - Attach context to help the person troubleshooting the error understand
|
||||||
@ -27,15 +44,36 @@
|
|||||||
//! level step the application was in the middle of.
|
//! level step the application was in the middle of.
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
|
//! # struct It;
|
||||||
|
//! #
|
||||||
|
//! # impl It {
|
||||||
|
//! # fn detach(&self) -> Result<()> {
|
||||||
|
//! # unimplemented!()
|
||||||
|
//! # }
|
||||||
|
//! # }
|
||||||
|
//! #
|
||||||
//! use anyhow::{Context, Result};
|
//! use anyhow::{Context, Result};
|
||||||
//!
|
//!
|
||||||
//! fn main() -> Result<()> {
|
//! fn main() -> Result<()> {
|
||||||
|
//! # return Ok(());
|
||||||
|
//! #
|
||||||
|
//! # const _: &str = stringify! {
|
||||||
//! ...
|
//! ...
|
||||||
|
//! # };
|
||||||
|
//! #
|
||||||
|
//! # let it = It;
|
||||||
|
//! # let path = "./path/to/instrs.jsox";
|
||||||
|
//! #
|
||||||
//! it.detach().context("failed to detach the important thing")?;
|
//! it.detach().context("failed to detach the important thing")?;
|
||||||
//!
|
//!
|
||||||
//! let content = std::fs::read(path)
|
//! let content = std::fs::read(path)
|
||||||
//! .with_context(|| format!("failed to read instrs from {}", path))?;
|
//! .with_context(|| format!("failed to read instrs from {}", path))?;
|
||||||
|
//! #
|
||||||
|
//! # const _: &str = stringify! {
|
||||||
//! ...
|
//! ...
|
||||||
|
//! # };
|
||||||
|
//! #
|
||||||
|
//! # Ok(())
|
||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
@ -50,12 +88,36 @@
|
|||||||
//! mutable reference as needed.
|
//! mutable reference as needed.
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
|
//! # use anyhow::anyhow;
|
||||||
|
//! # use std::fmt::{self, Display};
|
||||||
|
//! # use std::task::Poll;
|
||||||
|
//! #
|
||||||
|
//! # #[derive(Debug)]
|
||||||
|
//! # enum DataStoreError {
|
||||||
|
//! # Censored(()),
|
||||||
|
//! # }
|
||||||
|
//! #
|
||||||
|
//! # impl Display for DataStoreError {
|
||||||
|
//! # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
//! # unimplemented!()
|
||||||
|
//! # }
|
||||||
|
//! # }
|
||||||
|
//! #
|
||||||
|
//! # impl std::error::Error for DataStoreError {}
|
||||||
|
//! #
|
||||||
|
//! # const REDACTED_CONTENT: () = ();
|
||||||
|
//! #
|
||||||
|
//! # let error = anyhow!("...");
|
||||||
|
//! # let root_cause = &error;
|
||||||
|
//! #
|
||||||
|
//! # let ret =
|
||||||
//! // If the error was caused by redaction, then return a
|
//! // If the error was caused by redaction, then return a
|
||||||
//! // tombstone instead of the content.
|
//! // tombstone instead of the content.
|
||||||
//! match root_cause.downcast_ref::<DataStoreError>() {
|
//! match root_cause.downcast_ref::<DataStoreError>() {
|
||||||
//! Some(DataStoreError::Censored(_)) => Ok(Async::Ready(REDACTED_CONTENT)),
|
//! Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)),
|
||||||
//! None => Err(e),
|
//! None => Err(error),
|
||||||
//! }
|
//! }
|
||||||
|
//! # ;
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! - A backtrace is captured and printed with the error if the underlying error
|
//! - A backtrace is captured and printed with the error if the underlying error
|
||||||
|
Loading…
x
Reference in New Issue
Block a user