use serde::Serialize;
#[derive(Debug, Clone, Serialize)]
pub struct ProducerDiff {
pub producer: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub served_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub local_version: Option<String>,
pub findings: Vec<String>,
}
#[derive(Debug, Clone, Serialize)]
pub struct RegistryDiff {
pub producers: Vec<ProducerDiff>,
}
impl RegistryDiff {
pub fn disagreeing(&self) -> usize {
self.producers
.iter()
.filter(|p| !p.findings.is_empty())
.count()
}
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)]
pub struct SliceDisagreement {
pub producer: String,
pub bus_version: String,
pub dirs_version: String,
pub shape_differs: bool,
}