impl CorrelationEngine {
pub fn lookup_source_location(
&self,
wasm_address: u64,
line_program_mappings: &[(u64, Location)],
) -> Option<Location> {
line_program_mappings
.iter()
.find(|(addr, _)| *addr == wasm_address)
.map(|(_, loc)| loc.clone())
}
pub fn lookup_wasm_addresses(
&self,
source_line: u32,
line_program_mappings: &[(u64, Location)],
) -> DeepWasmResult<Vec<u64>> {
let addresses: Vec<u64> = line_program_mappings
.iter()
.filter(|(_, loc)| loc.line == source_line)
.map(|(addr, _)| *addr)
.collect();
Ok(addresses)
}
}