Skip to main content

sigterm/
lib.rs

1/* src/lib.rs */
2
3//! sigterm - Graceful shutdown and signal handling primitives.
4//!
5//! This crate provides a unified API for handling shutdown signals and managing graceful shutdown
6//! sequences in asynchronous Rust applications (primarily Tokio-based).
7
8#[cfg(feature = "sync")]
9pub mod broadcast;
10#[cfg(feature = "cancel")]
11pub mod cancel;
12#[cfg(any(feature = "sync", feature = "cancel"))]
13pub mod guard;
14#[cfg(feature = "sync")]
15pub mod shutdown;
16#[cfg(feature = "signal")]
17pub mod signal;
18
19/// Common items re-exported for convenience.
20pub mod prelude {
21	#[cfg(feature = "sync")]
22	pub use crate::broadcast::Broadcast;
23	#[cfg(feature = "cancel")]
24	pub use crate::cancel::CancellationToken;
25	#[cfg(any(feature = "sync", feature = "cancel"))]
26	pub use crate::guard::ShutdownGuard;
27	#[cfg(feature = "sync")]
28	pub use crate::shutdown::{Shutdown, ShutdownHandle};
29	#[cfg(all(feature = "signal", feature = "cancel"))]
30	pub use crate::signal::shutdown_signal;
31	#[cfg(all(feature = "signal", unix, feature = "rt", feature = "sync"))]
32	pub use crate::signal::wait_for;
33	#[cfg(feature = "signal")]
34	pub use crate::signal::{Signal, try_wait, wait, wait_timeout};
35}
36
37// Top-level convenience re-exports
38#[cfg(feature = "sync")]
39pub use broadcast::Broadcast;
40#[cfg(feature = "cancel")]
41pub use cancel::CancellationToken;
42#[cfg(any(feature = "sync", feature = "cancel"))]
43pub use guard::ShutdownGuard;
44#[cfg(feature = "sync")]
45pub use shutdown::{Shutdown, ShutdownHandle};
46#[cfg(all(feature = "signal", feature = "cancel"))]
47pub use signal::shutdown_signal;
48#[cfg(all(feature = "signal", unix, feature = "rt", feature = "sync"))]
49pub use signal::wait_for;
50#[cfg(feature = "signal")]
51pub use signal::{Signal, try_wait, wait, wait_timeout};