diff --git a/board/src/piece_sets.rs b/board/src/piece_sets.rs index f7435e5..46f0164 100644 --- a/board/src/piece_sets.rs +++ b/board/src/piece_sets.rs @@ -3,10 +3,11 @@ mod bitboards; mod mailbox; +pub(crate) use mailbox::Mailbox; + use bitboards::{ByColor, ByColorAndShape}; use chessfriend_bitboard::BitBoard; use chessfriend_core::{Color, Piece, PlacedPiece, Shape, Square}; -use mailbox::Mailbox; #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum PlacePieceStrategy { @@ -52,7 +53,7 @@ impl PieceSet { for s in Shape::into_iter() { let bitboard = pieces[c as usize][s as usize]; for square in bitboard.occupied_squares() { - mailbox.set(square, Piece::new(c, s)); + mailbox.set(Piece::new(c, s), square); } } } @@ -114,7 +115,7 @@ impl PieceSet { let piece: Piece = piece.into(); self.by_color_and_shape.set_square(square, piece); self.by_color.set_square(square, color); - self.mailbox.set(square, piece); + self.mailbox.set(piece, square); Ok(PlacedPiece::new(piece, square)) } @@ -123,7 +124,7 @@ impl PieceSet { if let Some(piece) = self.mailbox.get(square) { self.by_color_and_shape.clear_square(square, piece.into()); self.by_color.clear_square(square, piece.color()); - self.mailbox.clear(square); + self.mailbox.remove(square); Some(PlacedPiece::new(piece, square)) } else {