0.1.0-0-pre.11-fix.5
This commit is contained in:
42
crates/engines/engine-v1-common/src/quit.rs
Normal file
42
crates/engines/engine-v1-common/src/quit.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
// file: crates/engines/engine-v1-common/src/quit.rs
|
||||
// version: 1
|
||||
|
||||
/// Origin of a platform-independent request to leave the current game runtime.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum QuitSource {
|
||||
/// The operating-system or window manager requested the window to close.
|
||||
WindowClose,
|
||||
/// The Desktop Escape key requested leaving the runtime.
|
||||
Escape,
|
||||
/// The platform-native Back action requested leaving the runtime.
|
||||
PlatformBack,
|
||||
}
|
||||
|
||||
/// Decision returned by a game when the runtime requests to leave.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum QuitDecision {
|
||||
/// Leave the current runtime immediately.
|
||||
Exit,
|
||||
/// Keep the runtime active after the game handled the request.
|
||||
Continue,
|
||||
}
|
||||
|
||||
/// Platform-independent quit request delivered to a game.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub struct QuitRequest {
|
||||
source: QuitSource,
|
||||
}
|
||||
|
||||
impl QuitRequest {
|
||||
/// Creates a quit request from the supplied source.
|
||||
#[must_use]
|
||||
pub const fn new(source: QuitSource) -> Self {
|
||||
return Self { source };
|
||||
}
|
||||
|
||||
/// Returns the physical or platform-level source of the request.
|
||||
#[must_use]
|
||||
pub const fn source(self) -> QuitSource {
|
||||
return self.source;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user