From fcd4fbadbc2b161d74c321d12be7706b23297081 Mon Sep 17 00:00:00 2001 From: Zac Wilson Date: Mon, 22 Dec 2025 17:36:05 +0000 Subject: [PATCH] Fix KeySetIter panic when only leading bit is set --- src/lib.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) }