#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
#![cfg_attr(test, deny(warnings))]
mod profile;
pub use self::profile::AppProfile;
mod context;
pub use self::context::AppContext;
mod replica;
pub use self::replica::lifetime_id::{Glued, Hyphenated, LifetimeId, Underscored};
pub use self::replica::AppReplica;
mod spindown;
pub use self::spindown::{token::AppSpindownToken, AppSpindown};
mod pivot;
pub use self::pivot::Pivot;
pub const ALERT_FIELD_NAME: &str = "alert";
pub async fn strut_shutdown() {
AppContext::terminate();
AppSpindown::completed().await;
}