[position] Make the Position initializer methods const

Position::empty() and Position::starting can both be const. Neat!
This commit is contained in:
Eryn Wells 2024-03-08 08:18:49 -08:00
parent 82aa7a2b01
commit a65c0c8ef1

View file

@ -24,13 +24,13 @@ pub struct Position {
} }
impl Position { impl Position {
pub fn empty() -> Position { pub const fn empty() -> Position {
Default::default() Default::default()
} }
/// Return a starting position. /// Return a starting position.
pub fn starting() -> Self { pub const fn starting() -> Self {
let black_pieces = [ const BLACK_PIECES: [BitBoard; 6] = [
BitBoard::new(0b0000000011111111 << 48), BitBoard::new(0b0000000011111111 << 48),
BitBoard::new(0b0100001000000000 << 48), BitBoard::new(0b0100001000000000 << 48),
BitBoard::new(0b0010010000000000 << 48), BitBoard::new(0b0010010000000000 << 48),
@ -39,7 +39,7 @@ impl Position {
BitBoard::new(0b0001000000000000 << 48), BitBoard::new(0b0001000000000000 << 48),
]; ];
let white_pieces = [ const WHITE_PIECES: [BitBoard; 6] = [
BitBoard::new(0b1111111100000000), BitBoard::new(0b1111111100000000),
BitBoard::new(0b0000000001000010), BitBoard::new(0b0000000001000010),
BitBoard::new(0b0000000000100100), BitBoard::new(0b0000000000100100),
@ -50,7 +50,7 @@ impl Position {
Self { Self {
color_to_move: Color::White, color_to_move: Color::White,
pieces: PieceBitBoards::new([white_pieces, black_pieces]), pieces: PieceBitBoards::new([WHITE_PIECES, BLACK_PIECES]),
..Default::default() ..Default::default()
} }
} }