Add 'Color::{forward,backward}_direction'

This commit is contained in:
Bruno BELANYI 2022-07-18 17:27:09 +02:00
parent aa3b464bb8
commit 7c8dce8f49

View file

@ -1,4 +1,4 @@
use super::Rank;
use super::{Direction, Rank};
/// An enum representing the color of a player.
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
@ -65,6 +65,21 @@ impl Color {
Self::Black => Rank::Second,
}
}
/// Which way do pawns advance for this color.
#[inline(always)]
pub fn forward_direction(self) -> Direction {
match self {
Self::White => Direction::North,
Self::Black => Direction::South,
}
}
/// Which way do the opponent's pawns advance for this color.
#[inline(always)]
pub fn backward_direction(self) -> Direction {
(!self).forward_direction()
}
}
impl std::ops::Not for Color {