[position] Misc changes

- Add a captures list to the Position struct
- Implement ToFenStr
- Update the imports list, which has been sorely out-of-date in the tree for many commits now.
This commit is contained in:
Eryn Wells 2025-05-19 17:00:48 -07:00
parent 97552302cb
commit 6591619e32

View file

@ -1,25 +1,25 @@
// Eryn Wells <eryn@erynwells.me>
use crate::{
check::CheckingPieces,
move_generator::{MoveSet, Moves},
sight::SightExt,
use crate::{movement::Movement, sight::Sight};
use chessfriend_bitboard::{BitBoard, IterationDirection};
use chessfriend_board::{
display::DiagramFormatter, en_passant::EnPassant, fen::ToFenStr, Board, PlacePieceError,
PlacePieceStrategy,
};
use chessfriend_bitboard::BitBoard;
use chessfriend_board::{castle::Castle, display::DiagramFormatter, en_passant::EnPassant, Board};
use chessfriend_core::{Color, Piece, PlacedPiece, Shape, Square};
use chessfriend_moves::Move;
use std::{cell::OnceCell, fmt};
use chessfriend_core::{Color, Piece, Square};
use std::{cell::OnceCell, fmt, ops::BitOr};
#[must_use]
#[derive(Clone, Debug, Eq)]
pub struct Position {
pub board: Board,
moves: OnceCell<Moves>,
pub(super) captures: [Vec<Piece>; Color::NUM],
}
impl Position {
pub fn empty() -> Self {
Default::default()
Position::default()
}
/// Return a starting position.
@ -225,11 +225,20 @@ impl Position {
}
}
impl ToFenStr for Position {
type Error = <Board as ToFenStr>::Error;
fn to_fen_str(&self) -> Result<String, Self::Error> {
self.board.to_fen_str()
}
}
impl Default for Position {
fn default() -> Self {
Self {
board: Board::default(),
moves: OnceCell::new(),
captures: Default::default(),
}
}
}