A23ETUI3HMBQKCAROPWHAJ36CRQ3QFR27ZVRNJWDKAIPOBXYUAOAC 7ULXFB7Y3R3PR5IS3MPHQDLJ3S2SXLGXGCW243HQJBHAU6EIIFGAC FOORIA7SEZCLKDBNMV6KEDTQOJJVAH57BQFBRSQMET6FERJPHCVQC 3H3DSWLBWCE7C43W6LHICCPJ5KQDLASLQPIKJOK2KAE6OFF2L6WAC XHCMZF25YBLNQLVKKBJJWWJ3G24VFUSLE3LAT2DRWL52RJX4Z3EAC TB4YBE4CMWCLSKJ43QF6IU5HVYUUO33BLXVG7XDRLJS3IFIBQLYAC CWEVCXXC3D5NLLIFIYEWTXHPLX4EU5XH3YUUTMV7GYBLSQXT5VPQC 2CU67A3QXXPH722WBAL74O6P2N2RRXFBQVPT3A5QAXTUCQ3UUU5AC Z4PX3GURAMMW55R5KRP5WCO2CXFEI6LBULGBQRYTABBONCOZ5NHQC 3N3FYEBBZ6RLFCFKG2FNHHRDUZBOVBAAXAHBUPSOB3FN5HMWLVDAC I4AKZYZM5LOD7SNZRNWY34KWOHE34QPEWO6TIGHYMJACXOJKBMPQC NK6IUUYQENJVKT3SDWOXH7NF6JGCSE66IRFAPJTTYPVVPI34X6RQC var ret = @bitCast(CastlingType, self.*);ret &= CASTLING_RIGHTS[@enumToInt(square)];self.* = @bitCast(Castling, ret);
self.* = @bitCast(Castling, @bitCast(CastlingType, self.*) &CASTLING_RIGHTS[@enumToInt(square)]);
.white => self.bitboards[@enumToInt(Chess.PE.p)].pop(@intToEnum(Square, @enumToInt(move.target) + 8)),.black => self.bitboards[@enumToInt(Chess.PE.P)].pop(@intToEnum(Square, @enumToInt(move.target) - 8)),
.white => {self.bitboards[@enumToInt(Chess.PE.p)].pop(@intToEnum(Square, @enumToInt(move.target) + 8));// Zobristself.hash ^=zobrist.piece_hashes[@enumToInt(Chess.PE.p)][@enumToInt(move.target) + 8];},.black => {self.bitboards[@enumToInt(Chess.PE.P)].pop(@intToEnum(Square, @enumToInt(move.target) - 8));// Zobristself.hash ^=zobrist.piece_hashes[@enumToInt(Chess.PE.P)][@enumToInt(move.target) - 8];},
- [Gigantua - fast movegen](https://www.codeproject.com/Articles/5313417/Worlds-fastest-Bitboard-Chess-Movegenerator)