use std::fmt;
#[repr(u8)]
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq, Hash)]
pub enum TimerState {
#[default]
NotRunning = 0,
Running = 1,
Paused = 2,
Ended = 3,
}
pub trait Timer {
fn state(&self) -> TimerState;
fn start(&mut self);
fn split(&mut self);
fn reset(&mut self);
fn set_game_time(&mut self, time: time::Duration);
fn pause_game_time(&mut self);
fn resume_game_time(&mut self);
fn set_variable(&mut self, key: &str, value: &str);
fn log(&mut self, message: fmt::Arguments<'_>);
}