[INFO] cloning repository https://github.com/Wertyqin99331/OrionChessEngine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Wertyqin99331/OrionChessEngine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWertyqin99331%2FOrionChessEngine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWertyqin99331%2FOrionChessEngine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fa86d74fbd5d6a1a7b426af6484820f957ee4402
[INFO] testing Wertyqin99331/OrionChessEngine against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWertyqin99331%2FOrionChessEngine" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Wertyqin99331/OrionChessEngine
[INFO] finished tweaking git repo https://github.com/Wertyqin99331/OrionChessEngine
[INFO] tweaked toml for git repo https://github.com/Wertyqin99331/OrionChessEngine written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Wertyqin99331/OrionChessEngine on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Wertyqin99331/OrionChessEngine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3ac555bb147f2fc0cb8d6283ca6ed9a14cb0a62dff121e7af78a1917fb2b39da
[INFO] running `Command { std: "docker" "start" "-a" "3ac555bb147f2fc0cb8d6283ca6ed9a14cb0a62dff121e7af78a1917fb2b39da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ac555bb147f2fc0cb8d6283ca6ed9a14cb0a62dff121e7af78a1917fb2b39da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ac555bb147f2fc0cb8d6283ca6ed9a14cb0a62dff121e7af78a1917fb2b39da", kill_on_drop: false }`
[INFO] [stdout] 3ac555bb147f2fc0cb8d6283ca6ed9a14cb0a62dff121e7af78a1917fb2b39da
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 57e026055e81ac83f0406b811e1f849651f46850c23d3ebf20eee9861453006e
[INFO] running `Command { std: "docker" "start" "-a" "57e026055e81ac83f0406b811e1f849651f46850c23d3ebf20eee9861453006e", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling engine-core v0.1.0 (/opt/rustwide/workdir/engine-core)
[INFO] [stdout] warning: unused import: `helpers`
[INFO] [stdout]  --> engine-core/src/enums.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{chess_consts, helpers};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> engine-core/src/board.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct Board {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameState` is never constructed
[INFO] [stdout]   --> engine-core/src/board.rs:36:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct GameState {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/board.rs:45:19
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  45 |     pub(crate) fn get_bb(&self, side: Side, piece: Piece) -> u64 {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub(crate) fn get_bb_mut(&mut self, side: Side, piece: Piece) -> &mut u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub(crate) fn get_occupancy_bb(&self, side: Side) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub(crate) fn get_occupancy_bb_mut(&mut self, side: Side) -> &mut u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub(crate) fn recalc_occupancies(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) fn get_side_attacks_bb(&self, attacker_side: Side) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn is_square_attacked(&self, square: Square, attacker_side: Side) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn is_in_check(&self, side: Side) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_king_square(&self, side: Side) -> Square {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub(crate) fn get_empty_bb(&self) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub(crate) fn get_occupancy_piece(&self, side: Side, square: Square) -> Option<Piece> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub(crate) fn get_start_position() -> Board {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub(crate) fn add_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub(crate) fn remove_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) fn move_piece(&mut self, side: Side, piece: Piece, from: Square, to: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_all` and `remove_rook` are never used
[INFO] [stdout]    --> engine-core/src/board.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl CastlingState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 253 |     pub fn remove_all(&mut self, side: Side) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn remove_rook(&mut self, side: Side, square: Square) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_castlings` is never used
[INFO] [stdout]    --> engine-core/src/board.rs:283:19
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl CastlingState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 283 |     pub(crate) fn get_castlings(&self, side: Side) -> impl Iterator<Item = CastlingSide> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIDES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const SIDES_COUNT: usize = 2;
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_SIZE` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const BOARD_SIZE: usize = 8;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const SQUARES_COUNT: usize = BOARD_SIZE * BOARD_SIZE;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_TYPES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const PIECE_TYPES_COUNT: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_HALF_MOVES_COUNT` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const MAX_HALF_MOVES_COUNT: u8 = 100;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const EMPTY_BB: u64 = 0u64;
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_A_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) const NOT_A_FILE_BB: u64 = !helpers::file_mask(File::A);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_H_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) const NOT_H_FILE_BB: u64 = !helpers::file_mask(File::H);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FIRST_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) const NOT_FIRST_RANK_BB: u64 = !helpers::rank_mask(Rank::R1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_EIGHTH_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:44:18
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) const NOT_EIGHTH_RANK_BB: u64 = !helpers::rank_mask(Rank::R8);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_A_B_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) const NOT_A_B_FILE_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_G_H_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) const NOT_G_H_FILE_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FIRST_SECOND_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const NOT_FIRST_SECOND_RANK_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_SEVENTH_EIGHTH_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) const NOT_SEVENTH_EIGHTH_RANK_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_BOARD_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) const EMPTY_BOARD_FEN: &str = "8/8/8/8/8/8/8/8 w - -";
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `START_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub(crate) const START_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRICKY_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) const TRICKY_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KILLER_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub(crate) const KILLER_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CMK_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) const CMK_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Side` is never used
[INFO] [stdout]  --> engine-core/src/enums.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) enum Side {
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index`, `opposite`, `from_u8_unchecked`, `all`, and `get_promotion_rank` are never used
[INFO] [stdout]   --> engine-core/src/enums.rs:21:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Side {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 20 |     #[inline]
[INFO] [stdout] 21 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub(crate) const fn opposite(self) -> Side {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Side {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) fn all() -> impl Iterator<Item = Side> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn get_promotion_rank(self) -> Rank {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Square` is never used
[INFO] [stdout]   --> engine-core/src/enums.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) enum Square {
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:86:25
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Square {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  85 |     #[inline]
[INFO] [stdout]  86 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) const fn bit(self) -> u64 {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub(crate) const fn rank(self) -> Rank {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) const fn file(self) -> Rank {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Square {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub(crate) fn all() -> impl Iterator<Item = Square> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) fn range(from: Square, to: Square) -> impl Iterator<Item = Square> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub(crate) fn can_be_en_passant(self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn is_en_passant_target_for(self, side: Side) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub(crate) fn backward(self, side: Side) -> Square {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `File` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(crate) enum File { A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7 }
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl File {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 222 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rank` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:246:17
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub(crate) enum Rank { R1=0, R2=1, R3=2, R4=3, R5=4, R6=5, R7=6, R8=7 }
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:249:25
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Rank {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 249 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Piece` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub(crate) enum Piece {Pawn, Knight, Bishop, Rook, Queen, King}
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PROMOTION_PIECES`, `index`, `from_u8_unchecked`, and `all` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 275 | impl Piece {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 276 |     pub(crate) const PROMOTION_PIECES: [Piece; 4] =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub(crate) unsafe fn from_u8_unchecked(value: u8) -> Piece {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub(crate) fn all() -> impl Iterator<Item = Piece> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Move` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub(crate) enum Move {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CastlingSide` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:308:17
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub(crate) enum CastlingSide {
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:314:22
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl CastlingSide {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 314 |     pub(crate) const WHITE_KING_SIDE_EMPTY_MASK: u64 = Square::F1.bit() | Square::G1.bit();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 315 |     pub(crate) const WHITE_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(crate) const WHITE_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 319 |         Square::B1.bit() | Square::C1.bit() | Square::D1.bit();
[INFO] [stdout] 320 |     pub(crate) const WHITE_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub(crate) const BLACK_KING_SIDE_EMPTY_MASK: u64 = Square::F8.bit() | Square::G8.bit();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 324 |     pub(crate) const BLACK_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub(crate) const BLACK_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 328 |         Square::B8.bit() | Square::C8.bit() | Square::D8.bit();
[INFO] [stdout] 329 |     pub(crate) const BLACK_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub(crate) const WHITE_KING_CASTLING_START_POS: Square = Square::E1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     pub(crate) const WHITE_KING_KING_SIDE_CASTLING_END_POS: Square = Square::G1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 334 |     pub(crate) const WHITE_KING_QUEEN_SIDE_CASTLING_END_POS: Square = Square::C1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 335 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_START_POS: Square = Square::H1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 336 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_END_POS: Square = Square::F1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 337 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_START_POS: Square = Square::A1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 338 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_END_POS: Square = Square::D1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 339 |
[INFO] [stdout] 340 |     pub(crate) fn get_castling_positions(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEN_PARTS_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/fen_parser.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const FEN_PARTS_COUNT: usize = 6;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEN_PARTS_SPLITTER` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const FEN_PARTS_SPLITTER: char = ' ';
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIDE_TO_MOVE_CHARS` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const SIDE_TO_MOVE_CHARS: &str = "wb";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseFenError` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) enum ParseFenError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseFenResult` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:47:6
[INFO] [stdout]    |
[INFO] [stdout] 47 | type ParseFenResult = Result<Board, ParseFenError>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseFenPartResult` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | type ParseFenPartResult = Result<(), ParseFenError>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fen_string` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn parse_fen_string(fen: &str) -> ParseFenResult {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_pieces` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn parse_pieces(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_side_to_move` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn parse_side_to_move(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_castling_rights` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn parse_castling_rights(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_en_passant_square` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn parse_en_passant_square(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_half_move_clock` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn parse_half_move_clock(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_full_move_number` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn parse_full_move_number(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bitboard` is never used
[INFO] [stdout]  --> engine-core/src/helpers.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn print_bitboard(bitboard: u64) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_bit_set` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const fn is_bit_set(bb: u64, square: Square) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const fn set_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const fn pop_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const fn flip_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_mask` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub const fn rank_mask(rank: Rank) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_mask` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const fn file_mask(file: File) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square_mask` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const fn square_mask(rank: u8, file: u8) -> u64 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squares_mask` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn squares_mask(squares: impl IntoIterator<Item = Square>) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bits_iter` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) fn get_bits_iter(bb: u64) -> impl Iterator<Item = usize> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_squares_iter` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub(crate) fn get_squares_iter(bb: u64) -> impl Iterator<Item = Square> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_ascii_piece_char` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:155:15
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub(crate) fn get_ascii_piece_char(side: Side, piece: Piece) -> char {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/history.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const MAX_MOVES_COUNT: usize = 4096;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `History` is never constructed
[INFO] [stdout]  --> engine-core/src/history.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) struct History {
[INFO] [stdout]   |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryEntry` is never constructed
[INFO] [stdout]   --> engine-core/src/history.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct HistoryEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> engine-core/src/history.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl HistoryEntry {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 20 |     pub(crate) fn new(mv: Move, game_state: GameState) -> HistoryEntry {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `push`, and `pop` are never used
[INFO] [stdout]   --> engine-core/src/history.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl History {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 26 |     pub(crate) fn new() -> History {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(crate) fn len(&self) -> usize {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn push(&mut self, entry: HistoryEntry) -> Result<(), HistoryEntry> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn pop(&mut self) -> Option<HistoryEntry> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KING_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/king_attack_table.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const KING_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_king_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const fn get_king_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_king_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | const fn generate_king_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/knight_attack_table.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const KNIGHT_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_knight_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/knight_attack_table.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const fn get_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_knight_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/knight_attack_table.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | const fn generate_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MoveBuffer` is never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) type MoveBuffer = Vec<Move>;
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_pseudo_legal_moves` and `generate_legal_moves` are never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 17 |     pub(crate) fn generate_pseudo_legal_moves(&self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(crate) fn generate_legal_moves(&mut self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_pawn_moves` is never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn generate_pseudo_legal_pawn_moves(board: &Board, side: Side, buf: &mut Vec<Move>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_leaper_pseudo_legal_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn generate_leaper_pseudo_legal_moves(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_sliding_pseudo_legal_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn generate_sliding_pseudo_legal_moves(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_knight_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn generate_pseudo_legal_knight_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_bishop_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn generate_pseudo_legal_bishop_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_rook_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn generate_pseudo_legal_rook_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_queen_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn generate_pseudo_legal_queen_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_king_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn generate_pseudo_legal_king_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_castling_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:298:4
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn generate_castling_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_pawn` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:333:4
[INFO] [stdout]     |
[INFO] [stdout] 333 | fn push_pawn(bb: u64, side: Side) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `make_move` and `unmake_move` are never used
[INFO] [stdout]   --> engine-core/src/move_operations.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  8 |     pub fn make_move(&mut self, mv: Move) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub(crate) fn unmake_move(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/pawn_attack_table.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const PAWN_ATTACKS_TABLE: [[u64; chess_consts::SQUARES_COUNT]; chess_consts::SIDES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pawn_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/pawn_attack_table.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const fn get_pawn_attacks_mask(side: Side, square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pawn_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/pawn_attack_table.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | const fn generate_pawn_attacks_mask(square: Square, side: Side) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PLY` is never used
[INFO] [stdout]  --> engine-core/src/perft.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAX_PLY: usize = 128;
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft` is never used
[INFO] [stdout]  --> engine-core/src/perft.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn perft(board: &mut Board, depth: u32, ply: usize, bufs: &mut [MoveBuffer]) -> u64 {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XorShift64Star` is never constructed
[INFO] [stdout]  --> engine-core/src/random_generator.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct XorShift64Star {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DEFAULT_STATE`, `new`, `with_seed`, `next_u64`, and `generate_magic_number_candidate` are never used
[INFO] [stdout]   --> engine-core/src/random_generator.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl XorShift64Star {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  6 |     const DEFAULT_STATE: u64 = 0x9e3779b97f4a7c15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout]  7 |
[INFO] [stdout]  8 |     pub(crate) const fn new() -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(crate) const fn with_seed(seed: u64) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) const fn next_u64(&mut self) -> u64 {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) const fn generate_magic_number_candidate(&mut self) -> u64 {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const BISHOP_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_RELEVANT_BIT_COUNTS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const BISHOP_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const ROOK_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_RELEVANT_BIT_COUNTS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const ROOK_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BISHOP_MAGIC_NUMBERS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | static BISHOP_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ROOK_MAGIC_NUMBERS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | static ROOK_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BISHOP_ATTACKS_TABLE` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | static BISHOP_ATTACKS_TABLE: LazyLock<[[u64; 512]; chess_consts::SQUARES_COUNT]> =
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ROOK_ATTACKS_TABLE` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | static ROOK_ATTACKS_TABLE: LazyLock<Box<[[u64; 4096]; chess_consts::SQUARES_COUNT]>> =
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bishop_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub(crate) fn get_bishop_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rook_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) fn get_rook_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_queen_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:179:15
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub(crate) fn get_queen_attacks_mask(square: Square, occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relevant_bishop_occupancy_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 | const fn generate_relevant_bishop_occupancy_mask(square: Square) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relevant_rook_occupancy_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:232:10
[INFO] [stdout]     |
[INFO] [stdout] 232 | const fn generate_relevant_rook_occupancy_mask(square: Square) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_bishop_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:276:10
[INFO] [stdout]     |
[INFO] [stdout] 276 | const fn generate_bishop_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_rook_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:348:10
[INFO] [stdout]     |
[INFO] [stdout] 348 | const fn generate_rook_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_blocker_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:416:10
[INFO] [stdout]     |
[INFO] [stdout] 416 | const fn build_blocker_mask(index: u32, mut relevant_mask: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_magic_number` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:435:10
[INFO] [stdout]     |
[INFO] [stdout] 435 | const fn find_magic_number(square: Square, piece: Piece) -> Option<u64> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.85s
[INFO] running `Command { std: "docker" "inspect" "57e026055e81ac83f0406b811e1f849651f46850c23d3ebf20eee9861453006e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57e026055e81ac83f0406b811e1f849651f46850c23d3ebf20eee9861453006e", kill_on_drop: false }`
[INFO] [stdout] 57e026055e81ac83f0406b811e1f849651f46850c23d3ebf20eee9861453006e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c1a29ca36dd509d6f4dbaba647502fd303bd0be592cb5b24982dfc237d5e1e74
[INFO] running `Command { std: "docker" "start" "-a" "c1a29ca36dd509d6f4dbaba647502fd303bd0be592cb5b24982dfc237d5e1e74", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `helpers`
[INFO] [stdout]  --> engine-core/src/enums.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{chess_consts, helpers};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> engine-core/src/board.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) struct Board {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameState` is never constructed
[INFO] [stdout]   --> engine-core/src/board.rs:36:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct GameState {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/board.rs:45:19
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  45 |     pub(crate) fn get_bb(&self, side: Side, piece: Piece) -> u64 {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub(crate) fn get_bb_mut(&mut self, side: Side, piece: Piece) -> &mut u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub(crate) fn get_occupancy_bb(&self, side: Side) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub(crate) fn get_occupancy_bb_mut(&mut self, side: Side) -> &mut u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub(crate) fn recalc_occupancies(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) fn get_side_attacks_bb(&self, attacker_side: Side) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn is_square_attacked(&self, square: Square, attacker_side: Side) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn is_in_check(&self, side: Side) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_king_square(&self, side: Side) -> Square {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub(crate) fn get_empty_bb(&self) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub(crate) fn get_occupancy_piece(&self, side: Side, square: Square) -> Option<Piece> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub(crate) fn get_start_position() -> Board {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub(crate) fn add_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub(crate) fn remove_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) fn move_piece(&mut self, side: Side, piece: Piece, from: Square, to: Square) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_all` and `remove_rook` are never used
[INFO] [stdout]    --> engine-core/src/board.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl CastlingState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 253 |     pub fn remove_all(&mut self, side: Side) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn remove_rook(&mut self, side: Side, square: Square) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_castlings` is never used
[INFO] [stdout]    --> engine-core/src/board.rs:283:19
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl CastlingState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 283 |     pub(crate) fn get_castlings(&self, side: Side) -> impl Iterator<Item = CastlingSide> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIDES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const SIDES_COUNT: usize = 2;
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_SIZE` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const BOARD_SIZE: usize = 8;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const SQUARES_COUNT: usize = BOARD_SIZE * BOARD_SIZE;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_TYPES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/chess_consts.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const PIECE_TYPES_COUNT: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_HALF_MOVES_COUNT` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const MAX_HALF_MOVES_COUNT: u8 = 100;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const EMPTY_BB: u64 = 0u64;
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_A_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) const NOT_A_FILE_BB: u64 = !helpers::file_mask(File::A);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_H_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) const NOT_H_FILE_BB: u64 = !helpers::file_mask(File::H);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FIRST_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) const NOT_FIRST_RANK_BB: u64 = !helpers::rank_mask(Rank::R1);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_EIGHTH_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:44:18
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) const NOT_EIGHTH_RANK_BB: u64 = !helpers::rank_mask(Rank::R8);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_A_B_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) const NOT_A_B_FILE_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_G_H_FILE_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) const NOT_G_H_FILE_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FIRST_SECOND_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const NOT_FIRST_SECOND_RANK_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_SEVENTH_EIGHTH_RANK_BB` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) const NOT_SEVENTH_EIGHTH_RANK_BB: u64 =
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_BOARD_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) const EMPTY_BOARD_FEN: &str = "8/8/8/8/8/8/8/8 w - -";
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `START_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub(crate) const START_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRICKY_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) const TRICKY_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KILLER_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub(crate) const KILLER_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CMK_POS_FEN` is never used
[INFO] [stdout]   --> engine-core/src/chess_consts.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) const CMK_POS_FEN: &str =
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Side` is never used
[INFO] [stdout]  --> engine-core/src/enums.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) enum Side {
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index`, `opposite`, `from_u8_unchecked`, `all`, and `get_promotion_rank` are never used
[INFO] [stdout]   --> engine-core/src/enums.rs:21:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Side {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 20 |     #[inline]
[INFO] [stdout] 21 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub(crate) const fn opposite(self) -> Side {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Side {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) fn all() -> impl Iterator<Item = Side> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn get_promotion_rank(self) -> Rank {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Square` is never used
[INFO] [stdout]   --> engine-core/src/enums.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) enum Square {
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:86:25
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Square {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  85 |     #[inline]
[INFO] [stdout]  86 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) const fn bit(self) -> u64 {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub(crate) const fn rank(self) -> Rank {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) const fn file(self) -> Rank {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Square {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub(crate) fn all() -> impl Iterator<Item = Square> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) fn range(from: Square, to: Square) -> impl Iterator<Item = Square> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub(crate) fn can_be_en_passant(self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn is_en_passant_target_for(self, side: Side) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub(crate) fn backward(self, side: Side) -> Square {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `File` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(crate) enum File { A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7 }
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl File {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 222 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rank` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:246:17
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub(crate) enum Rank { R1=0, R2=1, R3=2, R4=3, R5=4, R6=5, R7=6, R8=7 }
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:249:25
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Rank {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 249 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Piece` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub(crate) enum Piece {Pawn, Knight, Bishop, Rook, Queen, King}
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PROMOTION_PIECES`, `index`, `from_u8_unchecked`, and `all` are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:276:22
[INFO] [stdout]     |
[INFO] [stdout] 275 | impl Piece {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 276 |     pub(crate) const PROMOTION_PIECES: [Piece; 4] =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub(crate) unsafe fn from_u8_unchecked(value: u8) -> Piece {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub(crate) fn all() -> impl Iterator<Item = Piece> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Move` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub(crate) enum Move {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CastlingSide` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:308:17
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub(crate) enum CastlingSide {
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:314:22
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl CastlingSide {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 314 |     pub(crate) const WHITE_KING_SIDE_EMPTY_MASK: u64 = Square::F1.bit() | Square::G1.bit();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 315 |     pub(crate) const WHITE_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(crate) const WHITE_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 319 |         Square::B1.bit() | Square::C1.bit() | Square::D1.bit();
[INFO] [stdout] 320 |     pub(crate) const WHITE_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub(crate) const BLACK_KING_SIDE_EMPTY_MASK: u64 = Square::F8.bit() | Square::G8.bit();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 324 |     pub(crate) const BLACK_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub(crate) const BLACK_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 328 |         Square::B8.bit() | Square::C8.bit() | Square::D8.bit();
[INFO] [stdout] 329 |     pub(crate) const BLACK_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub(crate) const WHITE_KING_CASTLING_START_POS: Square = Square::E1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     pub(crate) const WHITE_KING_KING_SIDE_CASTLING_END_POS: Square = Square::G1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 334 |     pub(crate) const WHITE_KING_QUEEN_SIDE_CASTLING_END_POS: Square = Square::C1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 335 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_START_POS: Square = Square::H1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 336 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_END_POS: Square = Square::F1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 337 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_START_POS: Square = Square::A1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 338 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_END_POS: Square = Square::D1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 339 |
[INFO] [stdout] 340 |     pub(crate) fn get_castling_positions(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling engine-core v0.1.0 (/opt/rustwide/workdir/engine-core)
[INFO] [stdout] warning: constant `FEN_PARTS_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/fen_parser.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const FEN_PARTS_COUNT: usize = 6;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEN_PARTS_SPLITTER` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const FEN_PARTS_SPLITTER: char = ' ';
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIDE_TO_MOVE_CHARS` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const SIDE_TO_MOVE_CHARS: &str = "wb";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseFenError` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) enum ParseFenError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseFenResult` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:47:6
[INFO] [stdout]    |
[INFO] [stdout] 47 | type ParseFenResult = Result<Board, ParseFenError>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseFenPartResult` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | type ParseFenPartResult = Result<(), ParseFenError>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fen_string` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn parse_fen_string(fen: &str) -> ParseFenResult {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_pieces` is never used
[INFO] [stdout]   --> engine-core/src/fen_parser.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn parse_pieces(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_side_to_move` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn parse_side_to_move(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_castling_rights` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn parse_castling_rights(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_en_passant_square` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn parse_en_passant_square(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_half_move_clock` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn parse_half_move_clock(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_full_move_number` is never used
[INFO] [stdout]    --> engine-core/src/fen_parser.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn parse_full_move_number(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bitboard` is never used
[INFO] [stdout]  --> engine-core/src/helpers.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn print_bitboard(bitboard: u64) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_bit_set` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const fn is_bit_set(bb: u64, square: Square) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const fn set_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const fn pop_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_bit` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const fn flip_bit(bb: u64, square: Square) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_mask` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub const fn rank_mask(rank: Rank) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_mask` is never used
[INFO] [stdout]   --> engine-core/src/helpers.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const fn file_mask(file: File) -> u64 {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square_mask` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const fn square_mask(rank: u8, file: u8) -> u64 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `squares_mask` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn squares_mask(squares: impl IntoIterator<Item = Square>) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bits_iter` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) fn get_bits_iter(bb: u64) -> impl Iterator<Item = usize> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_squares_iter` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub(crate) fn get_squares_iter(bb: u64) -> impl Iterator<Item = Square> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_ascii_piece_char` is never used
[INFO] [stdout]    --> engine-core/src/helpers.rs:155:15
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub(crate) fn get_ascii_piece_char(side: Side, piece: Piece) -> char {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES_COUNT` is never used
[INFO] [stdout]  --> engine-core/src/history.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const MAX_MOVES_COUNT: usize = 4096;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `History` is never constructed
[INFO] [stdout]  --> engine-core/src/history.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) struct History {
[INFO] [stdout]   |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryEntry` is never constructed
[INFO] [stdout]   --> engine-core/src/history.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct HistoryEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> engine-core/src/history.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl HistoryEntry {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 20 |     pub(crate) fn new(mv: Move, game_state: GameState) -> HistoryEntry {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `push`, and `pop` are never used
[INFO] [stdout]   --> engine-core/src/history.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl History {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 26 |     pub(crate) fn new() -> History {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(crate) fn len(&self) -> usize {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn push(&mut self, entry: HistoryEntry) -> Result<(), HistoryEntry> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn pop(&mut self) -> Option<HistoryEntry> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KING_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/king_attack_table.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const KING_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_king_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const fn get_king_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_king_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/king_attack_table.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | const fn generate_king_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/knight_attack_table.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const KNIGHT_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_knight_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/knight_attack_table.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const fn get_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_knight_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/knight_attack_table.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | const fn generate_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MoveBuffer` is never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) type MoveBuffer = Vec<Move>;
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_pseudo_legal_moves` and `generate_legal_moves` are never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 17 |     pub(crate) fn generate_pseudo_legal_moves(&self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(crate) fn generate_legal_moves(&mut self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_pawn_moves` is never used
[INFO] [stdout]   --> engine-core/src/move_generator.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn generate_pseudo_legal_pawn_moves(board: &Board, side: Side, buf: &mut Vec<Move>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_leaper_pseudo_legal_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn generate_leaper_pseudo_legal_moves(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_sliding_pseudo_legal_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn generate_sliding_pseudo_legal_moves(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_knight_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn generate_pseudo_legal_knight_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_bishop_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn generate_pseudo_legal_bishop_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_rook_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn generate_pseudo_legal_rook_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_queen_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn generate_pseudo_legal_queen_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pseudo_legal_king_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn generate_pseudo_legal_king_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_castling_moves` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:298:4
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn generate_castling_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_pawn` is never used
[INFO] [stdout]    --> engine-core/src/move_generator.rs:333:4
[INFO] [stdout]     |
[INFO] [stdout] 333 | fn push_pawn(bb: u64, side: Side) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `make_move` and `unmake_move` are never used
[INFO] [stdout]   --> engine-core/src/move_operations.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  8 |     pub fn make_move(&mut self, mv: Move) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub(crate) fn unmake_move(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_ATTACKS_TABLE` is never used
[INFO] [stdout]  --> engine-core/src/pawn_attack_table.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const PAWN_ATTACKS_TABLE: [[u64; chess_consts::SQUARES_COUNT]; chess_consts::SIDES_COUNT] = {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pawn_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/pawn_attack_table.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const fn get_pawn_attacks_mask(side: Side, square: Square) -> u64 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_pawn_attacks_mask` is never used
[INFO] [stdout]   --> engine-core/src/pawn_attack_table.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | const fn generate_pawn_attacks_mask(square: Square, side: Side) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PLY` is never used
[INFO] [stdout]  --> engine-core/src/perft.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAX_PLY: usize = 128;
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft` is never used
[INFO] [stdout]  --> engine-core/src/perft.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn perft(board: &mut Board, depth: u32, ply: usize, bufs: &mut [MoveBuffer]) -> u64 {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XorShift64Star` is never constructed
[INFO] [stdout]  --> engine-core/src/random_generator.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct XorShift64Star {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DEFAULT_STATE`, `new`, `with_seed`, `next_u64`, and `generate_magic_number_candidate` are never used
[INFO] [stdout]   --> engine-core/src/random_generator.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl XorShift64Star {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  6 |     const DEFAULT_STATE: u64 = 0x9e3779b97f4a7c15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout]  7 |
[INFO] [stdout]  8 |     pub(crate) const fn new() -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(crate) const fn with_seed(seed: u64) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) const fn next_u64(&mut self) -> u64 {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) const fn generate_magic_number_candidate(&mut self) -> u64 {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const BISHOP_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_RELEVANT_BIT_COUNTS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const BISHOP_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const ROOK_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_RELEVANT_BIT_COUNTS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const ROOK_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BISHOP_MAGIC_NUMBERS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | static BISHOP_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ROOK_MAGIC_NUMBERS` is never used
[INFO] [stdout]   --> engine-core/src/sliding_piece_attack_table.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | static ROOK_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BISHOP_ATTACKS_TABLE` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | static BISHOP_ATTACKS_TABLE: LazyLock<[[u64; 512]; chess_consts::SQUARES_COUNT]> =
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ROOK_ATTACKS_TABLE` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | static ROOK_ATTACKS_TABLE: LazyLock<Box<[[u64; 4096]; chess_consts::SQUARES_COUNT]>> =
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bishop_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub(crate) fn get_bishop_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rook_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) fn get_rook_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_queen_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:179:15
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub(crate) fn get_queen_attacks_mask(square: Square, occupancy: u64) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relevant_bishop_occupancy_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:183:10
[INFO] [stdout]     |
[INFO] [stdout] 183 | const fn generate_relevant_bishop_occupancy_mask(square: Square) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_relevant_rook_occupancy_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:232:10
[INFO] [stdout]     |
[INFO] [stdout] 232 | const fn generate_relevant_rook_occupancy_mask(square: Square) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_bishop_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:276:10
[INFO] [stdout]     |
[INFO] [stdout] 276 | const fn generate_bishop_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_rook_attacks_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:348:10
[INFO] [stdout]     |
[INFO] [stdout] 348 | const fn generate_rook_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_blocker_mask` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:416:10
[INFO] [stdout]     |
[INFO] [stdout] 416 | const fn build_blocker_mask(index: u32, mut relevant_mask: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_magic_number` is never used
[INFO] [stdout]    --> engine-core/src/sliding_piece_attack_table.rs:435:10
[INFO] [stdout]     |
[INFO] [stdout] 435 | const fn find_magic_number(square: Square, piece: Piece) -> Option<u64> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `helpers`
[INFO] [stdout]  --> engine-core/src/enums.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{chess_consts, helpers};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> engine-core/src/enums.rs:75:29
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) enum Square {
[INFO] [stdout]    |                 ------ variants in this enum
[INFO] [stdout] 74 |     A1, B1, C1, D1, E1, F1, G1, H1,
[INFO] [stdout] 75 |     A2, B2, C2, D2, E2, F2, G2, H2,
[INFO] [stdout]    |                             ^^  ^^
[INFO] [stdout] 76 |     A3, B3, C3, D3, E3, F3, G3, H3,
[INFO] [stdout] 77 |     A4, B4, C4, D4, E4, F4, G4, H4,
[INFO] [stdout]    |             ^^
[INFO] [stdout] 78 |     A5, B5, C5, D5, E5, F5, G5, H5,
[INFO] [stdout]    |         ^^  ^^  ^^
[INFO] [stdout] 79 |     A6, B6, C6, D6, E6, F6, G6, H6,
[INFO] [stdout]    |             ^^
[INFO] [stdout] 80 |     A7, B7, C7, D7, E7, F7, G7, H7,
[INFO] [stdout]    |         ^^              ^^  ^^  ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Square` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `C`, `D`, `E`, and `F` are never constructed
[INFO] [stdout]    --> engine-core/src/enums.rs:219:34
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub(crate) enum File { A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7 }
[INFO] [stdout]     |                 ----             ^    ^    ^    ^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 variants in this enum
[INFO] [stdout]     |
[INFO] [stdout]     = note: `File` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_u8_unchecked` is never used
[INFO] [stdout]    --> engine-core/src/enums.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl File {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `R4` and `R5` are never constructed
[INFO] [stdout]    --> engine-core/src/enums.rs:246:42
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub(crate) enum Rank { R1=0, R2=1, R3=2, R4=3, R5=4, R6=5, R7=6, R8=7 }
[INFO] [stdout]     |                 ----                     ^^    ^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 variants in this enum
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Rank` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]    --> engine-core/src/enums.rs:332:22
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl CastlingSide {
[INFO] [stdout]     | ----------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub(crate) const WHITE_KING_CASTLING_START_POS: Square = Square::E1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     pub(crate) const WHITE_KING_KING_SIDE_CASTLING_END_POS: Square = Square::G1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 334 |     pub(crate) const WHITE_KING_QUEEN_SIDE_CASTLING_END_POS: Square = Square::C1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 335 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_START_POS: Square = Square::H1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 336 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_END_POS: Square = Square::F1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 337 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_START_POS: Square = Square::A1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 338 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_END_POS: Square = Square::D1;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.06s
[INFO] running `Command { std: "docker" "inspect" "c1a29ca36dd509d6f4dbaba647502fd303bd0be592cb5b24982dfc237d5e1e74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1a29ca36dd509d6f4dbaba647502fd303bd0be592cb5b24982dfc237d5e1e74", kill_on_drop: false }`
[INFO] [stdout] c1a29ca36dd509d6f4dbaba647502fd303bd0be592cb5b24982dfc237d5e1e74
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8ed367706174586f9f8318bc7e78ac14d16faa368e0ab0df8b8a51f43f48f56c
[INFO] running `Command { std: "docker" "start" "-a" "8ed367706174586f9f8318bc7e78ac14d16faa368e0ab0df8b8a51f43f48f56c", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `helpers`
[INFO] [stderr]  --> engine-core/src/enums.rs:4:27
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{chess_consts, helpers};
[INFO] [stderr]   |                           ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]   --> engine-core/src/king_attack_table.rs:54:9
[INFO] [stderr]    |
[INFO] [stderr] 54 |     use super::*;
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Board` is never constructed
[INFO] [stderr]   --> engine-core/src/board.rs:17:19
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub(crate) struct Board {
[INFO] [stderr]    |                   ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GameState` is never constructed
[INFO] [stderr]   --> engine-core/src/board.rs:36:19
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub(crate) struct GameState {
[INFO] [stderr]    |                   ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> engine-core/src/board.rs:45:19
[INFO] [stderr]     |
[INFO] [stderr]  44 | impl Board {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr]  45 |     pub(crate) fn get_bb(&self, side: Side, piece: Piece) -> u64 {
[INFO] [stderr]     |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  50 |     pub(crate) fn get_bb_mut(&mut self, side: Side, piece: Piece) -> &mut u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  55 |     pub(crate) fn get_occupancy_bb(&self, side: Side) -> u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  59 |     pub(crate) fn get_occupancy_bb_mut(&mut self, side: Side) -> &mut u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  63 |     pub(crate) fn recalc_occupancies(&mut self) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  78 |     pub(crate) fn get_side_attacks_bb(&self, attacker_side: Side) -> u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub(crate) fn is_square_attacked(&self, square: Square, attacker_side: Side) -> bool {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 140 |     pub fn is_in_check(&self, side: Side) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub fn get_king_square(&self, side: Side) -> Square {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub(crate) fn get_empty_bb(&self) -> u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub(crate) fn get_occupancy_piece(&self, side: Side, square: Square) -> Option<Piece> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 173 |     pub(crate) fn get_start_position() -> Board {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub(crate) fn add_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stderr]     |                   ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 184 |     pub(crate) fn remove_piece(&mut self, side: Side, piece: Piece, square: Square) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 190 |     pub(crate) fn move_piece(&mut self, side: Side, piece: Piece, from: Square, to: Square) {
[INFO] [stderr]     |                   ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `remove_all` and `remove_rook` are never used
[INFO] [stderr]    --> engine-core/src/board.rs:253:12
[INFO] [stderr]     |
[INFO] [stderr] 252 | impl CastlingState {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] 253 |     pub fn remove_all(&mut self, side: Side) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 266 |     pub fn remove_rook(&mut self, side: Side, square: Square) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_castlings` is never used
[INFO] [stderr]    --> engine-core/src/board.rs:283:19
[INFO] [stderr]     |
[INFO] [stderr] 282 | impl CastlingState {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] 283 |     pub(crate) fn get_castlings(&self, side: Side) -> impl Iterator<Item = CastlingSide> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SIDES_COUNT` is never used
[INFO] [stderr]  --> engine-core/src/chess_consts.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) const SIDES_COUNT: usize = 2;
[INFO] [stderr]   |                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BOARD_SIZE` is never used
[INFO] [stderr]  --> engine-core/src/chess_consts.rs:7:18
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub(crate) const BOARD_SIZE: usize = 8;
[INFO] [stderr]   |                  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQUARES_COUNT` is never used
[INFO] [stderr]  --> engine-core/src/chess_consts.rs:8:18
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub(crate) const SQUARES_COUNT: usize = BOARD_SIZE * BOARD_SIZE;
[INFO] [stderr]   |                  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PIECE_TYPES_COUNT` is never used
[INFO] [stderr]  --> engine-core/src/chess_consts.rs:9:18
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub(crate) const PIECE_TYPES_COUNT: usize = 6;
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_HALF_MOVES_COUNT` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub(crate) const MAX_HALF_MOVES_COUNT: u8 = 100;
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EMPTY_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:13:18
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub(crate) const EMPTY_BB: u64 = 0u64;
[INFO] [stderr]    |                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_A_FILE_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:35:18
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub(crate) const NOT_A_FILE_BB: u64 = !helpers::file_mask(File::A);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_H_FILE_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:38:18
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub(crate) const NOT_H_FILE_BB: u64 = !helpers::file_mask(File::H);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_FIRST_RANK_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:41:18
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub(crate) const NOT_FIRST_RANK_BB: u64 = !helpers::rank_mask(Rank::R1);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_EIGHTH_RANK_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:44:18
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub(crate) const NOT_EIGHTH_RANK_BB: u64 = !helpers::rank_mask(Rank::R8);
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_A_B_FILE_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:46:18
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub(crate) const NOT_A_B_FILE_BB: u64 =
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_G_H_FILE_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:49:18
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub(crate) const NOT_G_H_FILE_BB: u64 =
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_FIRST_SECOND_RANK_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:52:18
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub(crate) const NOT_FIRST_SECOND_RANK_BB: u64 =
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NOT_SEVENTH_EIGHTH_RANK_BB` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:55:18
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub(crate) const NOT_SEVENTH_EIGHTH_RANK_BB: u64 =
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EMPTY_BOARD_FEN` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:16:22
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub(crate) const EMPTY_BOARD_FEN: &str = "8/8/8/8/8/8/8/8 w - -";
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `START_POS_FEN` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:17:22
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub(crate) const START_POS_FEN: &str =
[INFO] [stderr]    |                      ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TRICKY_POS_FEN` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:19:22
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub(crate) const TRICKY_POS_FEN: &str =
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KILLER_POS_FEN` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:21:22
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub(crate) const KILLER_POS_FEN: &str =
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CMK_POS_FEN` is never used
[INFO] [stderr]   --> engine-core/src/chess_consts.rs:23:22
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub(crate) const CMK_POS_FEN: &str =
[INFO] [stderr]    |                      ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Side` is never used
[INFO] [stderr]  --> engine-core/src/enums.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub(crate) enum Side {
[INFO] [stderr]   |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `index`, `opposite`, `from_u8_unchecked`, `all`, and `get_promotion_rank` are never used
[INFO] [stderr]   --> engine-core/src/enums.rs:21:25
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Side {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 20 |     #[inline]
[INFO] [stderr] 21 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stderr]    |                         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub(crate) const fn opposite(self) -> Side {
[INFO] [stderr]    |                         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Side {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub(crate) fn all() -> impl Iterator<Item = Side> {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub(crate) fn get_promotion_rank(self) -> Rank {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Square` is never used
[INFO] [stderr]   --> engine-core/src/enums.rs:73:17
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub(crate) enum Square {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:86:25
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl Square {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr]  85 |     #[inline]
[INFO] [stderr]  86 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  91 |     pub(crate) const fn bit(self) -> u64 {
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub(crate) const fn rank(self) -> Rank {
[INFO] [stderr]     |                         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub(crate) const fn file(self) -> Rank {
[INFO] [stderr]     |                         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub(crate) const unsafe fn from_u8_unchecked(v: u8) -> Square {
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub(crate) fn all() -> impl Iterator<Item = Square> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 |     pub(crate) fn range(from: Square, to: Square) -> impl Iterator<Item = Square> {
[INFO] [stderr]     |                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub(crate) fn can_be_en_passant(self) -> bool {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub(crate) fn is_en_passant_target_for(self, side: Side) -> bool {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub(crate) fn backward(self, side: Side) -> Square {
[INFO] [stderr]     |                   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `File` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:219:17
[INFO] [stderr]     |
[INFO] [stderr] 219 | pub(crate) enum File { A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7 }
[INFO] [stderr]     |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:222:25
[INFO] [stderr]     |
[INFO] [stderr] 221 | impl File {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] 222 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Rank` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:246:17
[INFO] [stderr]     |
[INFO] [stderr] 246 | pub(crate) enum Rank { R1=0, R2=1, R3=2, R4=3, R5=4, R6=5, R7=6, R8=7 }
[INFO] [stderr]     |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `index` and `from_u8_unchecked` are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:249:25
[INFO] [stderr]     |
[INFO] [stderr] 248 | impl Rank {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] 249 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Piece` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 | pub(crate) enum Piece {Pawn, Knight, Bishop, Rook, Queen, King}
[INFO] [stderr]     |                 ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `PROMOTION_PIECES`, `index`, `from_u8_unchecked`, and `all` are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:276:22
[INFO] [stderr]     |
[INFO] [stderr] 275 | impl Piece {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr] 276 |     pub(crate) const PROMOTION_PIECES: [Piece; 4] =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 279 |     pub(crate) const fn index(self) -> u8 {
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 283 |     pub(crate) unsafe fn from_u8_unchecked(value: u8) -> Piece {
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 287 |     pub(crate) fn all() -> impl Iterator<Item = Piece> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Move` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:293:17
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub(crate) enum Move {
[INFO] [stderr]     |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CastlingSide` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:308:17
[INFO] [stderr]     |
[INFO] [stderr] 308 | pub(crate) enum CastlingSide {
[INFO] [stderr]     |                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:314:22
[INFO] [stderr]     |
[INFO] [stderr] 313 | impl CastlingSide {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 314 |     pub(crate) const WHITE_KING_SIDE_EMPTY_MASK: u64 = Square::F1.bit() | Square::G1.bit();
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 315 |     pub(crate) const WHITE_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub(crate) const WHITE_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 319 |         Square::B1.bit() | Square::C1.bit() | Square::D1.bit();
[INFO] [stderr] 320 |     pub(crate) const WHITE_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 323 |     pub(crate) const BLACK_KING_SIDE_EMPTY_MASK: u64 = Square::F8.bit() | Square::G8.bit();
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 324 |     pub(crate) const BLACK_KING_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 327 |     pub(crate) const BLACK_QUEEN_SIDE_EMPTY_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 328 |         Square::B8.bit() | Square::C8.bit() | Square::D8.bit();
[INFO] [stderr] 329 |     pub(crate) const BLACK_QUEEN_SIDE_NOT_ATTACKED_MASK: u64 =
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 332 |     pub(crate) const WHITE_KING_CASTLING_START_POS: Square = Square::E1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 333 |     pub(crate) const WHITE_KING_KING_SIDE_CASTLING_END_POS: Square = Square::G1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 334 |     pub(crate) const WHITE_KING_QUEEN_SIDE_CASTLING_END_POS: Square = Square::C1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 335 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_START_POS: Square = Square::H1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 336 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_END_POS: Square = Square::F1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 337 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_START_POS: Square = Square::A1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 338 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_END_POS: Square = Square::D1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 339 |
[INFO] [stderr] 340 |     pub(crate) fn get_castling_positions(
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FEN_PARTS_COUNT` is never used
[INFO] [stderr]  --> engine-core/src/fen_parser.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const FEN_PARTS_COUNT: usize = 6;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FEN_PARTS_SPLITTER` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const FEN_PARTS_SPLITTER: char = ' ';
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SIDE_TO_MOVE_CHARS` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const SIDE_TO_MOVE_CHARS: &str = "wb";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ParseFenError` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:14:17
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(crate) enum ParseFenError {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ParseFenResult` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:47:6
[INFO] [stderr]    |
[INFO] [stderr] 47 | type ParseFenResult = Result<Board, ParseFenError>;
[INFO] [stderr]    |      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ParseFenPartResult` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:48:6
[INFO] [stderr]    |
[INFO] [stderr] 48 | type ParseFenPartResult = Result<(), ParseFenError>;
[INFO] [stderr]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_fen_string` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:50:15
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub(crate) fn parse_fen_string(fen: &str) -> ParseFenResult {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_pieces` is never used
[INFO] [stderr]   --> engine-core/src/fen_parser.rs:79:4
[INFO] [stderr]    |
[INFO] [stderr] 79 | fn parse_pieces(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_side_to_move` is never used
[INFO] [stderr]    --> engine-core/src/fen_parser.rs:133:4
[INFO] [stderr]     |
[INFO] [stderr] 133 | fn parse_side_to_move(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_castling_rights` is never used
[INFO] [stderr]    --> engine-core/src/fen_parser.rs:150:4
[INFO] [stderr]     |
[INFO] [stderr] 150 | fn parse_castling_rights(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_en_passant_square` is never used
[INFO] [stderr]    --> engine-core/src/fen_parser.rs:181:4
[INFO] [stderr]     |
[INFO] [stderr] 181 | fn parse_en_passant_square(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_half_move_clock` is never used
[INFO] [stderr]    --> engine-core/src/fen_parser.rs:205:4
[INFO] [stderr]     |
[INFO] [stderr] 205 | fn parse_half_move_clock(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_full_move_number` is never used
[INFO] [stderr]    --> engine-core/src/fen_parser.rs:217:4
[INFO] [stderr]     |
[INFO] [stderr] 217 | fn parse_full_move_number(board: &mut Board, part: &str) -> ParseFenPartResult {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_bitboard` is never used
[INFO] [stderr]  --> engine-core/src/helpers.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn print_bitboard(bitboard: u64) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_bit_set` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:41:14
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub const fn is_bit_set(bb: u64, square: Square) -> bool {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_bit` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:49:14
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub const fn set_bit(bb: u64, square: Square) -> u64 {
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pop_bit` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:58:14
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub const fn pop_bit(bb: u64, square: Square) -> u64 {
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `flip_bit` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:67:14
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub const fn flip_bit(bb: u64, square: Square) -> u64 {
[INFO] [stderr]    |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rank_mask` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:76:14
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub const fn rank_mask(rank: Rank) -> u64 {
[INFO] [stderr]    |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `file_mask` is never used
[INFO] [stderr]   --> engine-core/src/helpers.rs:93:14
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub const fn file_mask(file: File) -> u64 {
[INFO] [stderr]    |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `square_mask` is never used
[INFO] [stderr]    --> engine-core/src/helpers.rs:104:14
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub const fn square_mask(rank: u8, file: u8) -> u64 {
[INFO] [stderr]     |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `squares_mask` is never used
[INFO] [stderr]    --> engine-core/src/helpers.rs:108:8
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub fn squares_mask(squares: impl IntoIterator<Item = Square>) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_bits_iter` is never used
[INFO] [stderr]    --> engine-core/src/helpers.rs:122:15
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub(crate) fn get_bits_iter(bb: u64) -> impl Iterator<Item = usize> {
[INFO] [stderr]     |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_squares_iter` is never used
[INFO] [stderr]    --> engine-core/src/helpers.rs:140:15
[INFO] [stderr]     |
[INFO] [stderr] 140 | pub(crate) fn get_squares_iter(bb: u64) -> impl Iterator<Item = Square> {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_ascii_piece_char` is never used
[INFO] [stderr]    --> engine-core/src/helpers.rs:155:15
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub(crate) fn get_ascii_piece_char(side: Side, piece: Piece) -> char {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_MOVES_COUNT` is never used
[INFO] [stderr]  --> engine-core/src/history.rs:5:7
[INFO] [stderr]   |
[INFO] [stderr] 5 | const MAX_MOVES_COUNT: usize = 4096;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `History` is never constructed
[INFO] [stderr]  --> engine-core/src/history.rs:8:19
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub(crate) struct History {
[INFO] [stderr]   |                   ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HistoryEntry` is never constructed
[INFO] [stderr]   --> engine-core/src/history.rs:14:19
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(crate) struct HistoryEntry {
[INFO] [stderr]    |                   ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> engine-core/src/history.rs:20:19
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl HistoryEntry {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 20 |     pub(crate) fn new(mv: Move, game_state: GameState) -> HistoryEntry {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `len`, `push`, and `pop` are never used
[INFO] [stderr]   --> engine-core/src/history.rs:26:19
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl History {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 26 |     pub(crate) fn new() -> History {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub(crate) fn len(&self) -> usize {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub(crate) fn push(&mut self, entry: HistoryEntry) -> Result<(), HistoryEntry> {
[INFO] [stderr]    |                   ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub(crate) fn pop(&mut self) -> Option<HistoryEntry> {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KING_ATTACKS_TABLE` is never used
[INFO] [stderr]  --> engine-core/src/king_attack_table.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const KING_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_king_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/king_attack_table.rs:18:21
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub(crate) const fn get_king_attacks_mask(square: Square) -> u64 {
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_king_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/king_attack_table.rs:22:10
[INFO] [stderr]    |
[INFO] [stderr] 22 | const fn generate_king_attacks_mask(square: Square) -> u64 {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KNIGHT_ATTACKS_TABLE` is never used
[INFO] [stderr]  --> engine-core/src/knight_attack_table.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const KNIGHT_ATTACKS_TABLE: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_knight_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/knight_attack_table.rs:19:21
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub(crate) const fn get_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_knight_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/knight_attack_table.rs:24:10
[INFO] [stderr]    |
[INFO] [stderr] 24 | const fn generate_knight_attacks_mask(square: Square) -> u64 {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `MoveBuffer` is never used
[INFO] [stderr]   --> engine-core/src/move_generator.rs:14:17
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(crate) type MoveBuffer = Vec<Move>;
[INFO] [stderr]    |                 ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `generate_pseudo_legal_moves` and `generate_legal_moves` are never used
[INFO] [stderr]   --> engine-core/src/move_generator.rs:17:19
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl Board {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] 17 |     pub(crate) fn generate_pseudo_legal_moves(&self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub(crate) fn generate_legal_moves(&mut self, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_pawn_moves` is never used
[INFO] [stderr]   --> engine-core/src/move_generator.rs:58:4
[INFO] [stderr]    |
[INFO] [stderr] 58 | fn generate_pseudo_legal_pawn_moves(board: &Board, side: Side, buf: &mut Vec<Move>) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_leaper_pseudo_legal_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:193:4
[INFO] [stderr]     |
[INFO] [stderr] 193 | fn generate_leaper_pseudo_legal_moves(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_sliding_pseudo_legal_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:236:4
[INFO] [stderr]     |
[INFO] [stderr] 236 | fn generate_sliding_pseudo_legal_moves(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_knight_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:278:4
[INFO] [stderr]     |
[INFO] [stderr] 278 | fn generate_pseudo_legal_knight_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_bishop_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:282:4
[INFO] [stderr]     |
[INFO] [stderr] 282 | fn generate_pseudo_legal_bishop_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_rook_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:286:4
[INFO] [stderr]     |
[INFO] [stderr] 286 | fn generate_pseudo_legal_rook_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_queen_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:290:4
[INFO] [stderr]     |
[INFO] [stderr] 290 | fn generate_pseudo_legal_queen_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pseudo_legal_king_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:294:4
[INFO] [stderr]     |
[INFO] [stderr] 294 | fn generate_pseudo_legal_king_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_castling_moves` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:298:4
[INFO] [stderr]     |
[INFO] [stderr] 298 | fn generate_castling_moves(board: &Board, side: Side, buf: &mut MoveBuffer) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `push_pawn` is never used
[INFO] [stderr]    --> engine-core/src/move_generator.rs:333:4
[INFO] [stderr]     |
[INFO] [stderr] 333 | fn push_pawn(bb: u64, side: Side) -> u64 {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `make_move` and `unmake_move` are never used
[INFO] [stderr]   --> engine-core/src/move_operations.rs:8:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl Board {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr]  8 |     pub fn make_move(&mut self, mv: Move) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 98 |     pub(crate) fn unmake_move(&mut self) {
[INFO] [stderr]    |                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PAWN_ATTACKS_TABLE` is never used
[INFO] [stderr]  --> engine-core/src/pawn_attack_table.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | const PAWN_ATTACKS_TABLE: [[u64; chess_consts::SQUARES_COUNT]; chess_consts::SIDES_COUNT] = {
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pawn_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/pawn_attack_table.rs:27:21
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub(crate) const fn get_pawn_attacks_mask(side: Side, square: Square) -> u64 {
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_pawn_attacks_mask` is never used
[INFO] [stderr]   --> engine-core/src/pawn_attack_table.rs:32:10
[INFO] [stderr]    |
[INFO] [stderr] 32 | const fn generate_pawn_attacks_mask(square: Square, side: Side) -> u64 {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PLY` is never used
[INFO] [stderr]  --> engine-core/src/perft.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const MAX_PLY: usize = 128;
[INFO] [stderr]   |       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `perft` is never used
[INFO] [stderr]  --> engine-core/src/perft.rs:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub(crate) fn perft(board: &mut Board, depth: u32, ply: usize, bufs: &mut [MoveBuffer]) -> u64 {
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `XorShift64Star` is never constructed
[INFO] [stderr]  --> engine-core/src/random_generator.rs:1:19
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub(crate) struct XorShift64Star {
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `DEFAULT_STATE`, `new`, `with_seed`, `next_u64`, and `generate_magic_number_candidate` are never used
[INFO] [stderr]   --> engine-core/src/random_generator.rs:6:11
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl XorShift64Star {
[INFO] [stderr]    | ------------------- associated items in this implementation
[INFO] [stderr]  6 |     const DEFAULT_STATE: u64 = 0x9e3779b97f4a7c15;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr]  7 |
[INFO] [stderr]  8 |     pub(crate) const fn new() -> Self {
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub(crate) const fn with_seed(seed: u64) -> Self {
[INFO] [stderr]    |                         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub(crate) const fn next_u64(&mut self) -> u64 {
[INFO] [stderr]    |                         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub(crate) const fn generate_magic_number_candidate(&mut self) -> u64 {
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BISHOP_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const BISHOP_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BISHOP_RELEVANT_BIT_COUNTS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:27:7
[INFO] [stderr]    |
[INFO] [stderr] 27 | const BISHOP_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROOK_RELEVANT_OCCUPANCY_MASKS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:40:7
[INFO] [stderr]    |
[INFO] [stderr] 40 | const ROOK_RELEVANT_OCCUPANCY_MASKS: [u64; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROOK_RELEVANT_BIT_COUNTS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:57:7
[INFO] [stderr]    |
[INFO] [stderr] 57 | const ROOK_RELEVANT_BIT_COUNTS: [u8; chess_consts::SQUARES_COUNT] = {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `BISHOP_MAGIC_NUMBERS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | static BISHOP_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `ROOK_MAGIC_NUMBERS` is never used
[INFO] [stderr]   --> engine-core/src/sliding_piece_attack_table.rs:88:8
[INFO] [stderr]    |
[INFO] [stderr] 88 | static ROOK_MAGIC_NUMBERS: LazyLock<[u64; chess_consts::SQUARES_COUNT]> = LazyLock::new(|| {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `BISHOP_ATTACKS_TABLE` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:106:8
[INFO] [stderr]     |
[INFO] [stderr] 106 | static BISHOP_ATTACKS_TABLE: LazyLock<[[u64; 512]; chess_consts::SQUARES_COUNT]> =
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `ROOK_ATTACKS_TABLE` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:131:8
[INFO] [stderr]     |
[INFO] [stderr] 131 | static ROOK_ATTACKS_TABLE: LazyLock<Box<[[u64; 4096]; chess_consts::SQUARES_COUNT]>> =
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_bishop_attacks_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:159:15
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub(crate) fn get_bishop_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_rook_attacks_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:169:15
[INFO] [stderr]     |
[INFO] [stderr] 169 | pub(crate) fn get_rook_attacks_mask(square: Square, mut occupancy: u64) -> u64 {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_queen_attacks_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:179:15
[INFO] [stderr]     |
[INFO] [stderr] 179 | pub(crate) fn get_queen_attacks_mask(square: Square, occupancy: u64) -> u64 {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_relevant_bishop_occupancy_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:183:10
[INFO] [stderr]     |
[INFO] [stderr] 183 | const fn generate_relevant_bishop_occupancy_mask(square: Square) -> u64 {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_relevant_rook_occupancy_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:232:10
[INFO] [stderr]     |
[INFO] [stderr] 232 | const fn generate_relevant_rook_occupancy_mask(square: Square) -> u64 {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_bishop_attacks_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:276:10
[INFO] [stderr]     |
[INFO] [stderr] 276 | const fn generate_bishop_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_rook_attacks_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:348:10
[INFO] [stderr]     |
[INFO] [stderr] 348 | const fn generate_rook_attacks_mask(square: Square, blockers: u64) -> u64 {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_blocker_mask` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:416:10
[INFO] [stderr]     |
[INFO] [stderr] 416 | const fn build_blocker_mask(index: u32, mut relevant_mask: u64) -> u64 {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_magic_number` is never used
[INFO] [stderr]    --> engine-core/src/sliding_piece_attack_table.rs:435:10
[INFO] [stderr]     |
[INFO] [stderr] 435 | const fn find_magic_number(square: Square, piece: Piece) -> Option<u64> {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `engine-core` (lib) generated 112 warnings (run `cargo fix --lib -p engine-core` to apply 2 suggestions)
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> engine-core/src/enums.rs:75:29
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub(crate) enum Square {
[INFO] [stderr]    |                 ------ variants in this enum
[INFO] [stderr] 74 |     A1, B1, C1, D1, E1, F1, G1, H1,
[INFO] [stderr] 75 |     A2, B2, C2, D2, E2, F2, G2, H2,
[INFO] [stderr]    |                             ^^  ^^
[INFO] [stderr] 76 |     A3, B3, C3, D3, E3, F3, G3, H3,
[INFO] [stderr] 77 |     A4, B4, C4, D4, E4, F4, G4, H4,
[INFO] [stderr]    |             ^^
[INFO] [stderr] 78 |     A5, B5, C5, D5, E5, F5, G5, H5,
[INFO] [stderr]    |         ^^  ^^  ^^
[INFO] [stderr] 79 |     A6, B6, C6, D6, E6, F6, G6, H6,
[INFO] [stderr]    |             ^^
[INFO] [stderr] 80 |     A7, B7, C7, D7, E7, F7, G7, H7,
[INFO] [stderr]    |         ^^              ^^  ^^  ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Square` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `C`, `D`, `E`, and `F` are never constructed
[INFO] [stderr]    --> engine-core/src/enums.rs:219:34
[INFO] [stderr]     |
[INFO] [stderr] 219 | pub(crate) enum File { A=0, B=1, C=2, D=3, E=4, F=5, G=6, H=7 }
[INFO] [stderr]     |                 ----             ^    ^    ^    ^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 variants in this enum
[INFO] [stderr]     |
[INFO] [stderr]     = note: `File` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_u8_unchecked` is never used
[INFO] [stderr]    --> engine-core/src/enums.rs:226:32
[INFO] [stderr]     |
[INFO] [stderr] 221 | impl File {
[INFO] [stderr]     | --------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 226 |     pub(crate) const unsafe fn from_u8_unchecked(value: u8) -> Rank {
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `R4` and `R5` are never constructed
[INFO] [stderr]    --> engine-core/src/enums.rs:246:42
[INFO] [stderr]     |
[INFO] [stderr] 246 | pub(crate) enum Rank { R1=0, R2=1, R3=2, R4=3, R5=4, R6=5, R7=6, R8=7 }
[INFO] [stderr]     |                 ----                     ^^    ^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 variants in this enum
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Rank` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated constants are never used
[INFO] [stderr]    --> engine-core/src/enums.rs:332:22
[INFO] [stderr]     |
[INFO] [stderr] 313 | impl CastlingSide {
[INFO] [stderr]     | ----------------- associated constants in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 332 |     pub(crate) const WHITE_KING_CASTLING_START_POS: Square = Square::E1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 333 |     pub(crate) const WHITE_KING_KING_SIDE_CASTLING_END_POS: Square = Square::G1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 334 |     pub(crate) const WHITE_KING_QUEEN_SIDE_CASTLING_END_POS: Square = Square::C1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 335 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_START_POS: Square = Square::H1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 336 |     pub(crate) const WHITE_ROOK_KING_SIDE_CASTLING_END_POS: Square = Square::F1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 337 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_START_POS: Square = Square::A1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 338 |     pub(crate) const WHITE_ROOK_QUEEN_SIDE_END_POS: Square = Square::D1;
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `engine-core` (lib test) generated 6 warnings (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/engine_core-92e8e5c416f7035e)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test board::tests::test_board_displaying ... ignored
[INFO] [stdout] test board::tests::test_get_side_attacks_bb ... ignored
[INFO] [stdout] test chess_consts::tests::test_consts ... ignored
[INFO] [stdout] test enums::tests::square_bit_tests ... ok
[INFO] [stdout] test enums::tests::square_rank_tests ... ok
[INFO] [stdout] test enums::tests::square_file_tests ... ok
[INFO] [stdout] test enums::tests::square_index_tests ... ok
[INFO] [stdout] test enums::tests::square_to_string_tests ... ok
[INFO] [stdout] test enums::tests::square_try_from_tests ... ok
[INFO] [stdout] test enums::tests::test_move_size ... ignored
[INFO] [stdout] test fen_parser::tests::test_parse_fen_string ... ignored
[INFO] [stdout] test helpers::tests::flip_bit_tests ... ok
[INFO] [stdout] test helpers::tests::print_bitboard_test ... ignored
[INFO] [stdout] test helpers::tests::get_bit_tests ... ok
[INFO] [stdout] test pawn_attack_table::tests::test_pawn_attacks_table ... ignored
[INFO] [stdout] test helpers::tests::pop_bit_tests ... ok
[INFO] [stdout] test helpers::tests::set_bit_tests ... ok
[INFO] [stdout] test knight_attack_table::tests::test_knight_attacks_table ... ok
[INFO] [stdout] test king_attack_table::tests::test_king_attacks_table ... ok
[INFO] [stdout] test random_generator::tests::test_generate_magic_number_candidate ... ignored
[INFO] [stdout] test random_generator::tests::test_xor_shift_64_star_random_generator ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_bishop_and_rook_relevant_bit_counts_tables ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_bishop_rook_attacks_tables ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_build_blocker_mask ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_find_magic_number ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_generate_bishop_attacks_mask ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_generate_relevant_bishop_occupancy_mask ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_generate_relevant_rook_occupancy_mask ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_generate_rook_attacks_mask ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_queen_attacks_table ... ignored
[INFO] [stdout] test sliding_piece_attack_table::tests::test_system_supports_pext_operation ... ignored
[INFO] [stdout] test board::tests::test_is_square_attacked ... ok
[INFO] [stdout] test perft::tests::position_3_test ... ok
[INFO] [stdout] test perft::tests::position_5_test ... ok
[INFO] [stdout] test perft::tests::position_6_test ... ok
[INFO] [stdout] test perft::tests::test_perft_initial_position ... ok
[INFO] [stdout] test perft::tests::position_4_test ... ok
[INFO] [stdout] test perft::tests::test_kiwipeter_position has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "8ed367706174586f9f8318bc7e78ac14d16faa368e0ab0df8b8a51f43f48f56c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ed367706174586f9f8318bc7e78ac14d16faa368e0ab0df8b8a51f43f48f56c", kill_on_drop: false }`
[INFO] [stdout] 8ed367706174586f9f8318bc7e78ac14d16faa368e0ab0df8b8a51f43f48f56c
