#[inline(always)]
pub const fn distance_1(checksum1: [u8; 1], checksum2: [u8; 1]) -> u32 {
if checksum1[0] != checksum2[0] {
1
} else {
0
}
}
#[inline(always)]
pub const fn distance_3(checksum1: [u8; 3], checksum2: [u8; 3]) -> u32 {
let mut sum = 0;
let mut i = 0;
while i < 3 {
sum += if checksum1[i] != checksum2[i] { 1 } else { 0 };
i += 1;
}
sum
}
#[cfg(test)]
pub(crate) mod generic {
#[inline]
pub fn distance<const N: usize>(checksum1: [u8; N], checksum2: [u8; N]) -> u32 {
let mut sum = 0;
for (&x, &y) in checksum1.iter().zip(checksum2.iter()) {
sum += if x != y { 1 } else { 0 };
}
sum
}
}
mod tests;