#[derive(Debug, Clone)]
pub struct GpuDevice {
pub vendor: GpuVendor,
pub name: String,
pub index: u32,
pub vendor_index: u32,
pub generation: String,
pub pci_id: String,
pub vram_mib: u64,
pub serial: Option<String>,
pub host_pci_address: String,
pub vendor_id_hex: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GpuVendor {
Nvidia,
Amd,
Intel,
}
#[derive(Debug, Clone, Default)]
pub struct GpuUtilization {
pub util_percent: u8,
pub encoder_percent: u8,
pub decoder_percent: u8,
pub mem_used_mib: u32,
pub mem_total_mib: u32,
pub temperature_c: Option<u8>,
}