(
diff: ObjectDiffBorrow,
symbol_ref: SymbolRef,
row_index: u32,
diff_config: DiffConfigBorrow,
)
| 189 | } |
| 190 | |
| 191 | fn display_instruction_row( |
| 192 | diff: ObjectDiffBorrow, |
| 193 | symbol_ref: SymbolRef, |
| 194 | row_index: u32, |
| 195 | diff_config: DiffConfigBorrow, |
| 196 | ) -> InstructionDiffRow { |
| 197 | let obj_diff = diff.get::<ResourceObjectDiff>(); |
| 198 | let obj = obj_diff.0.as_ref(); |
| 199 | let obj_diff = &obj_diff.1; |
| 200 | let symbol_display = from_symbol_ref(symbol_ref); |
| 201 | let symbol_diff = if symbol_display.is_mapping_symbol { |
| 202 | obj_diff |
| 203 | .mapping_symbols |
| 204 | .iter() |
| 205 | .find(|s| s.symbol_index == symbol_display.symbol) |
| 206 | .map(|s| &s.symbol_diff) |
| 207 | } else { |
| 208 | obj_diff.symbols.get(symbol_display.symbol) |
| 209 | }; |
| 210 | let Some(row) = symbol_diff.and_then(|sd| sd.instruction_rows.get(row_index as usize)) |
| 211 | else { |
| 212 | return InstructionDiffRow::default(); |
| 213 | }; |
| 214 | let diff_config = diff_config.get::<ResourceDiffConfig>().0.borrow(); |
| 215 | let mut segments = Vec::with_capacity(16); |
| 216 | diff::display::display_row(obj, symbol_display.symbol, row, &diff_config, |segment| { |
| 217 | segments.push(DiffTextSegment::from(segment)); |
| 218 | Ok(()) |
| 219 | }) |
| 220 | .unwrap(); |
| 221 | InstructionDiffRow { segments, diff_kind: InstructionDiffKind::from(row.kind) } |
| 222 | } |
| 223 | |
| 224 | fn symbol_context(diff: ObjectDiffBorrow, symbol_ref: SymbolRef) -> Vec<ContextItem> { |
| 225 | let obj_diff = diff.get::<ResourceObjectDiff>(); |
nothing calls this directly
no test coverage detected