// Eryn Wells mod all; mod king; mod knight; mod pawn; mod slider; #[cfg(test)] mod testing; pub use all::AllPiecesMoveGenerator; pub use king::KingMoveGenerator; pub use knight::KnightMoveGenerator; pub use pawn::PawnMoveGenerator; pub use slider::{BishopMoveGenerator, QueenMoveGenerator, RookMoveGenerator}; use crate::Move; use chessfriend_core::Square; #[derive(Clone, Debug, Eq, Hash, PartialEq)] pub struct GeneratedMove { pub(crate) ply: Move, } impl GeneratedMove { #[must_use] pub fn origin(&self) -> Square { self.ply.origin_square() } } impl std::fmt::Display for GeneratedMove { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { self.ply.fmt(f) } } impl From for GeneratedMove { fn from(value: Move) -> Self { GeneratedMove { ply: value } } }