From 57b78880f2a6a6363947861f9633754fc6f9c41c Mon Sep 17 00:00:00 2001 From: Paul-Nicolas Madelaine Date: Sat, 29 Nov 2025 14:12:20 +0100 Subject: [PATCH] misc bitboard implementation --- src/bitboard.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/bitboard.rs b/src/bitboard.rs index 3ea56da..7639929 100644 --- a/src/bitboard.rs +++ b/src/bitboard.rs @@ -157,18 +157,6 @@ impl Iterator for Bitboard { (len, Some(len)) } #[inline] - fn for_each(self, mut f: F) - where - Self: Sized, - F: FnMut(Self::Item), - { - let mut mask = self.0; - while mask != 0 { - f(unsafe { Square::new_unchecked(mask.trailing_zeros() as u8) }); - mask &= mask.wrapping_sub(1); - } - } - #[inline] fn fold(self, init: B, mut f: F) -> B where Self: Sized, @@ -184,6 +172,14 @@ impl Iterator for Bitboard { } acc } + #[inline] + fn for_each(self, mut f: F) + where + Self: Sized, + F: FnMut(Self::Item), + { + self.fold((), |_, square| f(square)); + } } impl core::iter::FusedIterator for Bitboard {} impl core::iter::ExactSizeIterator for Bitboard {