use crate::update;
use serde::{Deserialize, Serialize};
use std::time::SystemTime;
use wmi::{COMLibrary, WMIConnection, WMIDateTime};
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct PageFiles {
pub pagefiles: Vec<Win32_PageFile>,
pub last_updated: SystemTime,
}
update!(PageFiles, pagefiles);
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct PageFileSettings {
pub pagefile_settings: Vec<Win32_PageFileSetting>,
pub last_updated: SystemTime,
}
update!(PageFileSettings, pagefile_settings);
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct PageFileUsages {
pub pagefile_usage: Vec<Win32_PageFileUsage>,
pub last_updated: SystemTime,
}
update!(PageFileUsages, pagefile_usage);
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
pub struct Win32_PageFile {
pub Caption: Option<String>,
pub Description: Option<String>,
pub InstallDate: Option<WMIDateTime>,
pub Archive: Option<bool>,
pub Compressed: Option<bool>,
pub CompressionMethod: Option<String>,
pub CreationClassName: Option<String>,
pub CreationDate: Option<WMIDateTime>,
pub CSCreationClassName: Option<String>,
pub CSName: Option<String>,
pub Drive: Option<String>,
pub EightDotThreeFileName: Option<String>,
pub Encrypted: Option<bool>,
pub EncryptionMethod: Option<String>,
pub Extension: Option<String>,
pub FileName: Option<String>,
pub FileSize: Option<u64>,
pub FileType: Option<String>,
pub FSCreationClassName: Option<String>,
pub FSName: Option<String>,
pub Hidden: Option<bool>,
pub InUseCount: Option<u64>,
pub LastAccessed: Option<WMIDateTime>,
pub LastModified: Option<WMIDateTime>,
pub Path: Option<String>,
pub Readable: Option<bool>,
pub System: Option<bool>,
pub Writeable: Option<bool>,
pub AccessMask: Option<u32>,
pub Manufacturer: Option<String>,
pub Status: Option<String>,
pub Version: Option<String>,
pub FreeSpace: Option<u32>,
pub InitialSize: Option<u32>,
pub MaximumSize: Option<u32>,
pub Name: Option<String>,
}
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
pub struct Win32_PageFileSetting {
pub Caption: Option<String>,
pub Description: Option<String>,
pub SettingID: Option<String>,
pub InitialSize: Option<u32>,
pub MaximumSize: Option<u32>,
pub Name: Option<String>,
}
#[derive(Default, Deserialize, Serialize, Debug, Clone)]
#[allow(non_snake_case)]
#[allow(non_camel_case_types)]
pub struct Win32_PageFileUsage {
pub Caption: Option<String>,
pub Description: Option<String>,
pub InstallDate: Option<String>,
pub Status: Option<String>,
pub AllocatedBaseSize: Option<u32>,
pub CurrentUsage: Option<u32>,
pub Name: Option<String>,
pub PeakUsage: Option<u32>,
pub TempPageFile: Option<bool>,
}