MCPcopy Create free account
hub / github.com/encounter/objdiff / new

Method new

objdiff-gui/src/views/diff.rs:43–64  ·  view source on GitHub ↗
(
        view: View,
        status: &'a BuildStatus,
        obj: Option<&'a (Object, ObjectDiff)>,
        selected_symbol: Option<&SymbolRefByName>,
    )

Source from the content-addressed store, hash-verified

41
42impl<'a> DiffColumnContext<'a> {
43 pub fn new(
44 view: View,
45 status: &'a BuildStatus,
46 obj: Option<&'a (Object, ObjectDiff)>,
47 selected_symbol: Option<&SymbolRefByName>,
48 ) -> Self {
49 let selected_symbol_idx = match view {
50 View::SymbolDiff => None,
51 View::FunctionDiff | View::DataDiff | View::ExtabDiff => match (obj, selected_symbol) {
52 (Some(obj), Some(s)) => obj.0.symbol_by_name(&s.symbol_name),
53 _ => None,
54 },
55 };
56 let symbol = match (obj, selected_symbol_idx) {
57 (Some((obj, obj_diff)), Some(symbol_ref)) => {
58 let symbol = &obj.symbols[symbol_ref];
59 Some((symbol, &obj_diff.symbols[symbol_ref], symbol_ref))
60 }
61 _ => None,
62 };
63 Self { status, obj, symbol }
64 }
65
66 #[inline]
67 pub fn has_symbol(&self) -> bool { self.symbol.is_some() }

Callers

nothing calls this directly

Calls 1

symbol_by_nameMethod · 0.80

Tested by

no test coverage detected