use core::time::Duration;
#[derive(Default)]
pub struct StaticTimeManager
{
get_uptime_fn: Option<fn() -> Duration>,
}
impl StaticTimeManager
{
pub fn set_uptime_fn(&mut self, cb: fn() -> Duration)
{
self.get_uptime_fn = Some(cb);
}
pub fn get_uptime(&self) -> Option<Duration>
{
if let Some(cb) = self.get_uptime_fn
{
return Some(cb());
}
else
{
return None;
}
}
pub fn get_uptime_or(&self, default_uptime: u64) -> Duration
{
if let Some(upt) = self.get_uptime()
{
return upt;
}
else
{
return Duration::from_nanos(default_uptime);
}
}
}