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