10 B_QUEEN_SIDE = 0b1000,
12 KING_SIDE = W_KING_SIDE | B_KING_SIDE,
13 QUEEN_SIDE = W_QUEEN_SIDE | B_QUEEN_SIDE,
14 W_SIDE = W_KING_SIDE | W_QUEEN_SIDE,
15 B_SIDE = B_KING_SIDE | B_QUEEN_SIDE,
16 ANY = W_SIDE | B_SIDE,
25 constexpr Castling(uint8_t value) : m_value(value) {}
27 [[nodiscard]]
static constexpr uint8_t none() {
return NONE; }
29 [[nodiscard]]
static constexpr uint8_t number() {
return NB; }
30 [[nodiscard]]
static constexpr uint8_t mask() {
return MASK; }
31 [[nodiscard]]
static constexpr uint8_t size() {
return SIZE; }
33 constexpr operator uint8_t()
const {
return m_value; }