pub mod operating_system;
pub mod state;
pub use wmi::COMLibrary;
#[macro_export]
macro_rules! update {
($struct_name: ident, $struct_field: ident) => {
impl $struct_name {
pub fn update(&mut self) {
let com_con = unsafe { COMLibrary::assume_initialized() };
let wmi_con = WMIConnection::new(com_con).unwrap();
self.last_updated = SystemTime::now();
self.$struct_field = wmi_con.query().unwrap();
}
pub async fn async_update(&mut self) {
let com_con = unsafe { COMLibrary::assume_initialized() };
let wmi_con = WMIConnection::new(com_con).unwrap();
self.last_updated = SystemTime::now();
self.$struct_field = wmi_con.async_query().await.unwrap();
}
}
impl Default for $struct_name {
fn default() -> Self {
$struct_name {
$struct_field: Default::default(),
last_updated: SystemTime::now(),
}
}
}
};
}