Add 'CastleRights::with_{king,queen}_side'
This commit is contained in:
parent
e7e5927902
commit
8102b08cf0
|
@ -53,6 +53,25 @@ impl CastleRights {
|
|||
(self.index() & 2) != 0
|
||||
}
|
||||
|
||||
/// Add king-side castling rights.
|
||||
#[inline(always)]
|
||||
pub fn with_king_side(self) -> Self {
|
||||
self.add(Self::KingSide)
|
||||
}
|
||||
|
||||
/// Add queen-side castling rights.
|
||||
#[inline(always)]
|
||||
pub fn with_queen_side(self) -> Self {
|
||||
self.add(Self::QueenSide)
|
||||
}
|
||||
|
||||
/// Add some [CastleRights], and return the resulting [CastleRights].
|
||||
#[inline(always)]
|
||||
pub fn add(self, to_remove: CastleRights) -> Self {
|
||||
// SAFETY: we know the value is in-bounds
|
||||
unsafe { Self::from_index_unchecked(self.index() | to_remove.index()) }
|
||||
}
|
||||
|
||||
/// Remove king-side castling rights.
|
||||
#[inline(always)]
|
||||
pub fn without_king_side(self) -> Self {
|
||||
|
|
Loading…
Reference in a new issue