[INFO] cloning repository https://github.com/jarekr/crusty
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jarekr/crusty" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjarekr%2Fcrusty", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjarekr%2Fcrusty'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 45418550625ad7b8bc5e1bc66f0937474aa1f214
[INFO] checking jarekr/crusty against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjarekr%2Fcrusty" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jarekr/crusty
[INFO] finished tweaking git repo https://github.com/jarekr/crusty
[INFO] tweaked toml for git repo https://github.com/jarekr/crusty written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jarekr/crusty on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jarekr/crusty 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smallvec v1.11.1
[INFO] [stderr]   Downloaded serde_derive v1.0.189
[INFO] [stderr]   Downloaded circular v0.3.0
[INFO] [stderr]   Downloaded clap_lex v0.5.1
[INFO] [stderr]   Downloaded bilge v0.2.0
[INFO] [stderr]   Downloaded errno v0.3.5
[INFO] [stderr]   Downloaded arbitrary-int v1.2.6
[INFO] [stderr]   Downloaded datasize_derive v0.2.15
[INFO] [stderr]   Downloaded datasize v0.2.15
[INFO] [stderr]   Downloaded byteorder v0.5.3
[INFO] [stderr]   Downloaded lzma v0.2.2
[INFO] [stderr]   Downloaded clap_derive v4.4.2
[INFO] [stderr]   Downloaded bilge-impl v0.2.0
[INFO] [stderr]   Downloaded colored v2.0.4
[INFO] [stderr]   Downloaded const_format_proc_macros v0.2.32
[INFO] [stderr]   Downloaded clap v4.4.6
[INFO] [stderr]   Downloaded serde v1.0.189
[INFO] [stderr]   Downloaded const_format v0.2.32
[INFO] [stderr]   Downloaded pgn-reader v0.25.0
[INFO] [stderr]   Downloaded hashbrown v0.14.2
[INFO] [stderr]   Downloaded serde_json v1.0.107
[INFO] [stderr]   Downloaded clap_builder v4.4.6
[INFO] [stderr]   Downloaded rusqlite v0.29.0
[INFO] [stderr]   Downloaded syn v2.0.38
[INFO] [stderr]   Downloaded rustix v0.38.20
[INFO] [stderr]   Downloaded libc v0.2.149
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.10
[INFO] [stderr]   Downloaded libsqlite3-sys v0.26.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b95f24a9eda26b43010acfe2472d599fc7a82ee5f8c58c5809d844e6515697cb
[INFO] running `Command { std: "docker" "start" "-a" "b95f24a9eda26b43010acfe2472d599fc7a82ee5f8c58c5809d844e6515697cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b95f24a9eda26b43010acfe2472d599fc7a82ee5f8c58c5809d844e6515697cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b95f24a9eda26b43010acfe2472d599fc7a82ee5f8c58c5809d844e6515697cb", kill_on_drop: false }`
[INFO] [stdout] b95f24a9eda26b43010acfe2472d599fc7a82ee5f8c58c5809d844e6515697cb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d57c10c4f49b5261c2cb7abf200ae17bc32fe95dd23d90ea4c0e94aaf712796c
[INFO] running `Command { std: "docker" "start" "-a" "d57c10c4f49b5261c2cb7abf200ae17bc32fe95dd23d90ea4c0e94aaf712796c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.69
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]     Checking linux-raw-sys v0.4.10
[INFO] [stderr]    Compiling serde v1.0.189
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling ahash v0.8.3
[INFO] [stderr]     Checking anstyle-parse v0.2.2
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]     Checking anstyle-query v1.0.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling serde_json v1.0.107
[INFO] [stderr]     Checking clap_lex v0.5.1
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking arbitrary-int v1.2.6
[INFO] [stderr]     Checking smallvec v1.11.1
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking circular v0.3.0
[INFO] [stderr]     Checking anstream v0.6.4
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]     Checking lzma v0.2.2
[INFO] [stderr]     Checking hashbrown v0.14.2
[INFO] [stderr]     Checking clap_builder v4.4.6
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.32
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking colored v2.0.4
[INFO] [stderr]     Checking btoi v0.4.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking shakmaty v0.26.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]     Checking const_format v0.2.32
[INFO] [stderr]    Compiling serde_derive v1.0.189
[INFO] [stderr]    Compiling bilge-impl v0.2.0
[INFO] [stderr]    Compiling clap_derive v4.4.2
[INFO] [stderr]     Checking bilge v0.2.0
[INFO] [stderr]    Compiling datasize_derive v0.2.15
[INFO] [stderr]     Checking clap v4.4.6
[INFO] [stderr]     Checking datasize v0.2.15
[INFO] [stderr]     Checking pgn-reader v0.25.0
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking crusty v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PositionTrieAddress`
[INFO] [stdout]   --> src/main.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 | use persistance::{PositionSegment, PositionTrie, PositionTrieAddress};
[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: `borrow::Borrow`
[INFO] [stdout]  --> src/parsing.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{borrow::Borrow, collections::HashMap, hash::{DefaultHasher, Hash, Hasher}, path::PathBuf};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/execution.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `persistance::PositionSegment`
[INFO] [stdout]   --> src/execution.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use persistance::PositionSegment;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitPosition`
[INFO] [stdout]   --> src/execution.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | use parsing::{BitPosition, GameVisitor};
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Db` and `Game`
[INFO] [stdout]   --> src/execution.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | use db::{Db, Game};
[INFO] [stdout]    |          ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_visitor_to_positions`
[INFO] [stdout]   --> src/main.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 | use execution::{create_readers_for_dir, games_for_buffs, game_visitor_to_positions};
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threadpool::ThreadPool`
[INFO] [stdout]   --> src/main.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use threadpool::ThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::Borrow`
[INFO] [stdout]  --> src/parsing.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{borrow::Borrow, collections::HashMap, hash::{DefaultHasher, Hash, Hasher}, path::PathBuf};
[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: `PathBuf`
[INFO] [stdout]  --> src/execution.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `persistance::PositionSegment`
[INFO] [stdout]   --> src/execution.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use persistance::PositionSegment;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitPosition`
[INFO] [stdout]   --> src/execution.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | use parsing::{BitPosition, GameVisitor};
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Db` and `Game`
[INFO] [stdout]   --> src/execution.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | use db::{Db, Game};
[INFO] [stdout]    |          ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_visitor_to_positions`
[INFO] [stdout]   --> src/main.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 | use execution::{create_readers_for_dir, games_for_buffs, game_visitor_to_positions};
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threadpool::ThreadPool`
[INFO] [stdout]   --> src/main.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use threadpool::ThreadPool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/db.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Err(err) => (),
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/db.rs:332:21
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 Err(err) => (),
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_node_idx` is never read
[INFO] [stdout]    --> src/persistance.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let mut current_node_idx: usize = 0;
[INFO] [stdout]     |                                           ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_node_idx` is never read
[INFO] [stdout]    --> src/persistance.rs:194:43
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let mut current_node_idx: usize = 0;
[INFO] [stdout]     |                                           ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parsing.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut postfix: &str;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parsing.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut postfix: &str;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/execution.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut pos_id: u64 = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos_id`
[INFO] [stdout]   --> src/execution.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut pos_id: u64 = 0;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/execution.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let pos = Position {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/execution.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut pos_id: u64 = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos_id`
[INFO] [stdout]   --> src/execution.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut pos_id: u64 = 0;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pos_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/execution.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let pos = Position {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut duplicate_games: i64 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duplicate_games`
[INFO] [stdout]    --> src/main.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut duplicate_games: i64 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duplicate_games`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut duplicate_games: i64 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duplicate_games`
[INFO] [stdout]    --> src/main.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut duplicate_games: i64 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duplicate_games`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pos_id` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let mut pos_id: u64 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pos_id` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pos_id` is never read
[INFO] [stdout]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             pos_id += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pt_add`
[INFO] [stdout]    --> src/main.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 |         let pt_add = PositionTrieAddress {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pt_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pos_id` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:173:9
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let mut pos_id: u64 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pos_id` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pos_id` is never read
[INFO] [stdout]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |             pos_id += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_in_parallel` is never used
[INFO] [stdout]   --> src/main.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn parse_in_parallel() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_old` is never used
[INFO] [stdout]    --> src/main.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn main_old() {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bob` is never used
[INFO] [stdout]    --> src/main.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn bob() {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pos` is never used
[INFO] [stdout]    --> src/main.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn print_pos(p: &BitPosition) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_BY_ID_GAMES_SQL` is never used
[INFO] [stdout]   --> src/db.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const GET_BY_ID_GAMES_SQL: &str = concatcp!(
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R12_SQL` is never used
[INFO] [stdout]    --> src/db.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const INSERT_INTO_R12_SQL: &str = concatcp!("INSERT INTO ", R12_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R12_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:128:7
[INFO] [stdout]     |
[INFO] [stdout] 128 | const R12_GET_ID: &str = concatcp!("SELECT id FROM ", R12_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R34_SQL` is never used
[INFO] [stdout]    --> src/db.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 | const INSERT_INTO_R34_SQL: &str = concatcp!("INSERT INTO ", R34_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R34_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const R34_GET_ID: &str = concatcp!("SELECT id FROM ", R34_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R56_SQL` is never used
[INFO] [stdout]    --> src/db.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 | const INSERT_INTO_R56_SQL: &str = concatcp!("INSERT INTO ", R56_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R56_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:132:7
[INFO] [stdout]     |
[INFO] [stdout] 132 | const R56_GET_ID: &str = concatcp!("SELECT id FROM ", R56_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R78_SQL` is never used
[INFO] [stdout]    --> src/db.rs:133:7
[INFO] [stdout]     |
[INFO] [stdout] 133 | const INSERT_INTO_R78_SQL: &str = concatcp!("INSERT INTO ", R78_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R78_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 | const R78_GET_ID: &str = concatcp!("SELECT id FROM ", R78_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_GAMES_POS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const INSERT_GAMES_POS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_POSITIONS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:186:7
[INFO] [stdout]     |
[INFO] [stdout] 186 | const INSERT_INTO_POSITIONS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_POS_FOR_IDS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:192:7
[INFO] [stdout]     |
[INFO] [stdout] 192 | const GET_POS_FOR_IDS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_ALL_POSITIONS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:198:7
[INFO] [stdout]     |
[INFO] [stdout] 198 | const GET_ALL_POSITIONS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/db.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct Game {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 249 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `insert` and `query_by_id` are never used
[INFO] [stdout]    --> src/db.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl Game {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn insert(db: &Db, game: &Game) -> Result<i64, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn query_by_id(db: &Db, id: u32) -> Option<Game> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]    --> src/db.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub struct Position {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `insert` and `get_all` are never used
[INFO] [stdout]    --> src/db.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl Position {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 387 |     pub fn insert(db: &Db, r12: u64, r34: u64, r56: u64, r78: u64) -> Result<i64, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     pub fn get_all(db: &Db) -> Result<Vec<(u32, u64, u64, u64, u64)>, Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GamePosition` is never constructed
[INFO] [stdout]    --> src/db.rs:442:12
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub struct GamePosition {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `insert` is never used
[INFO] [stdout]    --> src/db.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | impl GamePosition {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 450 |     pub fn insert(db: &Db, game_id: i64, position_ids: Vec<i64>) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTrieConfig` is never constructed
[INFO] [stdout]   --> src/persistance.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct PositionTrieConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `are_children_dirty` and `is_terminal` are never read
[INFO] [stdout]    --> src/persistance.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct PositionTrieNode {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub are_children_dirty: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 |     pub is_terminal: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionTrieNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `sort` and `position_quad_to_bytes` are never used
[INFO] [stdout]    --> src/persistance.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl PositionSegment {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn sort(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn position_quad_to_bytes(r12: u64, r34: u64, r56: u64, r78: u64) -> [u8; 32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RustyConfig` is never constructed
[INFO] [stdout]  --> src/parsing.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RustyConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `parse_from_str`, `from_bits2`, and `from_bits` are never used
[INFO] [stdout]    --> src/parsing.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl BitPosition {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn parse_from_str(fen: &str) -> Result<BitPosition, &str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn from_bits2(val: u64) -> [u8; 16] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn from_bits(r12: u64, r34: u64, r56: u64, r78: u64) -> Result<BitPosition, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_in_parallel` is never used
[INFO] [stdout]   --> src/main.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn parse_in_parallel() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_ROOK_C` is never used
[INFO] [stdout]    --> src/parsing.rs:425:11
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub const BLACK_ROOK_C: char = 'r';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KNIGHT_C` is never used
[INFO] [stdout]    --> src/parsing.rs:426:11
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub const BLACK_KNIGHT_C: char = 'n';
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_old` is never used
[INFO] [stdout]    --> src/main.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn main_old() {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_BISHOP_C` is never used
[INFO] [stdout]    --> src/parsing.rs:427:11
[INFO] [stdout]     |
[INFO] [stdout] 427 | pub const BLACK_BISHOP_C: char = 'b';
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bob` is never used
[INFO] [stdout]    --> src/main.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn bob() {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_QUEEN_C` is never used
[INFO] [stdout]    --> src/parsing.rs:428:11
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub const BLACK_QUEEN_C: char = 'q';
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pos` is never used
[INFO] [stdout]    --> src/main.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn print_pos(p: &BitPosition) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KING_C` is never used
[INFO] [stdout]    --> src/parsing.rs:429:11
[INFO] [stdout]     |
[INFO] [stdout] 429 | pub const BLACK_KING_C: char = 'k';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_BY_ID_GAMES_SQL` is never used
[INFO] [stdout]   --> src/db.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const GET_BY_ID_GAMES_SQL: &str = concatcp!(
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_PAWN_C` is never used
[INFO] [stdout]    --> src/parsing.rs:430:11
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub const BLACK_PAWN_C: char = 'p';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R12_SQL` is never used
[INFO] [stdout]    --> src/db.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const INSERT_INTO_R12_SQL: &str = concatcp!("INSERT INTO ", R12_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VAL_TO_PIECE` is never used
[INFO] [stdout]    --> src/parsing.rs:500:12
[INFO] [stdout]     |
[INFO] [stdout] 500 | pub static VAL_TO_PIECE: Lazy<HashMap<u8, &Lazy<PieceInPlay>>> = Lazy::new(|| {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R12_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:128:7
[INFO] [stdout]     |
[INFO] [stdout] 128 | const R12_GET_ID: &str = concatcp!("SELECT id FROM ", R12_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_visitor_to_positions` is never used
[INFO] [stdout]   --> src/execution.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn game_visitor_to_positions(visitor: GameVisitor) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R34_SQL` is never used
[INFO] [stdout]    --> src/db.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 | const INSERT_INTO_R34_SQL: &str = concatcp!("INSERT INTO ", R34_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R34_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:130:7
[INFO] [stdout]     |
[INFO] [stdout] 130 | const R34_GET_ID: &str = concatcp!("SELECT id FROM ", R34_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R56_SQL` is never used
[INFO] [stdout]    --> src/db.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 | const INSERT_INTO_R56_SQL: &str = concatcp!("INSERT INTO ", R56_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R56_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:132:7
[INFO] [stdout]     |
[INFO] [stdout] 132 | const R56_GET_ID: &str = concatcp!("SELECT id FROM ", R56_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_R78_SQL` is never used
[INFO] [stdout]    --> src/db.rs:133:7
[INFO] [stdout]     |
[INFO] [stdout] 133 | const INSERT_INTO_R78_SQL: &str = concatcp!("INSERT INTO ", R78_TABLE, " ( row ) VALUES (:row)");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `R78_GET_ID` is never used
[INFO] [stdout]    --> src/db.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 | const R78_GET_ID: &str = concatcp!("SELECT id FROM ", R78_TABLE, " WHERE row = :row");
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_GAMES_POS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const INSERT_GAMES_POS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSERT_INTO_POSITIONS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:186:7
[INFO] [stdout]     |
[INFO] [stdout] 186 | const INSERT_INTO_POSITIONS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_POS_FOR_IDS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:192:7
[INFO] [stdout]     |
[INFO] [stdout] 192 | const GET_POS_FOR_IDS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GET_ALL_POSITIONS_SQL` is never used
[INFO] [stdout]    --> src/db.rs:198:7
[INFO] [stdout]     |
[INFO] [stdout] 198 | const GET_ALL_POSITIONS_SQL: &str = concatcp!(
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/db.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct Game {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 249 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `insert` and `query_by_id` are never used
[INFO] [stdout]    --> src/db.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl Game {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn insert(db: &Db, game: &Game) -> Result<i64, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn query_by_id(db: &Db, id: u32) -> Option<Game> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]    --> src/db.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub struct Position {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `insert` and `get_all` are never used
[INFO] [stdout]    --> src/db.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl Position {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 387 |     pub fn insert(db: &Db, r12: u64, r34: u64, r56: u64, r78: u64) -> Result<i64, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     pub fn get_all(db: &Db) -> Result<Vec<(u32, u64, u64, u64, u64)>, Error> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GamePosition` is never constructed
[INFO] [stdout]    --> src/db.rs:442:12
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub struct GamePosition {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `insert` is never used
[INFO] [stdout]    --> src/db.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | impl GamePosition {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 450 |     pub fn insert(db: &Db, game_id: i64, position_ids: Vec<i64>) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTrieAddress` is never constructed
[INFO] [stdout]   --> src/persistance.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct PositionTrieAddress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTrieConfig` is never constructed
[INFO] [stdout]   --> src/persistance.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct PositionTrieConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTrieNode` is never constructed
[INFO] [stdout]    --> src/persistance.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct PositionTrieNode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `child_count`, and `get_node_index_by_value` are never used
[INFO] [stdout]    --> src/persistance.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl PositionTrieNode {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 111 |     pub fn new(value: u16, terminal: bool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn child_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_node_index_by_value(&self, value: u16) -> Result<usize, usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTrie` is never constructed
[INFO] [stdout]    --> src/persistance.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct PositionTrie {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `statt`, and `insert` are never used
[INFO] [stdout]    --> src/persistance.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl PositionTrie {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 160 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn statt(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn insert(&mut self, pos: &PositionTrieAddress) -> i32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `sort`, `position_quad_to_bytes`, and `calculate_position_tree_address` are never used
[INFO] [stdout]    --> src/persistance.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl PositionSegment {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn sort(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn position_quad_to_bytes(r12: u64, r34: u64, r56: u64, r78: u64) -> [u8; 32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn calculate_position_tree_address(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RustyConfig` is never constructed
[INFO] [stdout]  --> src/parsing.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RustyConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `parse_from_str`, `from_bits2`, and `from_bits` are never used
[INFO] [stdout]    --> src/parsing.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl BitPosition {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn parse_from_str(fen: &str) -> Result<BitPosition, &str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn from_bits2(val: u64) -> [u8; 16] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn from_bits(r12: u64, r34: u64, r56: u64, r78: u64) -> Result<BitPosition, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_ROOK_C` is never used
[INFO] [stdout]    --> src/parsing.rs:425:11
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub const BLACK_ROOK_C: char = 'r';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KNIGHT_C` is never used
[INFO] [stdout]    --> src/parsing.rs:426:11
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub const BLACK_KNIGHT_C: char = 'n';
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_BISHOP_C` is never used
[INFO] [stdout]    --> src/parsing.rs:427:11
[INFO] [stdout]     |
[INFO] [stdout] 427 | pub const BLACK_BISHOP_C: char = 'b';
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_QUEEN_C` is never used
[INFO] [stdout]    --> src/parsing.rs:428:11
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub const BLACK_QUEEN_C: char = 'q';
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KING_C` is never used
[INFO] [stdout]    --> src/parsing.rs:429:11
[INFO] [stdout]     |
[INFO] [stdout] 429 | pub const BLACK_KING_C: char = 'k';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_PAWN_C` is never used
[INFO] [stdout]    --> src/parsing.rs:430:11
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub const BLACK_PAWN_C: char = 'p';
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VAL_TO_PIECE` is never used
[INFO] [stdout]    --> src/parsing.rs:500:12
[INFO] [stdout]     |
[INFO] [stdout] 500 | pub static VAL_TO_PIECE: Lazy<HashMap<u8, &Lazy<PieceInPlay>>> = Lazy::new(|| {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_visitor_to_positions` is never used
[INFO] [stdout]   --> src/execution.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn game_visitor_to_positions(visitor: GameVisitor) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     segment.write();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let _ = segment.write();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     segment.write();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let _ = segment.write();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/db.rs:208:24
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn new(dbpath: &Path) -> Db {
[INFO] [stdout]     |                        ^^^^^     ^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn new(dbpath: &Path) -> Db<'_> {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     segment.write();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let _ = segment.write();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_create_position_trie_Address` should have a snake case name
[INFO] [stdout]    --> src/main.rs:358:8
[INFO] [stdout]     |
[INFO] [stdout] 358 |     fn test_create_position_trie_Address() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `test_create_position_trie_address`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     segment.write();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let _ = segment.write();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/db.rs:208:24
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn new(dbpath: &Path) -> Db {
[INFO] [stdout]     |                        ^^^^^     ^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn new(dbpath: &Path) -> Db<'_> {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.48s
[INFO] running `Command { std: "docker" "inspect" "d57c10c4f49b5261c2cb7abf200ae17bc32fe95dd23d90ea4c0e94aaf712796c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d57c10c4f49b5261c2cb7abf200ae17bc32fe95dd23d90ea4c0e94aaf712796c", kill_on_drop: false }`
[INFO] [stdout] d57c10c4f49b5261c2cb7abf200ae17bc32fe95dd23d90ea4c0e94aaf712796c
