diff options
Diffstat (limited to 'model/src')
| -rw-r--r-- | model/src/lib.rs | 2 | ||||
| -rw-r--r-- | model/src/piece.rs | 21 |
2 files changed, 23 insertions, 0 deletions
diff --git a/model/src/lib.rs b/model/src/lib.rs index 8c8efb6..1e1b364 100644 --- a/model/src/lib.rs +++ b/model/src/lib.rs @@ -1,9 +1,11 @@ mod board; mod color; mod moves; +mod piece; mod possible_moves; pub use board::CheckersBitBoard; pub use color::PieceColor; pub use moves::Move; +pub use piece::Piece; pub use possible_moves::PossibleMoves; diff --git a/model/src/piece.rs b/model/src/piece.rs new file mode 100644 index 0000000..f36e0a4 --- /dev/null +++ b/model/src/piece.rs @@ -0,0 +1,21 @@ +use crate::PieceColor; + +#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] +pub struct Piece { + king: bool, + color: PieceColor, +} + +impl Piece { + pub(crate) const fn new(king: bool, color: PieceColor) -> Self { + Self { king, color } + } + + pub const fn is_king(self) -> bool { + self.king + } + + pub const fn color(self) -> PieceColor { + self.color + } +} |
