diff --git a/crates/rrt-runtime/src/import.rs b/crates/rrt-runtime/src/import.rs index b144a27..853d2aa 100644 --- a/crates/rrt-runtime/src/import.rs +++ b/crates/rrt-runtime/src/import.rs @@ -6599,6 +6599,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![ crate::SmpLoadedPackedEventRecordSummary { record_index: 0, @@ -7612,6 +7616,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -7748,6 +7756,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -7862,6 +7874,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![ synthetic_packed_record( 0, @@ -8002,6 +8018,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![ synthetic_packed_record( 0, @@ -8103,6 +8123,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -8272,6 +8296,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![ crate::SmpLoadedPackedEventRecordSummary { record_index: 0, @@ -8531,6 +8559,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -8625,6 +8657,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -8743,6 +8779,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -8834,6 +8874,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 8, @@ -8928,6 +8972,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 9, @@ -9035,6 +9083,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 31, @@ -9158,6 +9210,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 32, @@ -9252,6 +9308,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 33, @@ -9423,6 +9483,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 33, @@ -9539,6 +9603,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 34, @@ -9632,6 +9700,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 35, @@ -9725,6 +9797,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 41, @@ -9892,6 +9968,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 36, @@ -10004,6 +10084,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 37, @@ -10095,6 +10179,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 35, @@ -10196,6 +10284,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 38, @@ -10306,6 +10398,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 39, @@ -10424,6 +10520,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 40, @@ -10531,6 +10631,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 41, @@ -10624,6 +10728,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 36, @@ -10787,6 +10895,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 9, @@ -10960,6 +11072,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 11, @@ -11081,6 +11197,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 12, @@ -11183,6 +11303,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 13, @@ -11312,6 +11436,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 13, @@ -11435,6 +11563,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 18, @@ -11548,6 +11680,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 19, @@ -11657,6 +11793,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 14, @@ -11780,6 +11920,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 16, @@ -11888,6 +12032,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 18, @@ -11978,6 +12126,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 52, @@ -12073,6 +12225,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 21, @@ -12173,6 +12329,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 22, @@ -12273,6 +12433,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 23, @@ -12389,6 +12553,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 24, @@ -12496,6 +12664,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 29, @@ -12650,6 +12822,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 27, @@ -12803,6 +12979,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![ crate::SmpLoadedPackedEventRecordSummary { record_index: 0, @@ -13347,6 +13527,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 71, @@ -13545,6 +13729,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 72, @@ -13688,6 +13876,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 73, @@ -13830,6 +14022,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 74, @@ -13973,6 +14169,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 25, @@ -14100,6 +14300,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 26, @@ -14302,6 +14506,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 19, @@ -14412,6 +14620,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 20, @@ -14524,6 +14736,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 24, @@ -14707,6 +14923,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 21, @@ -14873,6 +15093,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 22, @@ -14980,6 +15204,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 23, @@ -15120,6 +15348,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 25, @@ -15248,6 +15480,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 17, @@ -15450,6 +15686,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, @@ -15662,6 +15902,10 @@ mod tests { nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], control_lane_notes: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, records: vec![crate::SmpLoadedPackedEventRecordSummary { record_index: 0, live_entry_id: 7, diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index cc3fc62..dbb17ff 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -3980,6 +3980,14 @@ pub struct SmpLoadedEventRuntimeCollectionSummary { #[serde(default)] pub trigger_kinds_present: Vec, #[serde(default)] + pub add_building_dispatch_strip_record_indexes: Vec, + #[serde(default)] + pub add_building_dispatch_strip_descriptor_labels: Vec, + #[serde(default)] + pub add_building_dispatch_strip_records_with_trigger_kind: usize, + #[serde(default)] + pub add_building_dispatch_strip_records_missing_trigger_kind: usize, + #[serde(default)] pub control_lane_notes: Vec, #[serde(default)] pub records: Vec, @@ -9928,6 +9936,38 @@ fn parse_event_runtime_collection_summary_with_tag_width( .collect::>(); opcode_0x08_record_indexes.sort_unstable(); opcode_0x08_record_indexes.dedup(); + let mut add_building_dispatch_strip_record_indexes = 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| record.record_index) + .collect::>(); + add_building_dispatch_strip_record_indexes.sort_unstable(); + add_building_dispatch_strip_record_indexes.dedup(); + let add_building_dispatch_strip_records_with_trigger_kind = records + .iter() + .filter(|record| { + record.trigger_kind.is_some() + && 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) + }) + }) + .count(); + let add_building_dispatch_strip_records_missing_trigger_kind = records + .iter() + .filter(|record| { + record.trigger_kind.is_none() + && 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) + }) + }) + .count(); let mut mutation_candidate_descriptor_labels = records .iter() .flat_map(|record| record.grouped_effect_rows.iter()) @@ -9938,6 +9978,17 @@ fn parse_event_runtime_collection_summary_with_tag_width( .collect::>(); mutation_candidate_descriptor_labels.sort_unstable(); mutation_candidate_descriptor_labels.dedup(); + let mut add_building_dispatch_strip_descriptor_labels = records + .iter() + .flat_map(|record| record.grouped_effect_rows.iter()) + .filter(|row| { + opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(row.opcode) + && compact_event_dispatch_add_building_descriptor_id(row.descriptor_id) + }) + .filter_map(|row| row.descriptor_label.clone()) + .collect::>(); + add_building_dispatch_strip_descriptor_labels.sort_unstable(); + add_building_dispatch_strip_descriptor_labels.dedup(); let mut mutation_candidate_unknown_descriptor_ids = records .iter() .flat_map(|record| record.grouped_effect_rows.iter()) @@ -10060,6 +10111,21 @@ fn parse_event_runtime_collection_summary_with_tag_width( "checked-in function-map evidence currently grounds opcode 0x08 on the 0x00426d60 company_deactivate_and_clear_chairman_share_links branch".to_string(), ); } + if !add_building_dispatch_strip_record_indexes.is_empty() { + control_lane_notes.push(format!( + "records with Add Building descriptors in the 0x00431b20 dispatch strip = {:?}", + add_building_dispatch_strip_record_indexes + )); + control_lane_notes.push(format!( + "decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = {:?}", + add_building_dispatch_strip_descriptor_labels + )); + if add_building_dispatch_strip_records_with_trigger_kind == 0 { + 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(), + ); + } + } } return Some(SmpLoadedEventRuntimeCollectionSummary { @@ -10087,6 +10153,10 @@ fn parse_event_runtime_collection_summary_with_tag_width( nondirect_compact_record_count, nondirect_compact_records_missing_trigger_kind, trigger_kinds_present, + add_building_dispatch_strip_record_indexes, + add_building_dispatch_strip_descriptor_labels, + add_building_dispatch_strip_records_with_trigger_kind, + add_building_dispatch_strip_records_missing_trigger_kind, control_lane_notes, records, }); @@ -10099,6 +10169,10 @@ fn opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(opcode: u8) matches!(opcode, 0x04..=0x08 | 0x0d | 0x10..=0x13 | 0x16) } +fn compact_event_dispatch_add_building_descriptor_id(descriptor_id: u32) -> bool { + (503..=613).contains(&descriptor_id) +} + fn known_special_condition_label_for_compact_descriptor_id( descriptor_id: u32, ) -> Option<&'static str> { @@ -22669,6 +22743,16 @@ mod tests { assert_eq!(summary.records_with_trigger_kind, 0); assert_eq!(summary.records_missing_trigger_kind, 3); assert_eq!(summary.nondirect_compact_record_count, 0); + assert!( + summary + .add_building_dispatch_strip_record_indexes + .is_empty() + ); + assert!( + summary + .add_building_dispatch_strip_descriptor_labels + .is_empty() + ); assert_eq!(summary.records.len(), 3); assert_eq!(summary.records[0].decode_status, "unsupported_framing"); } @@ -22707,6 +22791,16 @@ mod tests { assert_eq!(summary.records_with_trigger_kind, 0); assert_eq!(summary.records_missing_trigger_kind, 3); assert_eq!(summary.nondirect_compact_record_count, 0); + assert!( + summary + .add_building_dispatch_strip_record_indexes + .is_empty() + ); + assert!( + summary + .add_building_dispatch_strip_descriptor_labels + .is_empty() + ); assert_eq!(summary.records.len(), 3); assert_eq!(summary.records[0].decode_status, "unsupported_framing"); } @@ -22805,6 +22899,16 @@ mod tests { assert_eq!(summary.records_missing_trigger_kind, 1); assert_eq!(summary.nondirect_compact_record_count, 1); assert_eq!(summary.nondirect_compact_records_missing_trigger_kind, 1); + assert!( + summary + .add_building_dispatch_strip_record_indexes + .is_empty() + ); + assert!( + summary + .add_building_dispatch_strip_descriptor_labels + .is_empty() + ); assert!(summary.control_lane_notes.iter().any(|line| { line.contains("all compact non-direct rows currently decode row bodies only") })); @@ -22913,6 +23017,82 @@ mod tests { ); } + #[test] + fn summarizes_add_building_dispatch_strip_rows_from_nondirect_compact_records() { + let mut bytes = Vec::new(); + bytes.extend_from_slice(&(EVENT_RUNTIME_COLLECTION_METADATA_TAG as u32).to_le_bytes()); + bytes.extend_from_slice(&EVENT_RUNTIME_COLLECTION_PACKED_STATE_VERSION.to_le_bytes()); + + let header_words = [ + 0u32, 6, 10, 20, 30, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 23, 0, 0, 0, + ]; + for word in header_words { + bytes.extend_from_slice(&word.to_le_bytes()); + } + + bytes.extend_from_slice(&[0u8; 18]); + bytes.extend_from_slice(&(EVENT_RUNTIME_COLLECTION_RECORDS_TAG as u32).to_le_bytes()); + bytes.extend_from_slice(&(PACKED_EVENT_REAL_CONDITION_MARKER as u32).to_le_bytes()); + bytes.extend_from_slice(&1u32.to_le_bytes()); + bytes.extend_from_slice(&u32::MAX.to_le_bytes()); + bytes.push(4); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.push(2); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&(PACKED_EVENT_REAL_GROUPED_EFFECT_MARKER as u32).to_le_bytes()); + bytes.extend_from_slice(&1u32.to_le_bytes()); + bytes.extend_from_slice(&548u32.to_le_bytes()); + bytes.extend_from_slice(&1u32.to_le_bytes()); + bytes.push(8); + bytes.extend_from_slice(&u32::MAX.to_le_bytes()); + bytes.extend_from_slice(&u32::MAX.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&[0u8; 12]); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&0u32.to_le_bytes()); + bytes.extend_from_slice(&(PACKED_EVENT_REAL_RECORD_TERMINATOR_MARKER as u32).to_le_bytes()); + bytes.extend_from_slice(&(EVENT_RUNTIME_COLLECTION_CLOSE_TAG as u32).to_le_bytes()); + + let report = inspect_smp_bytes(&bytes); + let summary = report + .event_runtime_collection_summary + .as_ref() + .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_descriptor_labels, + vec!["Add Building Port01".to_string()] + ); + assert_eq!( + summary.add_building_dispatch_strip_records_with_trigger_kind, + 0 + ); + assert_eq!( + summary.add_building_dispatch_strip_records_missing_trigger_kind, + 1 + ); + assert!(summary.control_lane_notes.iter().any(|line| { + line.contains( + "records with Add Building descriptors in the 0x00431b20 dispatch strip = [0]", + ) + })); + assert!(summary.control_lane_notes.iter().any(|line| { + line.contains( + "decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = [\"Add Building Port01\"]", + ) + })); + assert!(summary.control_lane_notes.iter().any(|line| { + line.contains("every currently decoded Add Building dispatch-strip row still has null trigger kind") + })); + } + fn encode_len_prefixed_string(text: &str) -> Vec { let mut bytes = Vec::with_capacity(1 + text.len()); bytes.push(text.len() as u8); @@ -25688,6 +25868,10 @@ mod tests { nondirect_compact_record_count: 0, nondirect_compact_records_missing_trigger_kind: 0, trigger_kinds_present: vec![], + add_building_dispatch_strip_record_indexes: vec![], + add_building_dispatch_strip_descriptor_labels: vec![], + add_building_dispatch_strip_records_with_trigger_kind: 0, + add_building_dispatch_strip_records_missing_trigger_kind: 0, control_lane_notes: vec![], records: build_unsupported_event_runtime_record_summaries(&[1, 3, 5], "test summary"), }); diff --git a/docs/rehost-queue.md b/docs/rehost-queue.md index 3f388ac..5b23f3d 100644 --- a/docs/rehost-queue.md +++ b/docs/rehost-queue.md @@ -294,6 +294,13 @@ Working rule: `control_lane_notes`; real `War Effort.gmp` output currently shows `24/24` compact non-direct rows still missing decoded trigger kind, which narrows the next owner question to the non-row-body control lane rather than the compact row framing itself + - the same per-map summary now surfaces the add-building subset directly too: + it reports `add_building_dispatch_strip_record_indexes`, + `add_building_dispatch_strip_descriptor_labels`, and the matching + `add_building_dispatch_strip_records_with_trigger_kind` / + `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 + pass - the same probe now narrows the candidate runtime-effect set too: 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