pub(crate) fn tweak(value: u32, mode: u8) -> u32 {
let wrong = match mode % 8 {
0 => value.wrapping_add(1),
1 => value.wrapping_sub(1),
2 => value ^ 1,
3 => !value,
4 => value.rotate_left(1),
5 => value.rotate_right(1),
6 => value.wrapping_add(0x9E37_79B9),
_ => value ^ 0xA5A5_5A5A,
};
if wrong == value {
value ^ 1
} else {
wrong
}
}