use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepairCriterion {
pub name: String,
pub score: f64,
pub weight: f64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepairabilityScore {
pub overall: f64,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub criteria: Vec<RepairCriterion>,
}
impl RepairabilityScore {
pub fn from_scalar(overall: f64) -> Self {
Self {
overall,
criteria: Vec::new(),
}
}
}