184e81a7c8 
								
							 
						 
						
							
							
								
								[bitboard] Remove #[must_use] from method calls; add it to BitBoard type  
							
							 
							
							
							
						 
						
							2025-05-16 07:44:05 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f1431ea4e9 
								
							 
						 
						
							
							
								
								[position] Move postion/mod.rs -> position.rs  
							
							 
							
							
							
						 
						
							2025-05-08 17:54:49 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								424d348b2d 
								
							 
						 
						
							
							
								
								WIP  
							
							 
							
							
							
						 
						
							2025-05-08 17:37:59 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								091cc99cb3 
								
							 
						 
						
							
							
								
								WIP  
							
							 
							
							
							
						 
						
							2025-05-08 17:37:51 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d5cdf273c8 
								
							 
						 
						
							
							
								
								[bitboard] Fix some random clippy issues  
							
							 
							
							
							
						 
						
							2025-05-03 16:03:18 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								867deafd13 
								
							 
						 
						
							
							
								
								[board] A ton of API refinements  
							
							 
							
							
							
						 
						
							2025-05-03 16:02:56 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								99dd2d1be2 
								
							 
						 
						
							
							
								
								[board] Remove the Builder  
							
							 
							
							
							
						 
						
							2025-05-03 15:48:06 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b0c4039920 
								
							 
						 
						
							
							
								
								[board] Remove Board::new()  
							
							 
							
							
							
						 
						
							2025-05-02 15:42:06 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bb8d5a6aa3 
								
							 
						 
						
							
							
								
								[board] Replace Flags with castle::Rights  
							
							 
							
							
							
						 
						
							2025-05-02 15:41:45 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cd60a453aa 
								
							 
						 
						
							
							
								
								[board] Replace active player and move properties on Board with MoveCounter instance  
							
							 
							
							
							
						 
						
							2025-05-02 15:18:37 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								58cbe07136 
								
							 
						 
						
							
							
								
								[board] Implement PieceSet::mailbox() method to return a reference to its Mailbox  
							
							 
							
							
							
						 
						
							2025-05-02 15:05:39 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bf535f876a 
								
							 
						 
						
							
							
								
								[board] Update call to BitBoard::occupied_squares to take an IterationDirection  
							
							 
							
							
							
						 
						
							2025-05-02 15:05:05 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0b100d5f14 
								
							 
						 
						
							
							
								
								[board] Remove Flags struct, replace it with Castle and supporting structs  
							
							 
							
							... 
							
							
							
							Encapsulate castling rights within a small module. Castle provides the API to the
rest of the board package. Rights encodes the castling rights for each player.
Parameters defines castling parameters for each player. 
							
						 
						
							2025-05-02 15:03:48 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9f2bfc0457 
								
							 
						 
						
							
							
								
								[board] Replace the length of the Builder::kings array with Color::NUM instead of constant 2  
							
							 
							
							
							
						 
						
							2025-05-02 14:49:16 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								46b19ff616 
								
							 
						 
						
							
							
								
								[board] Implement Mailbox::from_iter as a reduce (aka fold) over the incoming iterator  
							
							 
							
							
							
						 
						
							2025-05-02 14:48:37 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								72fd938238 
								
							 
						 
						
							
							
								
								[board] Implement Copy for Mailbox struct  
							
							 
							
							
							
						 
						
							2025-05-02 14:48:01 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c733342fca 
								
							 
						 
						
							
							
								
								[board] Add MoveCounter struct to track current color, half move counter, and full move counter  
							
							 
							
							
							
						 
						
							2025-05-02 14:42:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7b0469d689 
								
							 
						 
						
							
							
								
								[bitboard] Replace separate methods for leading and trailing iteration  
							
							 
							
							... 
							
							
							
							Add chessfriend_bitboard::IterationDirection
