use bevy::{app::AppExit, prelude::Message};
#[derive(Clone, Copy, Debug, Eq, Message, PartialEq)]
pub enum LifecycleRequested {
Shutdown(ShutdownRequest),
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct ShutdownRequest {
status: ShutdownStatus,
reason: ShutdownReason,
}
impl ShutdownRequest {
pub const fn successful_user_command() -> Self {
Self {
status: ShutdownStatus::Success,
reason: ShutdownReason::UserCommand,
}
}
pub const fn app_exit(self) -> AppExit {
match self.status {
ShutdownStatus::Success => AppExit::Success,
}
}
pub const fn reason(self) -> ShutdownReason {
self.reason
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
enum ShutdownStatus {
Success,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum ShutdownReason {
UserCommand,
}