Structure peer-site selector trace candidates
This commit is contained in:
parent
0242fb85f8
commit
3d78123e28
2 changed files with 35 additions and 0 deletions
|
|
@ -3468,6 +3468,11 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
|
||||||
pub placed_structure_record_body_present: bool,
|
pub placed_structure_record_body_present: bool,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub infrastructure_asset_side_buffer_present: bool,
|
pub infrastructure_asset_side_buffer_present: bool,
|
||||||
|
pub peer_site_selector_candidate_owner_strip: String,
|
||||||
|
pub peer_site_selector_candidate_persisted_tag_hex: String,
|
||||||
|
pub peer_site_selector_candidate_selector_lane: String,
|
||||||
|
#[serde(default)]
|
||||||
|
pub peer_site_selector_candidate_helper_linkage: Vec<String>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub atlas_candidate_consumers: Vec<String>,
|
pub atlas_candidate_consumers: Vec<String>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
|
@ -4055,6 +4060,14 @@ fn build_periodic_company_service_trace_report(
|
||||||
analysis.placed_structure_dynamic_side_buffer.is_some();
|
analysis.placed_structure_dynamic_side_buffer.is_some();
|
||||||
let world_issue_37_present = analysis.world_issue_37.is_some();
|
let world_issue_37_present = analysis.world_issue_37.is_some();
|
||||||
let world_finance_neighborhood_present = analysis.world_finance_neighborhood.is_some();
|
let world_finance_neighborhood_present = analysis.world_finance_neighborhood.is_some();
|
||||||
|
let peer_site_selector_candidate_owner_strip =
|
||||||
|
"0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70".to_string();
|
||||||
|
let peer_site_selector_candidate_persisted_tag_hex = "0x5dc1".to_string();
|
||||||
|
let peer_site_selector_candidate_selector_lane = "[owner+0x23e]".to_string();
|
||||||
|
let peer_site_selector_candidate_helper_linkage = vec![
|
||||||
|
"0x0040ceab -> 0x0045c150".to_string(),
|
||||||
|
"0x0040d1a1 -> 0x0045c310".to_string(),
|
||||||
|
];
|
||||||
let atlas_candidate_consumers = vec![
|
let atlas_candidate_consumers = vec![
|
||||||
"0x004019e0 periodic company outer service owner".to_string(),
|
"0x004019e0 periodic company outer service owner".to_string(),
|
||||||
"0x00406050 city-connection bonus/news owner".to_string(),
|
"0x00406050 city-connection bonus/news owner".to_string(),
|
||||||
|
|
@ -4301,6 +4314,10 @@ fn build_periodic_company_service_trace_report(
|
||||||
region_record_body_present,
|
region_record_body_present,
|
||||||
placed_structure_record_body_present,
|
placed_structure_record_body_present,
|
||||||
infrastructure_asset_side_buffer_present,
|
infrastructure_asset_side_buffer_present,
|
||||||
|
peer_site_selector_candidate_owner_strip,
|
||||||
|
peer_site_selector_candidate_persisted_tag_hex,
|
||||||
|
peer_site_selector_candidate_selector_lane,
|
||||||
|
peer_site_selector_candidate_helper_linkage,
|
||||||
atlas_candidate_consumers,
|
atlas_candidate_consumers,
|
||||||
known_bridge_helpers,
|
known_bridge_helpers,
|
||||||
next_owner_questions,
|
next_owner_questions,
|
||||||
|
|
@ -25954,6 +25971,19 @@ mod tests {
|
||||||
assert_eq!(trace.known_bridge_helpers.len(), 38);
|
assert_eq!(trace.known_bridge_helpers.len(), 38);
|
||||||
assert_eq!(trace.next_owner_questions.len(), 4);
|
assert_eq!(trace.next_owner_questions.len(), 4);
|
||||||
assert_eq!(trace.companies.len(), 1);
|
assert_eq!(trace.companies.len(), 1);
|
||||||
|
assert_eq!(
|
||||||
|
trace.peer_site_selector_candidate_owner_strip,
|
||||||
|
"0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70"
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
trace.peer_site_selector_candidate_persisted_tag_hex,
|
||||||
|
"0x5dc1"
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
trace.peer_site_selector_candidate_selector_lane,
|
||||||
|
"[owner+0x23e]"
|
||||||
|
);
|
||||||
|
assert_eq!(trace.peer_site_selector_candidate_helper_linkage.len(), 2);
|
||||||
assert!(trace.atlas_candidate_consumers.iter().any(|line| {
|
assert!(trace.atlas_candidate_consumers.iter().any(|line| {
|
||||||
line.contains("0x00420030 / 0x00420280")
|
line.contains("0x00420030 / 0x00420280")
|
||||||
&& line.contains("0x006cec20")
|
&& line.contains("0x006cec20")
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,11 @@ Working rule:
|
||||||
`0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` consume the resulting selector, with the
|
`0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50` consume the resulting selector, with the
|
||||||
current first target being the save-backed
|
current first target being the save-backed
|
||||||
`0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100` family
|
`0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100` family
|
||||||
|
- use the structured periodic-company trace candidate fields now checked into
|
||||||
|
`inspect-periodic-company-service-trace`: owner strip
|
||||||
|
`0x0045c150 -> 0x0045c310 -> 0x0045c36e -> 0x00456100 -> 0x00455b70`, persisted tag
|
||||||
|
`0x5dc1`, selector lane `[owner+0x23e]`, and helper linkage
|
||||||
|
`0x0040ceab -> 0x0045c150` / `0x0040d1a1 -> 0x0045c310`
|
||||||
- decide whether the direct `0x0040ceab / 0x0040d1a1` linkage is enough to treat that
|
- decide whether the direct `0x0040ceab / 0x0040d1a1` linkage is enough to treat that
|
||||||
save-backed owner family as the same class-0 site family consumed by
|
save-backed owner family as the same class-0 site family consumed by
|
||||||
`0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50`, or whether one more helper-field bridge
|
`0x00420030 / 0x00420280 / 0x0047efe0 / 0x0047fd50`, or whether one more helper-field bridge
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue