From ae0ae490935b8c186e50aeac217af8bb969f3ed9 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 8 Jun 2025 17:18:41 -0700 Subject: [PATCH] [core] Remove PlacedPiece This has been deprecated for a while now. Finally remove it! --- core/src/lib.rs | 2 +- core/src/pieces.rs | 79 ---------------------------------------------- 2 files changed, 1 insertion(+), 80 deletions(-) diff --git a/core/src/lib.rs b/core/src/lib.rs index dcb42a2..d4f5834 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -10,5 +10,5 @@ mod macros; pub use colors::Color; pub use coordinates::{Direction, File, Rank, Square, Wing}; -pub use pieces::{Piece, PlacedPiece}; +pub use pieces::Piece; pub use shapes::{Shape, Slider}; diff --git a/core/src/pieces.rs b/core/src/pieces.rs index a335aa9..f9fb63d 100644 --- a/core/src/pieces.rs +++ b/core/src/pieces.rs @@ -94,85 +94,6 @@ impl std::fmt::Display for Piece { } } -impl From for Piece { - fn from(value: PlacedPiece) -> Self { - value.piece - } -} - -impl From<&PlacedPiece> for Piece { - fn from(value: &PlacedPiece) -> Self { - value.piece - } -} - -#[deprecated] -#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] -pub struct PlacedPiece { - pub piece: Piece, - pub square: Square, -} - -macro_rules! is_shape { - ($func_name:ident, $shape:ident) => { - #[must_use] - pub fn $func_name(&self) -> bool { - self.piece().shape == Shape::$shape - } - }; -} - -impl PlacedPiece { - #[must_use] - pub const fn new(piece: Piece, square: Square) -> PlacedPiece { - PlacedPiece { piece, square } - } - - /// The [Piece] itself - #[inline] - #[must_use] - pub fn piece(&self) -> Piece { - self.piece - } - - is_shape!(is_pawn, Pawn); - is_shape!(is_knight, Knight); - is_shape!(is_bishop, Bishop); - is_shape!(is_rook, Rook); - is_shape!(is_queen, Queen); - is_shape!(is_king, King); - - #[must_use] - pub fn is_kingside_rook(&self) -> bool { - self.is_rook() - && match self.piece.color { - Color::White => self.square == Square::H1, - Color::Black => self.square == Square::H8, - } - } - - #[must_use] - pub fn is_queenside_rook(&self) -> bool { - self.is_rook() - && match self.piece.color { - Color::White => self.square == Square::A1, - Color::Black => self.square == Square::A8, - } - } -} - -impl std::fmt::Display for PlacedPiece { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}{}", self.piece, self.square) - } -} - -impl From<(&Square, &Piece)> for PlacedPiece { - fn from(value: (&Square, &Piece)) -> Self { - PlacedPiece::new(*value.1, *value.0) - } -} - #[cfg(test)] mod tests { use super::*;