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