use std::convert::TryInto;
use std::time::Instant;
use once_cell::sync::Lazy;
static INIT_TIME: Lazy<Instant> = Lazy::new(Instant::now);
pub fn now_including_suspend() -> u64 {
let now = Instant::now();
now.checked_duration_since(*INIT_TIME)
.and_then(|diff| diff.as_nanos().try_into().ok())
.unwrap_or(0)
}
pub fn now_awake() -> u64 {
let now = Instant::now();
now.checked_duration_since(*INIT_TIME)
.and_then(|diff| diff.as_nanos().try_into().ok())
.unwrap_or(0)
}