use std::io;
use std::mem;
use mach::{kern_return, mach_time};
mod uptime;
pub use self::uptime::*;
unsafe fn timebase_info() -> io::Result<mach_time::mach_timebase_info> {
let mut info: mach_time::mach_timebase_info = mem::zeroed();
let res = mach_time::mach_timebase_info(&mut info);
if res == kern_return::KERN_SUCCESS {
Ok(info)
} else {
Err(io::Error::last_os_error())
}
}
lazy_static::lazy_static! {
pub static ref TIME_BASE: f64 = {
let info = unsafe { timebase_info().expect("Unable to get mach timebase info") };
(f64::from(info.numer) / f64::from(info.denom))
};
}