Coverage Report

Created: 2026-01-13 06:57

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-bigint-0.5.5/src/uint/split.rs
Line
Count
Source
1
use crate::{Limb, Uint};
2
3
/// Split this number in half, returning its high and low components
4
/// respectively.
5
#[inline]
6
0
pub(crate) const fn split_mixed<const L: usize, const H: usize, const O: usize>(
7
0
    n: &Uint<O>,
8
0
) -> (Uint<H>, Uint<L>) {
9
0
    let top = L + H;
10
0
    let top = if top < O { top } else { O };
11
0
    let mut lo = [Limb::ZERO; L];
12
0
    let mut hi = [Limb::ZERO; H];
13
0
    let mut i = 0;
14
15
0
    while i < top {
16
0
        if i < L {
17
0
            lo[i] = n.limbs[i];
18
0
        } else {
19
0
            hi[i - L] = n.limbs[i];
20
0
        }
21
0
        i += 1;
22
    }
23
24
0
    (Uint { limbs: hi }, Uint { limbs: lo })
25
0
}
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<16, 16, 32>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<24, 24, 48>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 1, 2>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 2, 3>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 3, 4>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 4, 5>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 5, 6>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 6, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 7, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 8, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 9, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 10, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 11, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 12, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 13, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 14, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<1, 15, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<28, 28, 56>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<32, 32, 64>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<33, 33, 66>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<34, 34, 68>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 2, 4>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 1, 3>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 3, 5>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 4, 6>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 5, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 6, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 7, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 8, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 9, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 10, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 11, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 12, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 13, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<2, 14, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<48, 48, 96>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 3, 6>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 1, 4>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 2, 5>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 4, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 5, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 6, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 7, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 8, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 9, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 10, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 11, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 12, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<3, 13, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<64, 64, 128>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 4, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 1, 5>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 2, 6>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 3, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 5, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 6, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 7, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 8, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 9, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 10, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 11, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<4, 12, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 5, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 1, 6>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 2, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 3, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 4, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 6, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 7, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 8, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 9, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 10, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<5, 11, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 6, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 1, 7>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 2, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 3, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 4, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 5, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 7, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 8, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 9, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<6, 10, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 7, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 1, 8>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 2, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 3, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 4, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 5, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 6, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 8, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<7, 9, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<128, 128, 256>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 8, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 1, 9>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 2, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 3, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 4, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 5, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 6, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<8, 7, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 1, 10>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 2, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 3, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 4, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 5, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 6, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<9, 7, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 10, 20>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 1, 11>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 2, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 3, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 4, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 5, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<10, 6, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<11, 1, 12>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<11, 2, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<11, 3, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<11, 4, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<11, 5, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<12, 12, 24>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<12, 1, 13>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<12, 2, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<12, 3, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<12, 4, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<13, 1, 14>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<13, 2, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<13, 3, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<14, 14, 28>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<14, 1, 15>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<14, 2, 16>
Unexecuted instantiation: crypto_bigint::uint::split::split_mixed::<15, 1, 16>
26
27
#[cfg(test)]
28
mod tests {
29
    use crate::{U128, U64};
30
31
    #[test]
32
    fn split() {
33
        let (hi, lo) = U128::from_be_hex("00112233445566778899aabbccddeeff").split();
34
        assert_eq!(hi, U64::from_u64(0x0011223344556677));
35
        assert_eq!(lo, U64::from_u64(0x8899aabbccddeeff));
36
    }
37
}