use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct VisionHealth {
#[serde(default)]
pub status: Option<String>,
#[serde(default)]
pub message: Option<String>,
#[serde(flatten)]
pub extra: BTreeMap<String, Value>,
}
#[cfg(test)]
mod tests {
use serde_json::json;
use super::VisionHealth;
#[test]
fn vision_health_deserializes_known_and_unknown_fields() {
let health: VisionHealth = serde_json::from_value(json!({
"status": "ok",
"uptime_seconds": 42
}))
.expect("vision health should deserialize");
assert_eq!(health.status.as_deref(), Some("ok"));
assert_eq!(health.extra["uptime_seconds"], 42);
}
}