diff --git a/src/board.rs b/src/board.rs index 5edaed9..a24ffa8 100644 --- a/src/board.rs +++ b/src/board.rs @@ -213,7 +213,7 @@ impl Rank { #[inline] pub fn mirror(self) -> Self { - unsafe { Self::new_unchecked(7_u8.unchecked_sub(self as u8)) } + unsafe { Self::new_unchecked(!(self as u8)) } } #[inline] @@ -305,7 +305,8 @@ impl Square { #[inline] pub fn mirror(self) -> Self { - Self::from_coords(self.file(), self.rank().mirror()) + let sq = self as u8; + unsafe { Self::new_unchecked(sq & 0b000111 | (!sq & 0b111000)) } } #[inline]