#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum HypomnesisError {
#[error("RAM query failed: {0}")]
Ram(String),
#[error("NVML error: {0}")]
Nvml(String),
#[error("DXGI error: {0}")]
Dxgi(String),
#[error("nvidia-smi error: {0}")]
NvidiaSmi(String),
#[error("device index {index} out of range (have {count} devices)")]
DeviceIndexOutOfRange {
index: u32,
count: u32,
},
#[error(
"no GPU measurement source available (NVML, DXGI, and nvidia-smi all failed or are disabled)"
)]
NoGpuSource,
#[error(transparent)]
Io(#[from] std::io::Error),
}
pub type Result<T> = std::result::Result<T, HypomnesisError>;