1
0
Fork 0

new square constructors

This commit is contained in:
Paul-Nicolas Madelaine 2025-11-05 23:37:02 +01:00
parent de321719f4
commit ad1c4c57ad
7 changed files with 59 additions and 44 deletions

View file

@ -22,7 +22,7 @@ impl Bitboard {
let mask = self.0;
match mask {
0 => None,
_ => Some(unsafe { Square::transmute(mask.trailing_zeros() as u8) }),
_ => Some(unsafe { Square::new_unchecked(mask.trailing_zeros() as u8) }),
}
}
@ -31,9 +31,9 @@ impl Bitboard {
let mask = self.0;
match mask {
0 => None,
_ => {
Some(unsafe { Square::transmute(63_u8.unchecked_sub(mask.leading_zeros() as u8)) })
}
_ => Some(unsafe {
Square::new_unchecked(63_u8.unchecked_sub(mask.leading_zeros() as u8))
}),
}
}
@ -42,7 +42,7 @@ impl Bitboard {
let Self(ref mut mask) = self;
let square = match mask {
0 => None,
_ => Some(unsafe { Square::transmute(mask.trailing_zeros() as u8) }),
_ => Some(unsafe { Square::new_unchecked(mask.trailing_zeros() as u8) }),
};
*mask &= mask.wrapping_sub(1);
square
@ -145,7 +145,7 @@ impl Iterator for Bitboard {
{
let mut mask = self.0;
while mask != 0 {
f(unsafe { Square::transmute(mask.trailing_zeros() as u8) });
f(unsafe { Square::new_unchecked(mask.trailing_zeros() as u8) });
mask &= mask.wrapping_sub(1);
}
}
@ -159,7 +159,7 @@ impl Iterator for Bitboard {
let mut acc = init;
while mask != 0 {
acc = f(acc, unsafe {
Square::transmute(mask.trailing_zeros() as u8)
Square::new_unchecked(mask.trailing_zeros() as u8)
});
mask &= mask.wrapping_sub(1);
}