// Eryn Wells use chessfriend_core::Shape; pub(crate) enum Kind { Quiet = 0b00, DoublePush = 0b01, KingSideCastle = 0b10, QueenSideCastle = 0b11, Capture = 0b0100, EnPassantCapture = 0b0101, Promotion = 0b1000, CapturePromotion = 0b1100, } #[repr(u16)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PromotionShape { Knight = 0b00, Bishop = 0b01, Rook = 0b10, Queen = 0b11, } impl From for Shape { fn from(value: PromotionShape) -> Self { match value { PromotionShape::Knight => Shape::Knight, PromotionShape::Bishop => Shape::Bishop, PromotionShape::Rook => Shape::Rook, PromotionShape::Queen => Shape::Queen, } } }