From 90266f2dd009312acc3139bed32fd21190858e9f Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Mon, 22 Jan 2024 08:20:38 -0800 Subject: [PATCH] [board] Make the MoveSet struct (and its internal structs) public for the crate --- board/src/move_generator/mod.rs | 3 +-- board/src/move_generator/move_set.rs | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/board/src/move_generator/mod.rs b/board/src/move_generator/mod.rs index eb5aee8..eb080c3 100644 --- a/board/src/move_generator/mod.rs +++ b/board/src/move_generator/mod.rs @@ -10,8 +10,7 @@ mod queen; mod rook; pub use move_generator::Moves; - -pub(self) use move_set::MoveSet; +pub(crate) use move_set::MoveSet; use crate::{ piece::{Color, Piece, PlacedPiece}, diff --git a/board/src/move_generator/move_set.rs b/board/src/move_generator/move_set.rs index f03d177..1c44766 100644 --- a/board/src/move_generator/move_set.rs +++ b/board/src/move_generator/move_set.rs @@ -1,17 +1,26 @@ use crate::{piece::PlacedPiece, BitBoard, Move}; +#[derive(Clone, Debug, Eq, PartialEq)] struct BitBoardSet { quiet: BitBoard, captures: BitBoard, } +#[derive(Clone, Debug, Eq, PartialEq)] struct MoveListSet { quiet: Vec, captures: Vec, } +impl MoveListSet { + pub fn contains(&self, mv: &Move) -> bool { + self.quiet.contains(mv) || self.captures.contains(mv) + } +} + /// A set of moves for a piece on the board. -pub(super) struct MoveSet { +#[derive(Clone, Debug, Eq, PartialEq)] +pub(crate) struct MoveSet { piece: PlacedPiece, bitboards: BitBoardSet, move_lists: MoveListSet,