Cluster add-building compact dispatch families

This commit is contained in:
Jan Petykiewicz 2026-04-19 10:17:49 -07:00
commit d334da6687
4 changed files with 435 additions and 0 deletions

View file

@ -341,6 +341,12 @@ struct RuntimeCompactEventDispatchClusterReport {
add_building_dispatch_records_missing_trigger_kind: usize, add_building_dispatch_records_missing_trigger_kind: usize,
add_building_descriptor_occurrence_counts: BTreeMap<String, usize>, add_building_descriptor_occurrence_counts: BTreeMap<String, usize>,
add_building_descriptor_map_counts: BTreeMap<String, usize>, add_building_descriptor_map_counts: BTreeMap<String, usize>,
add_building_signature_family_occurrence_counts: BTreeMap<String, usize>,
add_building_signature_family_map_counts: BTreeMap<String, usize>,
add_building_condition_tuple_occurrence_counts: BTreeMap<String, usize>,
add_building_condition_tuple_map_counts: BTreeMap<String, usize>,
add_building_signature_condition_cluster_occurrence_counts: BTreeMap<String, usize>,
add_building_signature_condition_cluster_map_counts: BTreeMap<String, usize>,
} }
#[derive(Debug, Serialize)] #[derive(Debug, Serialize)]
@ -361,6 +367,12 @@ struct RuntimeCompactEventDispatchClusterCountsReport {
add_building_dispatch_records_missing_trigger_kind: usize, add_building_dispatch_records_missing_trigger_kind: usize,
add_building_descriptor_occurrence_counts: BTreeMap<String, usize>, add_building_descriptor_occurrence_counts: BTreeMap<String, usize>,
add_building_descriptor_map_counts: BTreeMap<String, usize>, add_building_descriptor_map_counts: BTreeMap<String, usize>,
add_building_signature_family_occurrence_counts: BTreeMap<String, usize>,
add_building_signature_family_map_counts: BTreeMap<String, usize>,
add_building_condition_tuple_occurrence_counts: BTreeMap<String, usize>,
add_building_condition_tuple_map_counts: BTreeMap<String, usize>,
add_building_signature_condition_cluster_occurrence_counts: BTreeMap<String, usize>,
add_building_signature_condition_cluster_map_counts: BTreeMap<String, usize>,
} }
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]
@ -1835,6 +1847,17 @@ fn run_runtime_inspect_compact_event_dispatch_cluster_counts(
add_building_descriptor_occurrence_counts: report add_building_descriptor_occurrence_counts: report
.add_building_descriptor_occurrence_counts, .add_building_descriptor_occurrence_counts,
add_building_descriptor_map_counts: report.add_building_descriptor_map_counts, add_building_descriptor_map_counts: report.add_building_descriptor_map_counts,
add_building_signature_family_occurrence_counts: report
.add_building_signature_family_occurrence_counts,
add_building_signature_family_map_counts: report
.add_building_signature_family_map_counts,
add_building_condition_tuple_occurrence_counts: report
.add_building_condition_tuple_occurrence_counts,
add_building_condition_tuple_map_counts: report.add_building_condition_tuple_map_counts,
add_building_signature_condition_cluster_occurrence_counts: report
.add_building_signature_condition_cluster_occurrence_counts,
add_building_signature_condition_cluster_map_counts: report
.add_building_signature_condition_cluster_map_counts,
}, },
}; };
println!("{}", serde_json::to_string_pretty(&output)?); println!("{}", serde_json::to_string_pretty(&output)?);
@ -1861,6 +1884,13 @@ fn build_runtime_compact_event_dispatch_cluster_report(
let mut add_building_dispatch_records_missing_trigger_kind = 0usize; let mut add_building_dispatch_records_missing_trigger_kind = 0usize;
let mut add_building_descriptor_occurrence_counts = BTreeMap::<String, usize>::new(); let mut add_building_descriptor_occurrence_counts = BTreeMap::<String, usize>::new();
let mut add_building_descriptor_map_counts = BTreeMap::<String, usize>::new(); let mut add_building_descriptor_map_counts = BTreeMap::<String, usize>::new();
let mut add_building_signature_family_occurrence_counts = BTreeMap::<String, usize>::new();
let mut add_building_signature_family_map_counts = BTreeMap::<String, usize>::new();
let mut add_building_condition_tuple_occurrence_counts = BTreeMap::<String, usize>::new();
let mut add_building_condition_tuple_map_counts = BTreeMap::<String, usize>::new();
let mut add_building_signature_condition_cluster_occurrence_counts =
BTreeMap::<String, usize>::new();
let mut add_building_signature_condition_cluster_map_counts = BTreeMap::<String, usize>::new();
let mut dispatch_descriptor_occurrences = let mut dispatch_descriptor_occurrences =
BTreeMap::<String, Vec<RuntimeCompactEventDispatchClusterOccurrence>>::new(); BTreeMap::<String, Vec<RuntimeCompactEventDispatchClusterOccurrence>>::new();
let mut unknown_descriptor_occurrences = let mut unknown_descriptor_occurrences =
@ -1876,6 +1906,9 @@ fn build_runtime_compact_event_dispatch_cluster_report(
let mut map_dispatch_strip_record_count = 0usize; let mut map_dispatch_strip_record_count = 0usize;
let mut map_descriptor_keys = BTreeSet::<String>::new(); let mut map_descriptor_keys = BTreeSet::<String>::new();
let mut map_add_building_descriptor_keys = BTreeSet::<String>::new(); let mut map_add_building_descriptor_keys = BTreeSet::<String>::new();
let mut map_add_building_signature_families = BTreeSet::<String>::new();
let mut map_add_building_condition_tuples = BTreeSet::<String>::new();
let mut map_add_building_signature_condition_clusters = BTreeSet::<String>::new();
for record in &summary.records { for record in &summary.records {
let matching_rows = record let matching_rows = record
.grouped_effect_rows .grouped_effect_rows
@ -1920,6 +1953,16 @@ fn build_runtime_compact_event_dispatch_cluster_report(
}) })
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let signature_family = compact_event_signature_family_from_notes(&record.notes); let signature_family = compact_event_signature_family_from_notes(&record.notes);
let condition_tuple_family =
compact_event_dispatch_condition_tuple_family(&condition_tuples);
let signature_family_key = signature_family
.clone()
.unwrap_or_else(|| "unknown-signature-family".to_string());
let signature_condition_cluster_key =
compact_event_dispatch_signature_condition_cluster_key(
signature_family.as_deref(),
&condition_tuples,
);
for (descriptor_id, rows) in matching_rows { for (descriptor_id, rows) in matching_rows {
let occurrence = RuntimeCompactEventDispatchClusterOccurrence { let occurrence = RuntimeCompactEventDispatchClusterOccurrence {
@ -1943,6 +1986,19 @@ fn build_runtime_compact_event_dispatch_cluster_report(
.entry(descriptor_key.clone()) .entry(descriptor_key.clone())
.or_insert(0) += 1; .or_insert(0) += 1;
map_add_building_descriptor_keys.insert(descriptor_key.clone()); map_add_building_descriptor_keys.insert(descriptor_key.clone());
*add_building_signature_family_occurrence_counts
.entry(signature_family_key.clone())
.or_insert(0) += 1;
*add_building_condition_tuple_occurrence_counts
.entry(condition_tuple_family.clone())
.or_insert(0) += 1;
*add_building_signature_condition_cluster_occurrence_counts
.entry(signature_condition_cluster_key.clone())
.or_insert(0) += 1;
map_add_building_signature_families.insert(signature_family_key.clone());
map_add_building_condition_tuples.insert(condition_tuple_family.clone());
map_add_building_signature_condition_clusters
.insert(signature_condition_cluster_key.clone());
} }
dispatch_descriptor_occurrences dispatch_descriptor_occurrences
.entry(descriptor_key) .entry(descriptor_key)
@ -1979,6 +2035,21 @@ fn build_runtime_compact_event_dispatch_cluster_report(
.entry(descriptor_key) .entry(descriptor_key)
.or_insert(0) += 1; .or_insert(0) += 1;
} }
for signature_family in map_add_building_signature_families {
*add_building_signature_family_map_counts
.entry(signature_family)
.or_insert(0) += 1;
}
for condition_tuple_family in map_add_building_condition_tuples {
*add_building_condition_tuple_map_counts
.entry(condition_tuple_family)
.or_insert(0) += 1;
}
for signature_condition_cluster in map_add_building_signature_condition_clusters {
*add_building_signature_condition_cluster_map_counts
.entry(signature_condition_cluster)
.or_insert(0) += 1;
}
} }
let unknown_descriptor_ids = unknown_descriptor_occurrences let unknown_descriptor_ids = unknown_descriptor_occurrences
@ -2012,6 +2083,12 @@ fn build_runtime_compact_event_dispatch_cluster_report(
add_building_dispatch_records_missing_trigger_kind, add_building_dispatch_records_missing_trigger_kind,
add_building_descriptor_occurrence_counts, add_building_descriptor_occurrence_counts,
add_building_descriptor_map_counts, add_building_descriptor_map_counts,
add_building_signature_family_occurrence_counts,
add_building_signature_family_map_counts,
add_building_condition_tuple_occurrence_counts,
add_building_condition_tuple_map_counts,
add_building_signature_condition_cluster_occurrence_counts,
add_building_signature_condition_cluster_map_counts,
}) })
} }
@ -4395,6 +4472,33 @@ fn compact_event_dispatch_descriptor_key(
.unwrap_or_else(|| descriptor_id.to_string()) .unwrap_or_else(|| descriptor_id.to_string())
} }
fn compact_event_dispatch_condition_tuple_family(
tuples: &[RuntimeCompactEventDispatchClusterConditionTuple],
) -> String {
if tuples.is_empty() {
return "[]".to_string();
}
let parts = tuples
.iter()
.map(|tuple| match &tuple.metric {
Some(metric) => format!("{}:{}:{}", tuple.raw_condition_id, tuple.subtype, metric),
None => format!("{}:{}", tuple.raw_condition_id, tuple.subtype),
})
.collect::<Vec<_>>();
format!("[{}]", parts.join(","))
}
fn compact_event_dispatch_signature_condition_cluster_key(
signature_family: Option<&str>,
tuples: &[RuntimeCompactEventDispatchClusterConditionTuple],
) -> String {
format!(
"{} :: {}",
signature_family.unwrap_or("unknown-signature-family"),
compact_event_dispatch_condition_tuple_family(tuples)
)
}
fn parse_hex_offset(text: &str) -> Option<usize> { fn parse_hex_offset(text: &str) -> Option<usize> {
text.strip_prefix("0x") text.strip_prefix("0x")
.and_then(|digits| usize::from_str_radix(digits, 16).ok()) .and_then(|digits| usize::from_str_radix(digits, 16).ok())

View file

@ -6603,6 +6603,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![ records: vec![
crate::SmpLoadedPackedEventRecordSummary { crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
@ -7620,6 +7623,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -7760,6 +7766,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -7878,6 +7887,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![ records: vec![
synthetic_packed_record( synthetic_packed_record(
0, 0,
@ -8022,6 +8034,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![ records: vec![
synthetic_packed_record( synthetic_packed_record(
0, 0,
@ -8127,6 +8142,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -8300,6 +8318,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![ records: vec![
crate::SmpLoadedPackedEventRecordSummary { crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
@ -8563,6 +8584,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -8661,6 +8685,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -8783,6 +8810,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -8878,6 +8908,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 8, live_entry_id: 8,
@ -8976,6 +9009,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 9, live_entry_id: 9,
@ -9087,6 +9123,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 31, live_entry_id: 31,
@ -9214,6 +9253,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 32, live_entry_id: 32,
@ -9312,6 +9354,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 33, live_entry_id: 33,
@ -9487,6 +9532,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 33, live_entry_id: 33,
@ -9607,6 +9655,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 34, live_entry_id: 34,
@ -9704,6 +9755,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 35, live_entry_id: 35,
@ -9801,6 +9855,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 41, live_entry_id: 41,
@ -9972,6 +10029,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 36, live_entry_id: 36,
@ -10088,6 +10148,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 37, live_entry_id: 37,
@ -10183,6 +10246,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 35, live_entry_id: 35,
@ -10288,6 +10354,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 38, live_entry_id: 38,
@ -10402,6 +10471,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 39, live_entry_id: 39,
@ -10524,6 +10596,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 40, live_entry_id: 40,
@ -10635,6 +10710,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 41, live_entry_id: 41,
@ -10732,6 +10810,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 36, live_entry_id: 36,
@ -10899,6 +10980,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 9, live_entry_id: 9,
@ -11076,6 +11160,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 11, live_entry_id: 11,
@ -11201,6 +11288,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 12, live_entry_id: 12,
@ -11307,6 +11397,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 13, live_entry_id: 13,
@ -11440,6 +11533,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 13, live_entry_id: 13,
@ -11567,6 +11663,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 18, live_entry_id: 18,
@ -11684,6 +11783,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 19, live_entry_id: 19,
@ -11797,6 +11899,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 14, live_entry_id: 14,
@ -11924,6 +12029,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 16, live_entry_id: 16,
@ -12036,6 +12144,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 18, live_entry_id: 18,
@ -12130,6 +12241,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 52, live_entry_id: 52,
@ -12229,6 +12343,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 21, live_entry_id: 21,
@ -12333,6 +12450,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 22, live_entry_id: 22,
@ -12437,6 +12557,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 23, live_entry_id: 23,
@ -12557,6 +12680,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 24, live_entry_id: 24,
@ -12668,6 +12794,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 29, live_entry_id: 29,
@ -12826,6 +12955,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 27, live_entry_id: 27,
@ -12983,6 +13115,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![ records: vec![
crate::SmpLoadedPackedEventRecordSummary { crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
@ -13531,6 +13666,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 71, live_entry_id: 71,
@ -13733,6 +13871,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 72, live_entry_id: 72,
@ -13880,6 +14021,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 73, live_entry_id: 73,
@ -14026,6 +14170,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 74, live_entry_id: 74,
@ -14173,6 +14320,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 25, live_entry_id: 25,
@ -14304,6 +14454,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 26, live_entry_id: 26,
@ -14510,6 +14663,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 19, live_entry_id: 19,
@ -14624,6 +14780,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 20, live_entry_id: 20,
@ -14740,6 +14899,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 24, live_entry_id: 24,
@ -14927,6 +15089,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 21, live_entry_id: 21,
@ -15097,6 +15262,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 22, live_entry_id: 22,
@ -15208,6 +15376,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 23, live_entry_id: 23,
@ -15352,6 +15523,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 25, live_entry_id: 25,
@ -15484,6 +15658,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 17, live_entry_id: 17,
@ -15690,6 +15867,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,
@ -15906,6 +16086,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
records: vec![crate::SmpLoadedPackedEventRecordSummary { records: vec![crate::SmpLoadedPackedEventRecordSummary {
record_index: 0, record_index: 0,
live_entry_id: 7, live_entry_id: 7,

View file

@ -3988,6 +3988,12 @@ pub struct SmpLoadedEventRuntimeCollectionSummary {
#[serde(default)] #[serde(default)]
pub add_building_dispatch_strip_records_missing_trigger_kind: usize, pub add_building_dispatch_strip_records_missing_trigger_kind: usize,
#[serde(default)] #[serde(default)]
pub add_building_dispatch_strip_signature_families: Vec<String>,
#[serde(default)]
pub add_building_dispatch_strip_condition_tuple_families: Vec<String>,
#[serde(default)]
pub add_building_dispatch_strip_signature_condition_clusters: Vec<String>,
#[serde(default)]
pub control_lane_notes: Vec<String>, pub control_lane_notes: Vec<String>,
#[serde(default)] #[serde(default)]
pub records: Vec<SmpLoadedPackedEventRecordSummary>, pub records: Vec<SmpLoadedPackedEventRecordSummary>,
@ -9989,6 +9995,54 @@ fn parse_event_runtime_collection_summary_with_tag_width(
.collect::<Vec<_>>(); .collect::<Vec<_>>();
add_building_dispatch_strip_descriptor_labels.sort_unstable(); add_building_dispatch_strip_descriptor_labels.sort_unstable();
add_building_dispatch_strip_descriptor_labels.dedup(); add_building_dispatch_strip_descriptor_labels.dedup();
let mut add_building_dispatch_strip_signature_families = records
.iter()
.filter(|record| {
record.grouped_effect_rows.iter().any(|row| {
opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(row.opcode)
&& compact_event_dispatch_add_building_descriptor_id(row.descriptor_id)
})
})
.map(|record| {
compact_event_signature_family_from_notes(&record.notes)
.unwrap_or_else(|| "unknown-signature-family".to_string())
})
.collect::<Vec<_>>();
add_building_dispatch_strip_signature_families.sort_unstable();
add_building_dispatch_strip_signature_families.dedup();
let mut add_building_dispatch_strip_condition_tuple_families = records
.iter()
.filter(|record| {
record.grouped_effect_rows.iter().any(|row| {
opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(row.opcode)
&& compact_event_dispatch_add_building_descriptor_id(row.descriptor_id)
})
})
.map(|record| {
compact_event_dispatch_condition_tuple_family_from_summary_rows(
&record.standalone_condition_rows,
)
})
.collect::<Vec<_>>();
add_building_dispatch_strip_condition_tuple_families.sort_unstable();
add_building_dispatch_strip_condition_tuple_families.dedup();
let mut add_building_dispatch_strip_signature_condition_clusters = records
.iter()
.filter(|record| {
record.grouped_effect_rows.iter().any(|row| {
opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(row.opcode)
&& compact_event_dispatch_add_building_descriptor_id(row.descriptor_id)
})
})
.map(|record| {
compact_event_dispatch_signature_condition_cluster_from_summary_rows(
compact_event_signature_family_from_notes(&record.notes).as_deref(),
&record.standalone_condition_rows,
)
})
.collect::<Vec<_>>();
add_building_dispatch_strip_signature_condition_clusters.sort_unstable();
add_building_dispatch_strip_signature_condition_clusters.dedup();
let mut mutation_candidate_unknown_descriptor_ids = records let mut mutation_candidate_unknown_descriptor_ids = records
.iter() .iter()
.flat_map(|record| record.grouped_effect_rows.iter()) .flat_map(|record| record.grouped_effect_rows.iter())
@ -10120,6 +10174,18 @@ fn parse_event_runtime_collection_summary_with_tag_width(
"decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = {:?}", "decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = {:?}",
add_building_dispatch_strip_descriptor_labels add_building_dispatch_strip_descriptor_labels
)); ));
control_lane_notes.push(format!(
"Add Building signature families present in the 0x00431b20 dispatch strip = {:?}",
add_building_dispatch_strip_signature_families
));
control_lane_notes.push(format!(
"Add Building condition-tuple families present in the 0x00431b20 dispatch strip = {:?}",
add_building_dispatch_strip_condition_tuple_families
));
control_lane_notes.push(format!(
"Add Building signature/condition clusters present in the 0x00431b20 dispatch strip = {:?}",
add_building_dispatch_strip_signature_condition_clusters
));
if add_building_dispatch_strip_records_with_trigger_kind == 0 { if add_building_dispatch_strip_records_with_trigger_kind == 0 {
control_lane_notes.push( control_lane_notes.push(
"every currently decoded Add Building dispatch-strip row still has null trigger kind, so the missing control-lane mapping remains the blocker above the already-grounded add-building descriptor bridge".to_string(), "every currently decoded Add Building dispatch-strip row still has null trigger kind, so the missing control-lane mapping remains the blocker above the already-grounded add-building descriptor bridge".to_string(),
@ -10157,6 +10223,9 @@ fn parse_event_runtime_collection_summary_with_tag_width(
add_building_dispatch_strip_descriptor_labels, add_building_dispatch_strip_descriptor_labels,
add_building_dispatch_strip_records_with_trigger_kind, add_building_dispatch_strip_records_with_trigger_kind,
add_building_dispatch_strip_records_missing_trigger_kind, add_building_dispatch_strip_records_missing_trigger_kind,
add_building_dispatch_strip_signature_families,
add_building_dispatch_strip_condition_tuple_families,
add_building_dispatch_strip_signature_condition_clusters,
control_lane_notes, control_lane_notes,
records, records,
}); });
@ -10173,6 +10242,40 @@ fn compact_event_dispatch_add_building_descriptor_id(descriptor_id: u32) -> bool
(503..=613).contains(&descriptor_id) (503..=613).contains(&descriptor_id)
} }
fn compact_event_signature_family_from_notes(notes: &[String]) -> Option<String> {
notes.iter().find_map(|note| {
note.strip_prefix("compact signature family = ")
.map(ToString::to_string)
})
}
fn compact_event_dispatch_condition_tuple_family_from_summary_rows(
rows: &[SmpLoadedPackedEventConditionRowSummary],
) -> String {
if rows.is_empty() {
return "[]".to_string();
}
let parts = rows
.iter()
.map(|row| match &row.metric {
Some(metric) => format!("{}:{}:{}", row.raw_condition_id, row.subtype, metric),
None => format!("{}:{}", row.raw_condition_id, row.subtype),
})
.collect::<Vec<_>>();
format!("[{}]", parts.join(","))
}
fn compact_event_dispatch_signature_condition_cluster_from_summary_rows(
signature_family: Option<&str>,
rows: &[SmpLoadedPackedEventConditionRowSummary],
) -> String {
format!(
"{} :: {}",
signature_family.unwrap_or("unknown-signature-family"),
compact_event_dispatch_condition_tuple_family_from_summary_rows(rows)
)
}
fn known_special_condition_label_for_compact_descriptor_id( fn known_special_condition_label_for_compact_descriptor_id(
descriptor_id: u32, descriptor_id: u32,
) -> Option<&'static str> { ) -> Option<&'static str> {
@ -23066,6 +23169,21 @@ mod tests {
.expect("non-direct event runtime collection summary should parse"); .expect("non-direct event runtime collection summary should parse");
assert_eq!(summary.add_building_dispatch_strip_record_indexes, vec![0]); assert_eq!(summary.add_building_dispatch_strip_record_indexes, vec![0]);
assert_eq!(
summary.add_building_dispatch_strip_signature_families,
vec!["nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff".to_string()]
);
assert_eq!(
summary.add_building_dispatch_strip_condition_tuple_families,
vec!["[-1:4]".to_string()]
);
assert_eq!(
summary.add_building_dispatch_strip_signature_condition_clusters,
vec![
"nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff :: [-1:4]"
.to_string()
]
);
assert_eq!( assert_eq!(
summary.add_building_dispatch_strip_descriptor_labels, summary.add_building_dispatch_strip_descriptor_labels,
vec!["Add Building Port01".to_string()] vec!["Add Building Port01".to_string()]
@ -23088,6 +23206,21 @@ mod tests {
"decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = [\"Add Building Port01\"]", "decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = [\"Add Building Port01\"]",
) )
})); }));
assert!(summary.control_lane_notes.iter().any(|line| {
line.contains(
"Add Building signature families present in the 0x00431b20 dispatch strip = [\"nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff\"]",
)
}));
assert!(summary.control_lane_notes.iter().any(|line| {
line.contains(
"Add Building condition-tuple families present in the 0x00431b20 dispatch strip = [\"[-1:4]\"]",
)
}));
assert!(summary.control_lane_notes.iter().any(|line| {
line.contains(
"Add Building signature/condition clusters present in the 0x00431b20 dispatch strip = [\"nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff :: [-1:4]\"]",
)
}));
assert!(summary.control_lane_notes.iter().any(|line| { assert!(summary.control_lane_notes.iter().any(|line| {
line.contains("every currently decoded Add Building dispatch-strip row still has null trigger kind") line.contains("every currently decoded Add Building dispatch-strip row still has null trigger kind")
})); }));
@ -25872,6 +26005,9 @@ mod tests {
add_building_dispatch_strip_descriptor_labels: vec![], add_building_dispatch_strip_descriptor_labels: vec![],
add_building_dispatch_strip_records_with_trigger_kind: 0, add_building_dispatch_strip_records_with_trigger_kind: 0,
add_building_dispatch_strip_records_missing_trigger_kind: 0, add_building_dispatch_strip_records_missing_trigger_kind: 0,
add_building_dispatch_strip_signature_families: vec![],
add_building_dispatch_strip_condition_tuple_families: vec![],
add_building_dispatch_strip_signature_condition_clusters: vec![],
control_lane_notes: vec![], control_lane_notes: vec![],
records: build_unsupported_event_runtime_record_summaries(&[1, 3, 5], "test summary"), records: build_unsupported_event_runtime_record_summaries(&[1, 3, 5], "test summary"),
}); });

View file

@ -301,6 +301,18 @@ Working rule:
`add_building_dispatch_strip_records_missing_trigger_kind` counts, so inspected maps can now `add_building_dispatch_strip_records_missing_trigger_kind` counts, so inspected maps can now
show whether `Add Building` rows are present and still null-trigger without a separate cluster show whether `Add Building` rows are present and still null-trigger without a separate cluster
pass pass
- that add-building subset is structured one layer deeper now too:
the per-map summary and the compact-dispatch cluster/counts reports both surface
add-building signature families, condition-tuple families, and combined
signature/condition clusters, so the remaining trigger-kind/source question can compare exact
compact subfamilies instead of only raw descriptor hits
- the first concrete add-building cluster split is now visible too:
targeted map inspections show `Texas Tea.gmp` carrying a one-row `Port01` cluster on
signature family `nondirect-ge1e-h0001-0007-0000-6d00-0200-p0000-0000-0000-ffff` with
condition family `[7:0]`, while `Alternate USA.gmp` carries repeated three-row
`FarmGrain`/`Logging Camp` clusters on `nondirect-ge34-h0002-0007-0004-73|75|7b|85...` with
condition family `[7:4,42:0]`; that narrows the remaining trigger-kind/source question to a
small set of compact subfamilies rather than a single undifferentiated add-building carrier
- the same probe now narrows the candidate runtime-effect set too: - the same probe now narrows the candidate runtime-effect set too:
it reports which decoded records already carry grouped opcodes in the grounded it reports which decoded records already carry grouped opcodes in the grounded
`0x00431b20` dispatch strip; real `War Effort.gmp` currently narrows that to record indexes `0x00431b20` dispatch strip; real `War Effort.gmp` currently narrows that to record indexes