use serde::{Deserialize, Serialize};
use crate::LayerStack;
use crate::{Config, ConfigItem, ConfigRegistrar, ControllerRegistry, State, inventory_submit};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(default)]
pub struct ApplicationConfig {
pub name: Option<String>,
pub environment: Option<String>,
#[serde(rename = "graceful-shutdown")]
pub graceful_shutdown: bool,
}
impl ConfigItem for ApplicationConfig {
fn key() -> &'static str {
"application"
}
}
inventory_submit! {[
ConfigRegistrar::new(|state, config| {
state.insert(config.get_or_default::<ApplicationConfig>());
})
]}
pub struct EngineBuildContext {
pub state: State,
pub config: Config,
pub controllers: ControllerRegistry,
pub layer_stack: LayerStack<State>,
}