use std::ops::AddAssign;
pub const NANOS_PER_SECOND: f64 = 1_000_000_000.0;
#[derive(Debug)]
pub struct Time {
pub ticks: u64,
pub tick_period: u64,
pub total_elapsed_time: f64,
pub delta_seconds: f64,
}
impl AddAssign<u64> for Time {
fn add_assign(&mut self, rhs: u64) {
self.ticks += rhs;
}
}
impl Time {
pub fn tps(&self) -> f64 {
if self.total_elapsed_time > 0.0 {
self.ticks as f64 / self.total_elapsed_time
} else {
0.0
}
}
pub const fn target_tick_rate(&self) -> f64 {
NANOS_PER_SECOND / self.total_elapsed_time
}
}