use crate::api::metrics::MetricBuilder;
use crate::device::GpuInfo;
#[allow(dead_code)]
pub trait NpuExporter: Send + Sync {
fn can_handle(&self, info: &GpuInfo) -> bool;
fn export_vendor_metrics(
&self,
builder: &mut MetricBuilder,
info: &GpuInfo,
index: usize,
index_str: &str,
);
fn vendor_name(&self) -> &'static str;
}
#[allow(dead_code)]
pub trait CommonNpuMetrics {
fn export_generic_npu_metrics(&self, builder: &mut MetricBuilder, info: &GpuInfo, index: usize);
fn export_generic_npu_metrics_str(
&self,
builder: &mut MetricBuilder,
info: &GpuInfo,
index_str: &str,
);
fn export_device_info(&self, builder: &mut MetricBuilder, info: &GpuInfo, index: usize);
fn export_firmware_info(&self, builder: &mut MetricBuilder, info: &GpuInfo, index: usize);
fn export_temperature_metrics(&self, builder: &mut MetricBuilder, info: &GpuInfo, index: usize);
fn export_power_metrics(&self, builder: &mut MetricBuilder, info: &GpuInfo, index: usize);
}