What it does
Suggest to replace values.iter().any(|&x| x == 10) with values.contains(&10) as shown in the example for x being u8 or an i8. Contains uses specialization, thus gains 8-10x in performance.
The generated assembly is significantly different too (see here).
Advantage
Drawbacks
Example
#[inline(never)]
pub fn has_any(values: &[u8]) -> bool {
values.iter().any(|&x| x == 10)
}
Could be written as:
#[inline(never)]
pub fn ref_zero(values: &[u8]) -> bool {
values.contains(&10)
}