diff --git a/src/lib.rs b/src/lib.rs index 69650c1..86b123c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -108,13 +108,14 @@ impl core::iter::Iterator for KeySetIter { type Item = u8; fn next(&mut self) -> Option { - let next_shift = self.key_set.0.trailing_zeros() as u8 + 1; + let next_shift = self.key_set.0.trailing_zeros() as u8; if next_shift >= 128 { return None; } self.key_set.0 >>= next_shift; - self.shift += next_shift; + self.key_set.0 >>= 1; + self.shift += next_shift + 1; Some(self.shift - 1) }