check_buddy_core/piece/
piece_type.rs

1use std::fmt::Debug;
2
3pub const NONE: u32 = 0;
4pub const KING: u32 = 1;
5pub const PAWN: u32 = 2;
6pub const KNIGHT: u32 = 3;
7pub const BISHOP: u32 = 4;
8pub const ROOK: u32 = 5;
9pub const QUEEN: u32 = 6;
10
11pub const WHITE: u32 = 8;
12pub const BLACK: u32 = 16;
13
14#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy)]
15pub enum PieceType {
16    Rook,
17    Pawn(bool),
18    King,
19    Queen,
20    Bishop,
21    Knight,
22}
23
24impl PieceType {
25    pub(crate) fn to_value(self) -> u32 {
26        match self {
27            PieceType::Rook => ROOK,
28            PieceType::Pawn(_) => PAWN,
29            PieceType::King => KING,
30            PieceType::Queen => QUEEN,
31            PieceType::Bishop => BISHOP,
32            PieceType::Knight => KNIGHT,
33        }
34    }
35}