MCPcopy Index your code
hub / github.com/encounter/objdiff / display_instruction_row

Method display_instruction_row

objdiff-wasm/src/api.rs:191–222  ·  view source on GitHub ↗
(
        diff: ObjectDiffBorrow,
        symbol_ref: SymbolRef,
        row_index: u32,
        diff_config: DiffConfigBorrow,
    )

Source from the content-addressed store, hash-verified

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>();

Callers

nothing calls this directly

Calls 4

from_symbol_refFunction · 0.85
display_rowFunction · 0.85
getMethod · 0.80
pushMethod · 0.80

Tested by

no test coverage detected