1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3mod attach;
4mod backtrace;
5mod boxed;
6mod error2;
7mod error_wrap;
8mod extract;
9#[cfg_attr(docsrs, doc(cfg(feature = "future")))]
10#[cfg(feature = "future")]
11mod future_ext;
12mod iterator_ext;
13mod location;
14mod macros;
15mod option_ext;
16mod result_ext;
17mod static_str;
18#[cfg_attr(docsrs, doc(cfg(feature = "stream")))]
19#[cfg(feature = "stream")]
20mod stream_ext;
21
22#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
23#[cfg(feature = "derive")]
24pub use error2_derive::Error2;
25
26#[cfg_attr(docsrs, doc(cfg(feature = "future")))]
27#[cfg(feature = "future")]
28pub use self::future_ext::{AttachFuture, FutureExt};
29pub(crate) use self::static_str::StaticStr;
30#[cfg_attr(docsrs, doc(cfg(feature = "stream")))]
31#[cfg(feature = "stream")]
32pub use self::stream_ext::{AttachStream, StreamExt};
33pub use self::{
34 attach::Attach,
35 backtrace::Backtrace,
36 boxed::{BoxedError2, ViaErr2, ViaNone, ViaStd},
37 error_wrap::ErrorWrap,
38 error2::Error2,
39 extract::{extract_error_message, extract_error_stack},
40 iterator_ext::{AttachIter, IteratorExt},
41 location::Location,
42 option_ext::{NoneError, OptionExt},
43 result_ext::ResultExt,
44};