Skip to main content

diff_stats

Function diff_stats 

Source
pub fn diff_stats(lines: &[DiffLine]) -> DiffStats
Expand description

Counts for a diff header.

Examples found in repository?
examples/parity.rs (line 15)
9fn main() {
10    let mut args = std::env::args().skip(1);
11    let before = args.next().unwrap_or_default();
12    let after = args.next().unwrap_or_default();
13
14    let lines = diff_lines(&before, &after);
15    let stats = diff_stats(&lines);
16
17    // Hand-rolled JSON: serde would pull `serde-wasm-bindgen` into a crate whose
18    // whole point is having no dependencies, and the shape is fixed anyway.
19    print!("{{\"added\":{},\"removed\":{},\"identical\":{},\"lines\":[", stats.added, stats.removed, stats.identical);
20    for (i, line) in lines.iter().enumerate() {
21        if i > 0 {
22            print!(",");
23        }
24        print!(
25            "{{\"kind\":{},\"text\":{},\"oldLine\":{},\"newLine\":{}}}",
26            json_str(line.kind.as_str()),
27            json_str(&line.text),
28            line.old_line.map(|n| n.to_string()).unwrap_or_else(|| "null".into()),
29            line.new_line.map(|n| n.to_string()).unwrap_or_else(|| "null".into()),
30        );
31    }
32    println!("]}}");
33}