diff --git a/board/src/position/builders/move_builder.rs b/board/src/position/builders/move_builder.rs index e899793..97802c1 100644 --- a/board/src/position/builders/move_builder.rs +++ b/board/src/position/builders/move_builder.rs @@ -156,7 +156,7 @@ impl<'p> Builder<'p, ValidatedMove> { if let Some(promotion) = promotion { pieces.remove_piece(&moving_piece); let _ = pieces - .place_piece(PlacedPiece::new(Piece::new(player, promotion), to_square)); + .place_piece(&PlacedPiece::new(Piece::new(player, promotion), to_square)); } else { pieces.move_piece(moving_piece.piece(), from_square, to_square); } diff --git a/board/src/position/piece_sets.rs b/board/src/position/piece_sets.rs index 07a1f03..cc01eda 100644 --- a/board/src/position/piece_sets.rs +++ b/board/src/position/piece_sets.rs @@ -74,13 +74,13 @@ impl PieceBitBoards { self.by_color_and_shape.bitboard_for_piece_mut(piece) } - pub(super) fn place_piece(&mut self, piece: PlacedPiece) -> Result<(), PlacePieceError> { + pub(super) fn place_piece(&mut self, piece: &PlacedPiece) -> Result<(), PlacePieceError> { self.place_piece_with_strategy(piece, Default::default()) } pub(super) fn place_piece_with_strategy( &mut self, - piece: PlacedPiece, + piece: &PlacedPiece, strategy: PlacePieceStrategy, ) -> Result<(), PlacePieceError> { let color = piece.color(); @@ -124,7 +124,7 @@ impl FromIterator for PieceBitBoards { let mut pieces = Self::default(); for piece in iter { - let _ = pieces.place_piece(piece); + let _ = pieces.place_piece(&piece); } pieces