Skip to main content

briefcase_core/models/
hardware.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5pub struct HardwareMetadata {
6    pub device_type: String, // "cuda", "metal", "cpu"
7    pub device_name: String, // "NVIDIA A100", "Apple M4 Max"
8    pub vram_gb: f32,
9    pub compute_units: u32,
10    pub provider: String, // "io.net", "akash", "lambda", "local"
11    #[serde(default)]
12    pub metadata: HashMap<String, serde_json::Value>,
13}
14
15impl HardwareMetadata {
16    pub fn new(device_type: impl Into<String>, device_name: impl Into<String>) -> Self {
17        Self {
18            device_type: device_type.into(),
19            device_name: device_name.into(),
20            vram_gb: 0.0,
21            compute_units: 0,
22            provider: "unknown".into(),
23            metadata: HashMap::new(),
24        }
25    }
26}