calltrace 0.1.12

A service to structure your call traces (call stacks)
Documentation
use calltrace::calls::CallStacks;
use calltrace::quote;
use calltrace::differ;
use anyhow::Result;
fn main() ->Result<()> {
    let base_file = "test_data/No_LeakRefLeakStacks.txt";
    let target_file = "test_data/RefLeakStacks.txt";
    let m1 = quote::TrimExactMatch::new("AddRef:".to_string());
    let m2 = quote::TrimExactMatch::new("RelRef:".to_string());
    let e1 = quote::TrimExactMatch::new("\n".to_string());
    let callstack_begin:Vec<&dyn quote::MatchQuote> = vec![&m1, &m2];
    let callstack_end:Vec<&dyn quote::MatchQuote> = vec![&e1];
    let cs_base = CallStacks::from_file(base_file, &callstack_begin, &callstack_end)?;
    let cs_target = CallStacks::from_file(target_file, &callstack_begin, &callstack_end)?;
    
    let diff = differ::Differ::not_in(&cs_target, &cs_base);

    println!("size = {}:", diff.map.len());
    println!("{}", diff);
    Ok(())
}