sigterm 0.3.10

Signal-aware async control and cancellation primitives for Tokio.
Documentation
/* src/lib.rs */

//! sigterm - Graceful shutdown and signal handling primitives.
//!
//! This crate provides a unified API for handling shutdown signals and managing graceful shutdown
//! sequences in asynchronous Rust applications (primarily Tokio-based).

#[cfg(feature = "sync")]
pub mod broadcast;
#[cfg(feature = "cancel")]
pub mod cancel;
#[cfg(any(feature = "sync", feature = "cancel"))]
pub mod guard;
#[cfg(feature = "sync")]
pub mod shutdown;
#[cfg(feature = "signal")]
pub mod signal;

/// Common items re-exported for convenience.
pub mod prelude {
	#[cfg(feature = "sync")]
	pub use crate::broadcast::Broadcast;
	#[cfg(feature = "cancel")]
	pub use crate::cancel::CancellationToken;
	#[cfg(any(feature = "sync", feature = "cancel"))]
	pub use crate::guard::ShutdownGuard;
	#[cfg(feature = "sync")]
	pub use crate::shutdown::{Shutdown, ShutdownHandle};
	#[cfg(all(feature = "signal", feature = "cancel"))]
	pub use crate::signal::shutdown_signal;
	#[cfg(all(feature = "signal", unix, feature = "rt", feature = "sync"))]
	pub use crate::signal::wait_for;
	#[cfg(feature = "signal")]
	pub use crate::signal::{Signal, try_wait, wait, wait_timeout};
}

// Top-level convenience re-exports
#[cfg(feature = "sync")]
pub use broadcast::Broadcast;
#[cfg(feature = "cancel")]
pub use cancel::CancellationToken;
#[cfg(any(feature = "sync", feature = "cancel"))]
pub use guard::ShutdownGuard;
#[cfg(feature = "sync")]
pub use shutdown::{Shutdown, ShutdownHandle};
#[cfg(all(feature = "signal", feature = "cancel"))]
pub use signal::shutdown_signal;
#[cfg(all(feature = "signal", unix, feature = "rt", feature = "sync"))]
pub use signal::wait_for;
#[cfg(feature = "signal")]
pub use signal::{Signal, try_wait, wait, wait_timeout};