use serde::Serialize;
#[derive(Debug, Clone)]
pub struct DeviceIdentity {
pub fingerprint: String,
pub info: String,
}
#[derive(Debug, Clone, Serialize)]
struct DeviceInfo {
os: &'static str,
machine_uid: String,
}
pub fn collect() -> DeviceIdentity {
let uid = machine_uid::get().unwrap_or_else(|_| "unknown-device".to_string());
let info = DeviceInfo {
os: std::env::consts::OS,
machine_uid: uid.clone(),
};
let info_json = serde_json::to_string(&info).unwrap_or_else(|_| "{}".to_string());
DeviceIdentity {
fingerprint: uid,
info: info_json,
}
}