36 lines
926 B
Rust
36 lines
926 B
Rust
use crate::process::ProcessId;
|
|
use crate::task::{TaskId, TaskState};
|
|
|
|
pub const DEFAULT_GAME_PAUSE_BUDGET_TICKS: u8 = 1;
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub enum GameLifecycleEventKind {
|
|
Pause,
|
|
ResumeForeground,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub struct GameLifecycleEvent {
|
|
pub task_id: TaskId,
|
|
pub kind: GameLifecycleEventKind,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub enum LifecycleOperation {
|
|
SetForeground,
|
|
Suspend,
|
|
Resume,
|
|
Close,
|
|
Crash,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub enum LifecycleError {
|
|
TaskNotFound(TaskId),
|
|
ProcessNotFound(ProcessId),
|
|
InvalidTransition { task_id: TaskId, from: TaskState, operation: LifecycleOperation },
|
|
ResidentGameAlreadyExists { existing: TaskId, requested: TaskId },
|
|
ForegroundShellAlreadyExists { existing: TaskId, requested: TaskId },
|
|
TaskIsNotResidentGame(TaskId),
|
|
}
|