Coverage Report

Created: 2025-11-16 07:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/imara-diff-0.1.8/src/util.rs
Line
Count
Source
1
use crate::intern::Token;
2
3
785M
pub fn common_prefix(file1: &[Token], file2: &[Token]) -> u32 {
4
785M
    let mut off = 0;
5
998M
    for (token1, token2) in file1.iter().zip(file2) {
6
998M
        if token1 != token2 {
7
781M
            break;
8
217M
        }
9
217M
        off += 1;
10
    }
11
785M
    off
12
785M
}
13
14
803M
pub fn common_postfix(file1: &[Token], file2: &[Token]) -> u32 {
15
803M
    let mut off = 0;
16
998M
    for (token1, token2) in file1.iter().rev().zip(file2.iter().rev()) {
17
998M
        if token1 != token2 {
18
799M
            break;
19
199M
        }
20
199M
        off += 1;
21
    }
22
803M
    off
23
803M
}
24
25
4.93M
pub fn common_edges(file1: &[Token], file2: &[Token]) -> (u32, u32) {
26
4.93M
    let prefix = common_prefix(file1, file2);
27
4.93M
    let postfix = common_postfix(&file1[prefix as usize..], &file2[prefix as usize..]);
28
4.93M
    (prefix, postfix)
29
4.93M
}
30
31
227k
pub fn strip_common_prefix(file1: &mut &[Token], file2: &mut &[Token]) -> u32 {
32
227k
    let off = common_prefix(file1, file2);
33
227k
    *file1 = &file1[off as usize..];
34
227k
    *file2 = &file2[off as usize..];
35
227k
    off
36
227k
}
37
38
227k
pub fn strip_common_postfix(file1: &mut &[Token], file2: &mut &[Token]) -> u32 {
39
227k
    let off = common_postfix(file1, file2);
40
227k
    *file1 = &file1[..file1.len() - off as usize];
41
227k
    *file2 = &file2[..file2.len() - off as usize];
42
227k
    off
43
227k
}
44
45
472k
pub fn sqrt(val: usize) -> u32 {
46
472k
    let nbits = (usize::BITS - val.leading_zeros()) / 2;
47
472k
    1 << nbits
48
472k
}