(
diff: ObjectDiffBorrow,
symbol_ref: SymbolRef,
row_index: u32,
diff_config: DiffConfigBorrow,
)
| 244 | } |
| 245 | |
| 246 | fn instruction_context( |
| 247 | diff: ObjectDiffBorrow, |
| 248 | symbol_ref: SymbolRef, |
| 249 | row_index: u32, |
| 250 | diff_config: DiffConfigBorrow, |
| 251 | ) -> Vec<ContextItem> { |
| 252 | let obj_diff = diff.get::<ResourceObjectDiff>(); |
| 253 | let obj = obj_diff.0.as_ref(); |
| 254 | let obj_diff = &obj_diff.1; |
| 255 | let symbol_display = from_symbol_ref(symbol_ref); |
| 256 | let symbol_diff = if symbol_display.is_mapping_symbol { |
| 257 | obj_diff |
| 258 | .mapping_symbols |
| 259 | .iter() |
| 260 | .find(|s| s.symbol_index == symbol_display.symbol) |
| 261 | .map(|s| &s.symbol_diff) |
| 262 | } else { |
| 263 | obj_diff.symbols.get(symbol_display.symbol) |
| 264 | }; |
| 265 | let Some(ins_ref) = symbol_diff |
| 266 | .and_then(|sd| sd.instruction_rows.get(row_index as usize)) |
| 267 | .and_then(|row| row.ins_ref) |
| 268 | else { |
| 269 | return Vec::new(); |
| 270 | }; |
| 271 | let diff_config = diff_config.get::<ResourceDiffConfig>().0.borrow(); |
| 272 | let Some(resolved) = obj.resolve_instruction_ref(symbol_display.symbol, ins_ref) else { |
| 273 | return vec![ContextItem::Copy(ContextItemCopy { |
| 274 | value: "Failed to resolve instruction".to_string(), |
| 275 | label: Some("error".to_string()), |
| 276 | copy_string: None, |
| 277 | })]; |
| 278 | }; |
| 279 | let ins = match obj.arch.process_instruction(resolved, &diff_config) { |
| 280 | Ok(ins) => ins, |
| 281 | Err(e) => { |
| 282 | return vec![ContextItem::Copy(ContextItemCopy { |
| 283 | value: e.to_string(), |
| 284 | label: Some("error".to_string()), |
| 285 | copy_string: None, |
| 286 | })]; |
| 287 | } |
| 288 | }; |
| 289 | diff::display::instruction_context(obj, resolved, &ins, &diff_config) |
| 290 | .into_iter() |
| 291 | .map(ContextItem::from) |
| 292 | .collect() |
| 293 | } |
| 294 | |
| 295 | fn instruction_hover( |
| 296 | diff: ObjectDiffBorrow, |
nothing calls this directly
no test coverage detected