Commit graph

32 commits

Author SHA1 Message Date
Bruno BELANYI fcf309fad4 Fix 'cargo clippy' launched by hand
All checks were successful
continuous-integration/drone/push Build is passing
Mis-matching 'rustc' versions lead to errors.
2022-07-18 11:50:08 +02:00
Bruno BELANYI 66e5109157 Statically assert zero-cost invariants
All checks were successful
continuous-integration/drone/push Build is passing
Since some or all of those invariants will come in handy to ensure we
use as little memory as possible, to maximize the speed of the move
generation later on.
2022-07-18 11:05:41 +02:00
Bruno BELANYI ca4603ff02 Add 'static_assert' macro 2022-07-18 11:04:52 +02:00
Bruno BELANYI d132e3779e Enable 'doCheck' in nix package 2022-07-18 10:04:47 +02:00
Bruno BELANYI 74d2a2cf6a Add 'Bitboard::{LIGHT,DARK}_SQUARES
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-18 10:01:23 +02:00
Bruno BELANYI f1f6198e5f Make use of 'Bitboard::is_empty' 2022-07-18 10:01:23 +02:00
Bruno BELANYI 057b383f8c Add 'Bitboard::is_empty' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 0dde0d5dbd Add 'Direction::slide_{square,board}' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 896f615bba Add 'Bitboard::{ANTI_,}DIAGONAL' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 8e92bc2370 Add 'Direction::move_square' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 52d3974063 Add 'Direction::iter_{rook,bishop,royalty,knight}' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 8b27d302d7 Add 'Direction::move_board'
Encapsulates the way to move a piece on a board, avoiding the need to
mask and shift by hand.
2022-07-18 00:33:24 +02:00
Bruno BELANYI 4e98678ccd Add 'board::Direction' enum 2022-07-18 00:33:24 +02:00
Bruno BELANYI e8b5c9f73c Use 'Square::index' in 'Square::{file,rank}_index' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 17b8ee5eb3 Add 'Square::index' 2022-07-18 00:33:24 +02:00
Bruno BELANYI 61e7a4e8d1 Add 'Bitboard::count' 2022-07-18 00:33:24 +02:00
Bruno BELANYI db0a7e9f60 Add 'Rank::{up,down}' 2022-07-17 21:26:03 +02:00
Bruno BELANYI 63228c2d9e Add 'File::{left,right}' 2022-07-17 21:26:03 +02:00
Bruno BELANYI 87473908cf Add 'Square' constructor from 'File', 'Rank' 2022-07-17 21:26:03 +02:00
Bruno BELANYI 77b15edc36 Don't return 'Bitboard' from 'Square::{file,rank}' 2022-07-17 21:26:03 +02:00
Bruno BELANYI bb04368f41 Add 'File' enum 2022-07-16 14:41:07 +02:00
Bruno BELANYI 4eff49f367 Add 'Rank' enum 2022-07-16 14:41:07 +02:00
Bruno BELANYI fdfc1fcf63 Add GDB pretty-printers 2022-07-16 14:41:07 +02:00
Bruno BELANYI 41903be143 Introduce 'Bitboard::ALL' 2022-07-16 14:41:07 +02:00
Bruno BELANYI bf71a5c205 Add Drone CI 2022-07-16 14:41:07 +02:00
Bruno BELANYI 3c157efe84 Add bitboard iteration
Introduce 'BitboardIterator', use it to implement 'IntoIterator' for
'Bitboard'.
2022-07-16 14:41:07 +02:00
Bruno BELANYI 4bc597439e Move 'board::bitboard' into folder module
I will be adding a 'BitboardIterator' type, and it makes more sense to
use a folder for this module at this point.
2022-07-16 14:41:07 +02:00
Bruno BELANYI 755e891b17 Add 'Bitboard' and 'Square' definitions 2022-07-16 14:41:07 +02:00
Bruno BELANYI 2c36ee266d Move binary crate into 'bin' folder 2022-07-15 21:32:39 +02:00
Bruno BELANYI 36656a6a40 Add generated files to git ignore 2022-07-15 19:57:21 +02:00
Bruno BELANYI 454267e4ad Add nix flake 2022-07-15 19:56:54 +02:00
Bruno BELANYI 2ad2927b14 Bootstrap build system 2022-07-15 19:56:01 +02:00