From f84319272cb61cc759178bd930ffbcb22e54e58e Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 21 Jun 2025 21:07:26 -0700 Subject: [PATCH] [explorer, position] Make Position.board private to the crate Export a Position::board() method that returns a reference to the internal Board. --- explorer/src/main.rs | 4 ++-- position/src/position.rs | 7 ++++++- position/tests/peterellisjones.rs | 8 ++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/explorer/src/main.rs b/explorer/src/main.rs index 0acb2a1..b6af7a6 100644 --- a/explorer/src/main.rs +++ b/explorer/src/main.rs @@ -187,7 +187,7 @@ fn respond(line: &str, state: &mut State) -> anyhow::Result { } fn do_flags_command(state: &mut State, _matches: &clap::ArgMatches) -> CommandResult { - let board = &state.position.board; + let board = state.position.board(); println!("Castling:"); @@ -390,7 +390,7 @@ fn main() -> Result<(), String> { loop { if should_print_position { println!("{}", &state.position); - println!("{} to move.", state.position.board.active_color()); + println!("{} to move.", state.position.active_color()); } let readline = editor.readline("\n? "); diff --git a/position/src/position.rs b/position/src/position.rs index 8787134..d34ce4e 100644 --- a/position/src/position.rs +++ b/position/src/position.rs @@ -24,7 +24,7 @@ use std::{collections::HashSet, fmt, sync::Arc}; #[must_use] #[derive(Clone, Debug, Default, Eq)] pub struct Position { - pub board: Board, + pub(crate) board: Board, pub(crate) moves: Vec, pub(crate) captures: CapturesList, @@ -48,6 +48,11 @@ impl Position { ..Default::default() } } + + #[must_use] + pub fn board(&self) -> &Board { + &self.board + } } impl Position { diff --git a/position/tests/peterellisjones.rs b/position/tests/peterellisjones.rs index eadcf4d..ea90a2f 100644 --- a/position/tests/peterellisjones.rs +++ b/position/tests/peterellisjones.rs @@ -8,7 +8,7 @@ use chessfriend_core::Color; use chessfriend_moves::{ - assert_move_list, assert_move_list_contains, assert_move_list_does_not_contain, ply, Move, + Move, assert_move_list, assert_move_list_contains, assert_move_list_does_not_contain, ply, }; use chessfriend_position::test_position; use std::collections::HashSet; @@ -107,7 +107,7 @@ fn en_passant_check_capture() { White Pawn on D4, ], D3); - assert!(pos.board.active_color_is_in_check()); + assert!(pos.board().active_color_is_in_check()); let generated_moves: HashSet<_> = pos.all_legal_moves(Some(Color::Black)).collect(); @@ -123,7 +123,7 @@ fn en_passant_check_block() { White Queen on F1, ], D3); - assert!(pos.board.active_color_is_in_check()); + assert!(pos.board().active_color_is_in_check()); let generated_moves: HashSet<_> = pos.all_legal_moves(Some(Color::Black)).collect(); @@ -139,7 +139,7 @@ fn pinned_pieces_rook_cannot_move_out_of_pin() { White King on C1, ]); - assert!(!pos.board.active_color_is_in_check()); + assert!(!pos.board().active_color_is_in_check()); let rook_moves: HashSet<_> = pos.all_legal_moves(None).collect();