[position] Add some documentation to MoveRecord

This commit is contained in:
Eryn Wells 2025-05-31 14:28:27 -07:00
parent a4b713a558
commit b8f45aaece

View file

@ -4,13 +4,27 @@ use chessfriend_board::{board::HalfMoveClock, Board, CastleRights};
use chessfriend_core::{Color, Piece, Square};
use chessfriend_moves::Move;
/// A record of a move made on a board. This struct contains all the information
/// necessary to restore the board position to its state immediately before the
/// move was made.
#[derive(Clone, Debug, Eq, PartialEq)]
pub(crate) struct MoveRecord {
/// The color of the player who made the move
pub color: Color,
/// The move played
pub ply: Move,
/// The en passant square when the move was made
pub en_passant_target: Option<Square>,
/// Castling rights for all players when the move was made
pub castling_rights: CastleRights,
/// The half move clock when the move was made
pub half_move_clock: HalfMoveClock,
/// The piece captured by the move, if any
pub captured_piece: Option<Piece>,
}