[board] Move position builders into a builders module

Move PositionBuilder to position_builder.rs and export it from the builders module.
This commit is contained in:
Eryn Wells 2024-01-21 09:20:03 -08:00
parent 1a907844d6
commit 4a5ae8ec59
2 changed files with 22 additions and 3 deletions

View file

@ -0,0 +1,5 @@
// Eryn Wells <eryn@erynwells.me>
mod position_builder;
pub use position_builder::Builder as PositionBuilder;

View file

@ -1,9 +1,11 @@
// Eryn Wells <eryn@erynwells.me>
use super::{flags::Flags, piece_sets::PieceBitBoards};
use crate::{
bitboard::BitBoardBuilder,
piece::{PlacedPiece, Shape},
square::Rank,
position::{flags::Flags, piece_sets::PieceBitBoards, BoardSide},
r#move::Castle,
square::{Direction, Rank},
BitBoard, Color, MakeMoveError, Move, Piece, Position, Square,
};
use std::collections::BTreeMap;
@ -30,7 +32,7 @@ impl Builder {
self.kings[color_index] = square;
}
self.pieces.insert(square, piece.piece());
self.pieces.insert(square, *piece.piece());
self
}
@ -81,3 +83,15 @@ impl Default for Builder {
}
}
}
#[cfg(test)]
mod tests {
use crate::PositionBuilder;
#[test]
fn place_piece() {
let piece = piece!(White Queen on E4);
let builder = PositionBuilder::new().place_piece(piece).build();
assert_eq!(builder.piece_on_square(piece.square()), Some(piece));
}
}