public static CastlelingRights MakeCastlelingRights(this CastlelingRights cs, Player p) => p.IsWhite ? cs == CastlelingRights.QueenSide ? CastlelingRights.WhiteOoo : CastlelingRights.WhiteOo : cs == CastlelingRights.QueenSide ? CastlelingRights.BlackOoo : CastlelingRights.BlackOo;
public static ulong GetZobristCastleling(this CastlelingRights index) => ZobristCastling[index.AsInt()];
internal static ulong Castle(CastlelingRights rights) { return(castle[rights.AsInt()]); }
public static int AsInt(this CastlelingRights value) => (int)value;
public static bool HasFlagFast(this CastlelingRights value, CastlelingRights flag) => (value & flag) != 0;