1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3mod attach;
4mod error2;
5mod extract;
6mod file_path;
7#[cfg_attr(docsrs, doc(cfg(feature = "future")))]
8#[cfg(feature = "future")]
9mod future_ext;
10mod interner;
11mod iterator_ext;
12mod location;
13mod locations;
14mod macros;
15mod next_error;
16mod small_string;
17#[cfg_attr(docsrs, doc(cfg(feature = "stream")))]
18#[cfg(feature = "stream")]
19mod stream_ext;
20
21#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
22#[cfg(feature = "derive")]
23pub use error2_derive::Error2;
24
25#[cfg_attr(docsrs, doc(cfg(feature = "future")))]
26#[cfg(feature = "future")]
27pub use self::future_ext::{AttachFuture, FutureExt};
28#[cfg_attr(docsrs, doc(cfg(feature = "stream")))]
29#[cfg(feature = "stream")]
30pub use self::stream_ext::{AttachStream, StreamExt};
31pub use self::{
32 attach::Attach,
33 error2::Error2,
34 extract::extract_error_stack,
35 iterator_ext::{AttachIter, IteratorExt},
36 location::Location,
37 locations::Locations,
38 next_error::NextError,
39};
40pub(crate) use self::{
41 file_path::FilePath,
42 interner::{Id, Interner},
43 small_string::SmallString,
44};