use crate::*;
#[derive(Clone)]
pub(crate) struct ServerData {
pub(crate) server_config: ServerConfigData,
pub(crate) hook: ServerHookList,
pub(crate) task_panic: ServerHookList,
pub(crate) read_error: ServerHookList,
}
#[derive(Clone)]
pub struct Server(pub(super) ArcRwLock<ServerData>);
#[derive(Clone)]
pub struct ServerControlHook {
pub(crate) wait_hook:
Arc<dyn Fn() -> Pin<Box<dyn Future<Output = ()> + Send + 'static>> + Send + Sync>,
pub(crate) shutdown_hook:
Arc<dyn Fn() -> Pin<Box<dyn Future<Output = ()> + Send + 'static>> + Send + Sync>,
}