est/lib.rs
1#![cfg_attr(nightly, feature(doc_auto_cfg))]
2#![allow(rustdoc::broken_intra_doc_links)]
3
4//! **E**xtensions for the rust **S**tandard library and **T**okio.
5//!
6//! # Feature flags
7//!
8//! **The default feature will not enable anything** (based on the principle of minimum
9//! dependency). At the same time, each top-level module has a feature flag with the same name
10//! (currently including: `collections`, `future`, `process`, `result`, `sync`, `task`, `thread`).
11//!
12//! There is also a feature flag called `full` that enables all features and introduces all
13//! optional dependencies.
14//!
15//! In addition, there are some optional feature flags as follows:
16//!
17//! - `signal`: Enables `ctrl-c` signal processing in the [`task::graceful`] module.
18//! - `task_tracker`: Enables the [`task::task_tracker`] module.
19//! - `indexmap`: Implement [`collections::MapExt`] for [`indexmap::IndexMap`].
20//! - `serde`: Enables [`serde`] support for the entire crate.
21
22#[cfg(feature = "tokio")]
23pub use tokio;
24
25/// Extensions to the [`std::collections`] module.
26#[cfg(feature = "collections")]
27pub mod collections;
28/// Extensions to the [`std::future`] module.
29#[cfg(feature = "future")]
30pub mod future;
31/// Extensions to the [`std::process`] & [`tokio::process`] module.
32#[cfg(feature = "process")]
33pub mod process;
34/// Extensions to the [`std::result`] module.
35#[cfg(feature = "result")]
36pub mod result;
37/// Extensions to the [`std::sync`] & [`tokio::sync`] module.
38#[cfg(feature = "sync")]
39pub mod sync;
40/// Extensions to the [`std::task`] & [`tokio::task`] module.
41#[cfg(feature = "task")]
42pub mod task;
43/// Extensions to the [`std::thread`] module.
44#[cfg(feature = "thread")]
45pub mod thread;
46
47#[cfg(feature = "result")]
48pub use result::AnyRes;