use std::mem;
use winapi::shared::minwindef;
use winapi::um::sysinfoapi;
use heim_common::prelude::*;
use heim_common::sys::IntoTime;
use heim_common::units::{time, Time};
pub fn boot_time() -> impl Future<Output = Result<Time>> {
let mut filetime = mem::MaybeUninit::<minwindef::FILETIME>::uninit();
let time = unsafe {
sysinfoapi::GetSystemTimeAsFileTime(filetime.as_mut_ptr());
filetime.assume_init().into_time()
};
let unix_epoch_delta = Time::new::<time::second>(11_644_473_600.0);
future::ok(time - unix_epoch_delta)
}