Possibly faster by avoiding (some) bounds checks: `for (i, needle_byte) in needle.iter().enumerate()`. Or maybe even

```rust
let iter = needle.iter().zip(haystack.slice_from(self.position).iter());

for (i, (needle_byte,haystack_byte)) in iter.enumerate() { ... }
```