owlchess/generic.rs
1use crate::types;
2
3pub trait Color {
4 const COLOR: types::Color;
5 const CASTLING_OFFSET: usize;
6 type Inv: Color;
7}
8
9pub struct White;
10pub struct Black;
11
12impl Color for White {
13 const COLOR: types::Color = types::Color::White;
14 const CASTLING_OFFSET: usize = 56;
15 type Inv = Black;
16}
17
18impl Color for Black {
19 const COLOR: types::Color = types::Color::Black;
20 const CASTLING_OFFSET: usize = 0;
21 type Inv = White;
22}