[board] Convert &BitBoard to BitBoard for several Board methods
I don't think passing by reference buys much for BitBoard. So simplify the logic and borrowing semantics to make these easier to work with.
This commit is contained in:
parent
7ec72035ae
commit
30188d478e
1 changed files with 13 additions and 10 deletions
|
@ -111,23 +111,26 @@ impl Board {
|
|||
/// A [`BitBoard`] representing the set of squares containing a piece. This
|
||||
/// set is the inverse of [`Board::empty_squares`].
|
||||
#[must_use]
|
||||
pub fn occupied_squares(&self) -> &BitBoard {
|
||||
pub fn occupied_squares(&self) -> BitBoard {
|
||||
self.pieces.all_pieces()
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn friendly_pieces(&self) -> &BitBoard {
|
||||
pub fn friendly_pieces_bitboard(&self) -> BitBoard {
|
||||
self.pieces.all_pieces_of_color(self.player_to_move)
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn opposing_pieces(&self) -> &BitBoard {
|
||||
pub fn opposing_pieces_bitboard(&self) -> BitBoard {
|
||||
self.pieces.all_pieces_of_color(self.player_to_move.other())
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn all_pieces(&self) -> (&BitBoard, &BitBoard) {
|
||||
(self.friendly_pieces(), self.opposing_pieces())
|
||||
pub fn all_pieces(&self) -> (BitBoard, BitBoard) {
|
||||
(
|
||||
self.friendly_pieces_bitboard(),
|
||||
self.opposing_pieces_bitboard(),
|
||||
)
|
||||
}
|
||||
|
||||
/// A [BitBoard] representing the set of squares containing a piece. This
|
||||
|
@ -166,8 +169,8 @@ impl Board {
|
|||
self.en_passant
|
||||
}
|
||||
|
||||
fn king_bitboard(&self, player: Color) -> &BitBoard {
|
||||
self.pieces.bitboard_for_piece(&Piece::king(player))
|
||||
fn king_bitboard(&self, player: Color) -> BitBoard {
|
||||
self.pieces.bitboard_for_piece(Piece::king(player))
|
||||
}
|
||||
|
||||
pub(crate) fn king_square(&self, player: Color) -> Square {
|
||||
|
@ -183,13 +186,13 @@ impl Board {
|
|||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn bitboard_for_color(&self, color: Color) -> &BitBoard {
|
||||
pub fn bitboard_for_color(&self, color: Color) -> BitBoard {
|
||||
self.pieces.bitboard_for_color(color)
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
|
||||
self.pieces.bitboard_for_piece(&piece)
|
||||
pub fn bitboard_for_piece(&self, piece: Piece) -> BitBoard {
|
||||
self.pieces.bitboard_for_piece(piece)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue