chessfriend/board/src/castle.rs

25 lines
485 B
Rust
Raw Normal View History

// Eryn Wells <eryn@erynwells.me>
mod parameters;
mod rights;
pub use rights::Rights;
use chessfriend_core::Color;
use parameters::Parameters;
2024-02-09 20:00:47 -08:00
#[repr(u8)]
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub enum Castle {
2024-02-09 20:00:47 -08:00
KingSide = 0,
QueenSide = 1,
}
impl Castle {
pub const ALL: [Castle; 2] = [Castle::KingSide, Castle::QueenSide];
pub fn parameters(self, color: Color) -> &'static Parameters {
&Parameters::BY_COLOR[color as usize][self as usize]
}
}