Make BitBoard::occupied_squares() take an IterationDirection and return an iterator
corresponding to the direction.
Do the same for ::first_occupied_square(). 
							
						 
						
							2025-05-02 14:28:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9f62996175 
								
							 
						 
						
							
							
								
								[bitboard] Return a copy of a BitBoard from BitBoard::ray()  
							
							 
							
							
							
						 
						
							2025-05-02 14:28:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								53c637f424 
								
							 
						 
						
							
							
								
								[bitboard] Make BitBoard::EMPTY and BitBoard::FULL private; export BitBoard::full()  
							
							 
							
							
							
						 
						
							2025-05-02 14:23:29 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								90657e3818 
								
							 
						 
						
							
							
								
								[position] Rewrite sight methods in terms of Board and pass BitBoard arguments by value  
							
							 
							
							
							
						 
						
							2024-07-13 12:08:20 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								30188d478e 
								
							 
						 
						
							
							
								
								[board] Convert &BitBoard to BitBoard for several Board methods  
							
							 
							
							... 
							
							
							
							I don't think passing by reference buys much for BitBoard. So simplify the
logic and borrowing semantics to make these easier to work with. 
							
						 
						
							2024-07-13 12:03:19 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7ec72035ae 
								
							 
						 
						
							
							
								
								[board] Remove en passant test helper method  
							
							 
							
							
							
						 
						
							2024-07-13 12:01:01 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d221de700d 
								
							 
						 
						
							
							
								
								[board] Copy edit and add new documentation to Board  
							
							 
							
							
							
						 
						
							2024-07-13 12:00:02 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c297e4cbfa 
								
							 
						 
						
							
							
								
								[board] Replace implementation of Board::piece_on_square with a simpler one  
							
							 
							
							... 
							
							
							
							Now that board has a Mailbox, the implementation of this routine can be greatly
simplified. Instead of needing to iterate through all BitBoards to find the
occupied square, just consult the mailbox. 
							
						 
						
							2024-07-13 11:57:57 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3785502ea0 
								
							 
						 
						
							
							
								
								[board] Declare Board::flags() pub(crate) instead of pub  
							
							 
							
							
							
						 
						
							2024-07-13 11:56:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								26ae79e17d 
								
							 
						 
						
							
							
								
								[board] Remove explicit #[inline] from several Board methods  
							
							 
							
							... 
							
							
							
							Trust the compiler to inline where appropriate, until I know otherwise. 
							
						 
						
							2024-07-13 11:54:58 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7a46d52e8d 
								
							 
						 
						
							
							
								
								[board] Make the flags and macros modules public  
							
							 
							
							
							
						 
						
							2024-07-13 11:54:00 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fb6d1ad2f0 
								
							 
						 
						
							
							
								
								[board] Make the display module public  
							
							 
							
							
							
						 
						
							2024-07-13 11:53:43 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a14cb30781 
								
							 
						 
						
							
							
								
								[board] Implement PieceSet::iter() as an iterator over its Mailbox  
							
							 
							
							
							
						 
						
							2024-07-13 11:53:16 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fff2e084b5 
								
							 
						 
						
							
							
								
								[board] Remove turbofish from PieceSet pipeline in Builder::build()  
							
							 
							
							
							
						 
						
							2024-07-13 11:52:50 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								da4e2f1d50 
								
							 
						 
						
							
							
								
								[core] Use Color::default() instead of Color::White in Board::default()  
							
							 
							
							
							
						 
						
							2024-07-13 11:52:25 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								90e33d1202 
								
							 
						 
						
							
							
								
								[board] Replace Pieces iterator with Mailbox::iter()  
							
							 
							
							... 
							
							
							
							Mailbox can use a standard iterator because it's just a slice. So nice! 
							
						 
						
							2024-07-13 11:52:02 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								51de32fa0a 
								
							 
						 
						
							
							
								
								[board] Update reference to PieceBitBoard → PieceSet  
							
							 
							
							... 
							
							
							
							This isn't all of them... 
							
						 
						
							2024-07-13 11:50:38 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f96fa79dc1 
								
							 
						 
						
							
							
								
								[position] Remove fen.rs  
							
							 
							
							
							
						 
						
							2024-07-13 08:14:33 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								634f9e02f4 
								
							 
						 
						
							
							
								
								[board] Mailbox-related changes  
							
							 
							
							
							
						 
						
							2024-07-13 08:10:59 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ee51a13870 
								
							 
						 
						
							
							
								
								Rename Square::from_index → from_index_unchecked  
							
							 
							
							
							
						 
						
							2024-07-13 08:10:21 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c290f00b9e 
								
							 
						 
						
							
							
								
								[board] fen declaration  
							
							 
							
							
							
						 
						
							2024-07-13 08:09:02 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e8c3d2b8db 
								
							 
						 
						
							
							
								
								[board] Add documentation to the types in castle.rs  
							
							 
							
							
							
						 
						
							2024-07-13 08:08:48 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d9c2cfb90c 
								
							 
						 
						
							
							
								
								[board] Copy fen.rs here from the position crate  
							
							 
							
							
							
						 
						
							2024-07-13 08:08:26 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3a2ead2668 
								
							 
						 
						
							
							
								
								[board] Replace Builder's BTreeMap with a Mailbox  
							
							 
							
							... 
							
							
							
							More efficient and easier to work with. :) 
							
						 
						
							2024-07-13 08:08:12 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7c65232c35 
								
							 
						 
						
							
							
								
								[core] Improve API of Shape and Color  
							
							 
							
							... 
							
							
							
							Clean up type and method declarations by using better type spelling. Use more
