[board] Update a bunch of methods to take &Piece instead of plain Piece

This commit is contained in:
Eryn Wells 2024-01-21 09:18:16 -08:00
parent f7951d6110
commit 1a907844d6
8 changed files with 20 additions and 16 deletions

View file

@ -66,11 +66,11 @@ impl PieceBitBoards {
self.by_color.bitboard_mut(color)
}
pub(super) fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
pub(super) fn bitboard_for_piece(&self, piece: &Piece) -> &BitBoard {
self.by_color_and_shape.bitboard_for_piece(piece)
}
pub(super) fn bitboard_for_piece_mut(&mut self, piece: Piece) -> &mut BitBoard {
pub(super) fn bitboard_for_piece_mut(&mut self, piece: &Piece) -> &mut BitBoard {
self.by_color_and_shape.bitboard_for_piece_mut(piece)
}
@ -135,15 +135,15 @@ impl ByColor {
}
impl ByColorAndShape {
fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
fn bitboard_for_piece(&self, piece: &Piece) -> &BitBoard {
&self.0[piece.color() as usize][piece.shape() as usize]
}
fn bitboard_for_piece_mut(&mut self, piece: Piece) -> &mut BitBoard {
fn bitboard_for_piece_mut(&mut self, piece: &Piece) -> &mut BitBoard {
&mut self.0[piece.color() as usize][piece.shape() as usize]
}
fn set_square(&mut self, square: Square, piece: Piece) {
fn set_square(&mut self, square: Square, piece: &Piece) {
self.bitboard_for_piece_mut(piece).set_square(square);
}
}

View file

@ -144,7 +144,7 @@ impl Position {
for color in Color::iter() {
for shape in Shape::iter() {
let piece = Piece::new(color, *shape);
if self.pieces.bitboard_for_piece(piece).is_set(sq) {
if self.pieces.bitboard_for_piece(&piece).is_set(sq) {
return Some(PlacedPiece::new(piece, sq));
}
}
@ -176,7 +176,7 @@ impl Position {
fn king_square(&self) -> Square {
self.pieces
.bitboard_for_piece(Piece::king(self.color_to_move))
.bitboard_for_piece(&Piece::king(self.color_to_move))
.occupied_squares()
.next()
.unwrap()
@ -207,6 +207,10 @@ impl Position {
pub(super) fn flags(&self) -> Flags {
self.flags
}
pub(super) fn piece_bitboards(&self) -> &PieceBitBoards {
&self.pieces
}
}
// crate methods
@ -216,7 +220,7 @@ impl Position {
}
pub(crate) fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
self.pieces.bitboard_for_piece(piece)
self.pieces.bitboard_for_piece(&piece)
}
}