#[inline]
pub fn constant_equals(a: &[u8], b: &[u8]) -> bool {
if a.len() != b.len() {
return false;
}
a.iter().zip(b).fold(0u8, |acc, (x, y)| acc | (x ^ y)) == 0
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn matches_only_on_full_equality() {
assert!(constant_equals(b"abc", b"abc"));
assert!(!constant_equals(b"abc", b"abd"));
assert!(!constant_equals(b"abc", b"ab"));
assert!(constant_equals(b"", b""));
}
}