standard method spelling for iterators. Implement some useful traits. 
							
						 
						
							2024-07-13 07:34:50 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								534c022981 
								
							 
						 
						
							
							
								
								[core] Add #[must_use] to several methods in coordinates  
							
							 
							
							
							
						 
						
							2024-07-13 07:21:21 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7e45e49502 
								
							 
						 
						
							
							
								
								[BitBoard] Build out the documentation  
							
							 
							
							
							
						 
						
							2024-07-13 07:20:18 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								daf5c86792 
								
							 
						 
						
							
							
								
								[BitBoard] Clean up the API; implement some traits  
							
							 
							
							... 
							
							
							
							Clean up the BitBoard API by renaming methods with simpler names.
run-help Redo
Redo the implementation of a couple methods to be more succinct. 
							
						 
						
							2024-07-13 07:19:47 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								480a009e63 
								
							 
						 
						
							
							
								
								[BitBoard] Address a bunch of rust-analyzer suggestions  
							
							 
							
							... 
							
							
							
							Add #[must_use] to many methods 
							
						 
						
							2024-07-13 07:17:43 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								14ab669763 
								
							 
						 
						
							
							
								
								Clean up BitBoard's bit ops impl macros  
							
							 
							
							... 
							
							
							
							Declare the `forward_ref` crate as a dependency (my first external dependency!)
and use it to clean up the infix, assign, and unary op impls. This crate
automatically implements A+&B, &A+B, and &A+&B for me. 
							
						 
						
							2024-07-13 07:08:18 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2480ef25e9 
								
							 
						 
						
							
							
								
								Remove BitBoardBuilder  
							
							 
							
							... 
							
							
							
							It's unused except for the macro, and BitBoard itself can be declared mutable,
and implements Copy and Clone. So, I don't think having a separate Builder type
helps much. 
							
						 
						
							2024-07-13 07:05:57 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								19feff9591 
								
							 
						 
						
							
							
								
								Solidify PieceSet and supporting types  
							
							 
							
							
							
						 
						
							2024-07-12 15:52:41 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b3c472fbce 
								
							 
						 
						
							
							
								
								Fix some imports in the moves package  
							
							 
							
							... 
							
							
							
							Castle and EnPassant moved to the board package. Reference these types there.
Add the board packages as a dependency to the moves package. 
							
						 
						
							2024-04-26 09:50:42 -04:00