[INFO] cloning repository https://github.com/trevorswan11/cactus
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/trevorswan11/cactus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrevorswan11%2Fcactus", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrevorswan11%2Fcactus'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] baccaff6c41ffdc736c2cb7dd881182c893638eb
[INFO] checking trevorswan11/cactus/baccaff6c41ffdc736c2cb7dd881182c893638eb against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftrevorswan11%2Fcactus" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/trevorswan11/cactus
[INFO] finished tweaking git repo https://github.com/trevorswan11/cactus
[INFO] tweaked toml for git repo https://github.com/trevorswan11/cactus written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/trevorswan11/cactus on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/trevorswan11/cactus 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7350c6445ce8abe58f742ee0dacbf29bb25c6f5e8d388f301cb209930473484f
[INFO] running `Command { std: "docker" "start" "-a" "7350c6445ce8abe58f742ee0dacbf29bb25c6f5e8d388f301cb209930473484f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7350c6445ce8abe58f742ee0dacbf29bb25c6f5e8d388f301cb209930473484f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7350c6445ce8abe58f742ee0dacbf29bb25c6f5e8d388f301cb209930473484f", kill_on_drop: false }`
[INFO] [stdout] 7350c6445ce8abe58f742ee0dacbf29bb25c6f5e8d388f301cb209930473484f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a7e399c9c553cec9321679cf567c35fa3b67fbd80db0e7f6e45120174eba72a
[INFO] running `Command { std: "docker" "start" "-a" "1a7e399c9c553cec9321679cf567c35fa3b67fbd80db0e7f6e45120174eba72a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling winnow v0.7.12
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]     Checking libloading v0.8.8
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling cc v1.2.31
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling wayland-sys v0.31.7
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling wayland-client v0.31.11
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking syn v2.0.104
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling wayland-scanner v0.31.7
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling wayland-backend v0.3.11
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.9
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking memmap2 v0.9.7
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]    Compiling xml-rs v0.8.27
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking cursor-icon v1.2.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking xcursor v0.3.10
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking accesskit v0.19.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking polling v3.10.0
[INFO] [stderr]     Checking async-io v2.5.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking ab_glyph v0.2.31
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]     Checking as-raw-xcb-connection v1.0.1
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking epaint_default_fonts v0.32.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]     Checking async-signal v0.2.12
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking async-process v2.4.0
[INFO] [stderr]     Checking imgref v1.11.0
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking image-webp v0.2.3
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking accesskit_consumer v0.28.0
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking zune-jpeg v0.4.20
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking avif-serialize v0.8.5
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]     Checking wayland-protocols v0.32.9
[INFO] [stderr]     Checking wayland-cursor v0.31.11
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]     Checking roxmltree v0.20.0
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]     Checking kurbo v0.11.3
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]    Compiling cpal v0.16.0
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking unicode-ccc v0.4.0
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]     Checking unicode-properties v0.1.3
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.4.0
[INFO] [stderr]     Checking unicode-script v0.5.7
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking simplecss v0.2.2
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking imagesize v0.13.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking data-url v0.3.1
[INFO] [stderr]     Checking unicode-vo v0.1.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking xmlwriter v0.1.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking svgtypes v0.15.3
[INFO] [stderr]    Compiling bytemuck_derive v1.10.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking symphonia-core v0.5.4
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking emath v0.32.0
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking av1-grain v0.2.4
[INFO] [stderr]     Checking ecolor v0.32.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking zerovec v0.11.3
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking epaint v0.32.0
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking symphonia-metadata v0.5.4
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.4
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.4
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.9
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.9
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.4
[INFO] [stderr]     Checking symphonia-format-riff v0.5.4
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.4
[INFO] [stderr]     Checking symphonia-format-isomp4 v0.5.4
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.4
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.4
[INFO] [stderr]     Checking egui v0.32.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking symphonia v0.5.4
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking rodio v0.21.1
[INFO] [stderr]     Checking usvg v0.45.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking webbrowser v1.0.5
[INFO] [stderr]     Checking zvariant_utils v3.2.0
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking quick-xml v0.36.2
[INFO] [stderr]     Checking resvg v0.45.1
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]    Compiling zvariant_derive v5.6.0
[INFO] [stderr]     Checking egui_glow v0.32.0
[INFO] [stderr]     Checking egui_extras v0.32.0
[INFO] [stderr]    Compiling zvariant v5.6.0
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]    Compiling zbus_names v4.2.0
[INFO] [stderr]    Compiling zbus_xml v5.0.2
[INFO] [stderr]    Compiling zbus_macros v5.9.0
[INFO] [stderr]     Checking arboard v3.6.0
[INFO] [stderr]    Compiling zbus-lockstep v0.5.1
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.5.1
[INFO] [stderr]     Checking zbus v5.9.0
[INFO] [stderr]     Checking atspi-common v0.9.0
[INFO] [stderr]     Checking atspi-proxies v0.9.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.12.0
[INFO] [stderr]     Checking atspi-connection v0.9.0
[INFO] [stderr]     Checking atspi v0.25.0
[INFO] [stderr]     Checking accesskit_unix v0.15.0
[INFO] [stderr]     Checking accesskit_winit v0.27.0
[INFO] [stderr]     Checking egui-winit v0.32.0
[INFO] [stderr]     Checking eframe v0.32.0
[INFO] [stderr]     Checking cactus v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::brain`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::engine::brain;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::search::searcher`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::engine::search::searcher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceSquareTable`
[INFO] [stdout]  --> src/engine/eval/evaluation.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 |     eval::precomputed_evals::{self, PieceSquareTable},
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate::move_generator::MoveGenerator`
[INFO] [stdout]  --> src/engine/game/move.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     generate::move_generator::MoveGenerator,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game::board::Color`
[INFO] [stdout]  --> src/engine/game/piece.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::engine::{eval::evaluation, game::board::Color};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Magic`
[INFO] [stdout]   --> src/engine/generate/move_generator.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 |         magic::{self, Magic},
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:467:33
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   ((start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG)),
[INFO] [stdout]     |                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 467 -                                 ((start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG)),
[INFO] [stdout] 467 +                                 (start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `coord::Coord`, `piece`, `self`, and `self`
[INFO] [stdout]  --> src/engine/search/searcher.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 |     game::{board::Board, coord::Coord, r#move::Move, piece},
[INFO] [stdout]   |                          ^^^^^^^^^^^^                ^^^^^
[INFO] [stdout] 5 |     search::{
[INFO] [stdout] 6 |         lu_tables::{self, RepetitionTable, TranspositionTable},
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 7 |         move_ordering::{self, MoveOrdering},
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::brain`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::engine::brain;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::search::searcher`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::engine::search::searcher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceSquareTable`
[INFO] [stdout]  --> src/engine/eval/evaluation.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 |     eval::precomputed_evals::{self, PieceSquareTable},
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate::move_generator::MoveGenerator`
[INFO] [stdout]  --> src/engine/game/move.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     generate::move_generator::MoveGenerator,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game::board::Color`
[INFO] [stdout]  --> src/engine/game/piece.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::engine::{eval::evaluation, game::board::Color};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Magic`
[INFO] [stdout]   --> src/engine/generate/move_generator.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 |         magic::{self, Magic},
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:467:33
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   ((start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG)),
[INFO] [stdout]     |                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 467 -                                 ((start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG)),
[INFO] [stdout] 467 +                                 (start_square, target_square, r#move::EN_PASSANT_CAPTURE_FLAG),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `coord::Coord`, `piece`, `self`, and `self`
[INFO] [stdout]  --> src/engine/search/searcher.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 |     game::{board::Board, coord::Coord, r#move::Move, piece},
[INFO] [stdout]   |                          ^^^^^^^^^^^^                ^^^^^
[INFO] [stdout] 5 |     search::{
[INFO] [stdout] 6 |         lu_tables::{self, RepetitionTable, TranspositionTable},
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 7 |         move_ordering::{self, MoveOrdering},
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square`
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         for square in 0..64 {}
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_square`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         for i in 0..64 {}
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut white_passed_pawn_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut black_passed_pawn_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let mut white_pawn_support_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut black_pawn_support_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut white_forward_file_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut black_forward_file_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut king_safety_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:577:29
[INFO] [stdout]     |
[INFO] [stdout] 577 |                         let piece_type = piece.get_type();
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `opponent_pawn_attack_map` is never read
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let mut opponent_pawn_attack_map = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square`
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         for square in 0..64 {}
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_square`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         for i in 0..64 {}
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut white_passed_pawn_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut black_passed_pawn_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let mut white_pawn_support_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut black_pawn_support_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut white_forward_file_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut black_forward_file_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut king_safety_mask = [u64::default(); 64];
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:577:29
[INFO] [stdout]     |
[INFO] [stdout] 577 |                         let piece_type = piece.get_type();
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `opponent_pawn_attack_map` is never read
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let mut opponent_pawn_attack_map = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maybe_white_engine` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut maybe_white_engine: Option<EngineHandle> = None;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_maybe_white_engine` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maybe_black_engine` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut maybe_black_engine: Option<EngineHandle> = None;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_maybe_black_engine` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_black_engine` is never read
[INFO] [stdout]   --> src/main.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             maybe_black_engine = engine;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_white_engine` is never read
[INFO] [stdout]   --> src/main.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |             maybe_white_engine = engine;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_black_engine` is never read
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             maybe_black_engine = Some(engine);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_white_engine` is never read
[INFO] [stdout]   --> src/main.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             maybe_white_engine = Some(engine);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STARTING_COLOR` is never used
[INFO] [stdout]  --> src/core/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const STARTING_COLOR: Color = Color::White;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]  --> src/core/mod.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Color {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opponent` is never used
[INFO] [stdout]   --> src/core/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Color {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 13 |     pub fn opponent(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Square` is never constructed
[INFO] [stdout]   --> src/core/board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Square {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> src/core/board.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Board {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Flags` is never constructed
[INFO] [stdout]   --> src/core/board.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Flags {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `State` is never used
[INFO] [stdout]   --> src/core/board.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum State {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Player` is never constructed
[INFO] [stdout]   --> src/core/board.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct Player {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_capture` is never used
[INFO] [stdout]   --> src/core/board.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl Player {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 70 |     pub fn add_capture(&mut self, piece: PieceKind) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Players` is never constructed
[INFO] [stdout]   --> src/core/board.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct Players {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/board.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 137 |     pub fn is_valid_pos(pos: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn piece_at(&self, pos: (usize, usize)) -> Option<PieceKind> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn center_at(&self, (rank, file): (usize, usize)) -> Option<Pos2> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn set_piece(&mut self, pos: (usize, usize), piece: Option<PieceKind>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn move_piece(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn update_state(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn refresh(&self, rect: Rect) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_BISHOP` is never used
[INFO] [stdout]  --> src/core/piece.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub static BLACK_BISHOP: &[u8] = include_bytes!("../../assets/cburnett/bB.svg");
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_KING` is never used
[INFO] [stdout]   --> src/core/piece.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub static BLACK_KING: &[u8] = include_bytes!("../../assets/cburnett/bK.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_KNIGHT` is never used
[INFO] [stdout]   --> src/core/piece.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub static BLACK_KNIGHT: &[u8] = include_bytes!("../../assets/cburnett/bN.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_PAWN` is never used
[INFO] [stdout]   --> src/core/piece.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLACK_PAWN: &[u8] = include_bytes!("../../assets/cburnett/bP.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_QUEEN` is never used
[INFO] [stdout]   --> src/core/piece.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub static BLACK_QUEEN: &[u8] = include_bytes!("../../assets/cburnett/bQ.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_ROOK` is never used
[INFO] [stdout]   --> src/core/piece.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub static BLACK_ROOK: &[u8] = include_bytes!("../../assets/cburnett/bR.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_BISHOP` is never used
[INFO] [stdout]   --> src/core/piece.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static WHITE_BISHOP: &[u8] = include_bytes!("../../assets/cburnett/wB.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_KING` is never used
[INFO] [stdout]   --> src/core/piece.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static WHITE_KING: &[u8] = include_bytes!("../../assets/cburnett/wK.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_KNIGHT` is never used
[INFO] [stdout]   --> src/core/piece.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub static WHITE_KNIGHT: &[u8] = include_bytes!("../../assets/cburnett/wN.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_PAWN` is never used
[INFO] [stdout]   --> src/core/piece.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static WHITE_PAWN: &[u8] = include_bytes!("../../assets/cburnett/wP.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_QUEEN` is never used
[INFO] [stdout]   --> src/core/piece.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub static WHITE_QUEEN: &[u8] = include_bytes!("../../assets/cburnett/wQ.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_ROOK` is never used
[INFO] [stdout]   --> src/core/piece.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static WHITE_ROOK: &[u8] = include_bytes!("../../assets/cburnett/wR.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Piece` is never constructed
[INFO] [stdout]   --> src/core/piece.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Piece<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PieceKind` is never used
[INFO] [stdout]   --> src/core/piece.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum PieceKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PieceType` is never used
[INFO] [stdout]   --> src/core/piece.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum PieceType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `color`, `to_type`, and `score` are never used
[INFO] [stdout]    --> src/core/piece.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl PieceKind {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(piece_type: PieceType, color: Color) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn color(&self) -> Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn to_type(&self) -> PieceType {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn score(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_kind` is never used
[INFO] [stdout]    --> src/core/piece.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<'a> Piece<'a> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 115 |     pub fn from_kind(kind: PieceKind) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieceImages` is never constructed
[INFO] [stdout]    --> src/core/piece.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct PieceImages {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_textures`, `get_texture`, `get_capture`, and `svg_to_image` are never used
[INFO] [stdout]    --> src/core/piece.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl PieceImages {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new(ctx: &Context, pixel_size: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn update_textures(&mut self, ctx: &egui::Context, pixel_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_texture(&self, kind: PieceKind) -> &TextureHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_capture(&self, kind: PieceKind) -> &TextureHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn svg_to_image(svg_data: &[u8], size: f32) -> ColorImage {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cmd_sender` and `response_receiver` are never read
[INFO] [stdout]   --> src/coupling/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct EngineHandle {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub cmd_sender: Sender<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub response_receiver: Receiver<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EngineHandle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_command` and `try_receive_response` are never used
[INFO] [stdout]   --> src/coupling/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl EngineHandle {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 16 |     pub fn send_command(&self, cmd: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn try_receive_response(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_uci_move`, `move_history_uci`, and `apply_uci_move` are never used
[INFO] [stdout]   --> src/coupling/integration.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 12 |     pub fn parse_uci_move(&self, uci: &str) -> Option<Move> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn move_history_uci(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn apply_uci_move(&mut self, uci: &str) -> (Option<PieceKind>, bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_engine_turn` and `is_engine_turn` are never used
[INFO] [stdout]    --> src/coupling/integration.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  70 |     pub fn try_engine_turn(&mut self, thinking_time_ms: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn is_engine_turn(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uci_word` is never used
[INFO] [stdout]    --> src/coupling/integration.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn uci_word(line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_on_move_chosen` is never used
[INFO] [stdout]    --> src/engine/driver.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl CactusEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn set_on_move_chosen<S: SenderLike + Send + Sync + 'static>(&self, sender: S) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDGAME_MATERIAL_START` is never used
[INFO] [stdout]   --> src/engine/eval/evaluation.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const ENDGAME_MATERIAL_START: f32 = (ROOK_VALUE * 2 + BISHOP_VALUE + KNIGHT_VALUE) as f32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDGAME_MULTIPLIER` is never used
[INFO] [stdout]   --> src/engine/eval/evaluation.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const ENDGAME_MULTIPLIER: f32 = 1.0 / ENDGAME_MATERIAL_START;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `endgame_phase_weight` and `count_material` are never used
[INFO] [stdout]    --> src/engine/eval/evaluation.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Evaluation {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn endgame_phase_weight(material_count_without_pawns: i32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn count_material(&self, board: &Board, color: Color) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_pawns`, `num_majors`, `num_minors`, and `num_bishops` are never read
[INFO] [stdout]    --> src/engine/eval/evaluation.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub struct MaterialInfo {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 374 |     pub num_pawns: i32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 375 |     pub num_majors: i32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 376 |     pub num_minors: i32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 377 |     pub num_bishops: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MaterialInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameResult` is never used
[INFO] [stdout]  --> src/engine/game/arbiter.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum GameResult {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_draw` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn is_draw(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_win` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn is_win(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `white_winner` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn white_winner(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `black_winner` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn black_winner(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_state` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn get_game_state(board: &mut Board) -> GameResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insufficient_material` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn insufficient_material(board: &Board) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `E1` is never used
[INFO] [stdout]   --> src/engine/game/board.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const E1: i32 = 4;
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `E8` is never used
[INFO] [stdout]   --> src/engine/game/board.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const E8: i32 = 60;
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_in_check` is never used
[INFO] [stdout]    --> src/engine/game/board.rs:481:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn is_in_check(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `board_from_fen`, `board_from_other`, and `pgn` are never used
[INFO] [stdout]    --> src/engine/game/board.rs:656:12
[INFO] [stdout]     |
[INFO] [stdout] 655 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 656 |     pub fn board_from_fen(fen: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 663 |     pub fn board_from_other(other: &Board) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 752 |     pub fn pgn(&mut self, result: GameResult, white_name: &str, black_name: &str) -> String {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_pgn` is never used
[INFO] [stdout]    --> src/engine/game/board.rs:763:8
[INFO] [stdout]     |
[INFO] [stdout] 763 | pub fn create_pgn(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `promotion_type` is never used
[INFO] [stdout]   --> src/engine/game/move.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Move {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn promotion_type(&self) -> Piece {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_san` and `to_san` are never used
[INFO] [stdout]    --> src/engine/game/move.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl Move {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn from_san(board: &mut Board, algebraic_move: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn to_san(&self, board: &mut Board) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pgn_from_moves` is never used
[INFO] [stdout]    --> src/engine/game/move.rs:379:8
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub fn pgn_from_moves(moves: &Vec<Move>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_value` and `can_slide` are never used
[INFO] [stdout]    --> src/engine/game/piece.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl Piece {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_value(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn can_slide(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `white_pawn_support`, `black_pawn_support`, `king_safety`, `white_forward_file`, `black_forward_file`, and `triple_file` are never read
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct BitMasks {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub white_pawn_support: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub black_pawn_support: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub king_safety: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 59 |
[INFO] [stdout] 60 |     pub white_forward_file: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub black_forward_file: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |
[INFO] [stdout] 63 |     pub triple_file: [u64; 8],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BitMasks` 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 function `clear_square` is never used
[INFO] [stdout]    --> src/engine/generate/bitboard.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl BitBoard {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn clear_square(bb: &mut u64, square_idx: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Queen` and `QueenAndKnight` are never constructed
[INFO] [stdout]   --> src/engine/generate/move_generator.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum PromotionMode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 20 |     All,
[INFO] [stdout] 21 |     Queen,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 22 |     QueenAndKnight,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PromotionMode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_ATTACK_DIRECTIONS` is never used
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:722:11
[INFO] [stdout]     |
[INFO] [stdout] 722 | pub const PAWN_ATTACK_DIRECTIONS: [[u8; 2]; 2] = [[4, 6], [7, 5]];
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `num_rook_moves_to_reach_square` and `num_king_moves_to_reach_square` are never used
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:968:12
[INFO] [stdout]     |
[INFO] [stdout] 967 | impl PrecomputedMoveData {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 968 |     pub fn num_rook_moves_to_reach_square(&self, start_square: i32, target_square: i32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 972 |     pub fn num_king_moves_to_reach_square(&self, start_square: i32, target_square: i32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push`, `try_pop`, and `contains` are never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RepetitionTable {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn push(&mut self, hash: u64, reset: bool) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn try_pop(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn contains(&self, hash: u64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKUP_FAILED` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const LOOKUP_FAILED: i32 = -1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXACT` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const EXACT: i32 = 0;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOWER_BOUND` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const LOWER_BOUND: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPPER_BOUND` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:69:11
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub const UPPER_BOUND: i32 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count` and `enabled` are never read
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct TranspositionTable {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 74 |     pub entries: Vec<Option<Entry>>,
[INFO] [stdout] 75 |     pub count: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 76 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranspositionTable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index`, `try_get_stored_move`, `lookup_evaluation`, and `store_evaluation` are never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn index(&self, board: &Board) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn try_get_stored_move(&self, board: &Board) -> Option<Move> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn lookup_evaluation(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn store_evaluation(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `correct_mate_score_for_storage` and `correct_retrieved_mate_score` are never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 168 |     fn correct_mate_score_for_storage(score: i32, num_ply_searched: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn correct_retrieved_mate_score(score: i32, num_ply_searched: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key`, `value`, `mv`, `depth`, and `node_type` are never read
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Entry {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 187 |     pub key: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 188 |     pub value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 189 |     pub mv: Move,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 190 |     pub depth: u8,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 191 |     pub node_type: u8,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Entry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Entry {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn new(key: u64, value: i32, mv: Move, depth: u8, node_type: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add` are never used
[INFO] [stdout]    --> src/engine/search/move_ordering.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl Killers {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 163 |     pub fn new(move_a: Move, move_b: Move) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn add(&mut self, mv: Move) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_EXTENSIONS` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_EXTENSIONS: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE_MATE_SCORE` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IMMEDIATE_MATE_SCORE: i32 = 100000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REDUCE_DEPTH` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const REDUCE_DEPTH: i32 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MATE_DEPTH` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_MATE_DEPTH: i32 = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PLY` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_PLY: i32 = 256;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_searched_at_least_one_move` and `current_iteration_depth` are never read
[INFO] [stdout]   --> src/engine/search/searcher.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Searcher {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     has_searched_at_least_one_move: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     current_iteration_depth: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Searcher` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush_log` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Searcher {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn flush_log(&mut self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_mate_score` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn is_mate_score(score: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_ply_to_mate_from_score` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn num_ply_to_mate_from_score(score: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/engine/search/searcher.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub struct SearchDiagnostics {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 200 |     pub num_completed_iterations: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 201 |     pub num_positions_evaluated: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 202 |     pub num_cutoffs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 203 |
[INFO] [stdout] 204 |     pub move_val: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 205 |     pub mv: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 206 |     pub eval: i32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 207 |     pub move_is_from_partial_search: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 208 |     pub num_q_checks: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 209 |     pub num_q_mates: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 210 |
[INFO] [stdout] 211 |     pub is_book: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 212 |     pub max_extension_reached_in_search: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchDiagnostics` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `iteration_timer` and `total_timer` are never read
[INFO] [stdout]    --> src/engine/search/searcher.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct SearchTimer {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 217 |     pub iteration_timer: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 218 |     pub total_timer: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchTimer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `restart_iteration_timer`, `elapsed_iteration`, and `elapsed_total` are never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl SearchTimer {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn restart_iteration_timer(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn elapsed_iteration(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn elapsed_total(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_fen` is never used
[INFO] [stdout]    --> src/engine/utils/fen.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn flip_fen(fen: String) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fen` is never read
[INFO] [stdout]    --> src/engine/utils/fen.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct PositionInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 187 |     pub fen: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert_case` is never used
[INFO] [stdout]    --> src/engine/utils/fen.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn invert_case(c: char) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PIECE_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_PIECE_SIZE: f32 = 64.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BOARD_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const DEFAULT_BOARD_SIZE: f32 = 8.0 * DEFAULT_PIECE_SIZE;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PANEL_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_PANEL_SIZE: f32 = 3.0 * DEFAULT_PIECE_SIZE;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_APP_SIZE` is never used
[INFO] [stdout]   --> src/gui/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_APP_SIZE: f32 = DEFAULT_BOARD_SIZE + DEFAULT_PANEL_SIZE;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_event`, `maybe_update_textures`, `get_square_at_pos`, and `reset_game` are never used
[INFO] [stdout]   --> src/gui/game.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Cactus {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout]  9 |     pub fn handle_event(&mut self, ctx: &Context, _frame: &mut Frame, ui: &mut Ui) -> Response {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn maybe_update_textures(&mut self, ctx: &Context, square_size: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn get_square_at_pos(&self, pos: Pos2, board_rect: Rect) -> Option<(usize, usize)> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn reset_game(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_pointer_pressed`, `handle_pointer_down`, `handle_pointer_released`, `handle_click_selection`, `handle_selection`, and `handle_game_over` are never used
[INFO] [stdout]    --> src/gui/handlers.rs:9:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]   9 |     pub fn handle_pointer_pressed(&mut self, pos: Pos2, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn handle_pointer_down(&mut self, pos: Pos2) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn handle_pointer_released(&mut self, pos: Pos2, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn handle_click_selection(&mut self, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn handle_selection(&mut self, rank: usize, file: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn handle_game_over(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ICON` is never used
[INFO] [stdout]  --> src/gui/launch.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static ICON: &[u8] = include_bytes!("../../assets/icon.png");
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cactus` is never constructed
[INFO] [stdout]   --> src/gui/launch.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Cactus {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gui/launch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Cactus {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch` is never used
[INFO] [stdout]   --> src/gui/launch.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn launch(white_engine: Option<EngineHandle>, black_engine: Option<EngineHandle>) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render`, `render_promotion_popup`, `render_side_panel`, `render_player_label_and_captures`, `render_evaluation_bar`, and `render_game_over_popup` are never used
[INFO] [stdout]    --> src/gui/render.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  16 |     pub fn render(&mut self, response: &Response, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn render_promotion_popup(&mut self, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn render_side_panel(&self, ctx: &eframe::egui::Context, board_rect: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn render_player_label_and_captures(&self, ui: &mut Ui, color: Color) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn render_evaluation_bar(&self, ui: &mut Ui, width: f32, height: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn render_game_over_popup(&mut self, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MOVE_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub static MOVE_SOUND: &[u8] = include_bytes!("../../assets/standard/Move.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CAPTURE_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub static CAPTURE_SOUND: &[u8] = include_bytes!("../../assets/standard/Capture.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GAME_OVER_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub static GAME_OVER_SOUND: &[u8] = include_bytes!("../../assets/standard/GenericNotify.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CONFIRMATION_SOUND` is never used
[INFO] [stdout]   --> src/gui/sound.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub static CONFIRMATION_SOUND: &[u8] = include_bytes!("../../assets/standard/Confirmation.mp3");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `play`, `move_sound`, `capture_sound`, `game_over_sound`, and `confirmation_sound` are never used
[INFO] [stdout]   --> src/gui/sound.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Cactus {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 13 |     fn play(handle: &OutputStream, bytes: &'static [u8]) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn move_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn capture_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn game_over_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn confirmation_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_sufficient_material` and `compute_position_hash` are never used
[INFO] [stdout]   --> src/moves/draw.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  9 |     pub fn has_sufficient_material(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn compute_position_hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Move` is never constructed
[INFO] [stdout]  --> src/moves/moves.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Move {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_uci` is never used
[INFO] [stdout]   --> src/moves/moves.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Move {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 16 |     pub fn to_uci(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_castling_flags`, `update_en_passant_target`, `handle_en_passant`, `handle_castling`, and `validate_no_self_capture` are never used
[INFO] [stdout]    --> src/moves/moves.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  43 |     pub fn update_castling_flags(&mut self, from: (usize, usize), piece: PieceKind) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn update_en_passant_target(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn handle_en_passant(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn handle_castling(&mut self, from: (usize, usize), to: (usize, usize)) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn validate_no_self_capture(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/moves/rules.rs:8:12
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]   8 |     pub fn is_move_legal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  17 |     pub fn is_valid_piece_move(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn validate_pawn_move(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn validate_knight_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn validate_bishop_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn validate_rook_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn validate_queen_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn validate_king_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn is_path_clear(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_in_check(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn can_attack_square(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn find_king(&self, color: Color) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn any_legal_move(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `simulate_move` and `simulate_move_checked` are never used
[INFO] [stdout]   --> src/moves/simulate.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  8 |     pub fn simulate_move(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn simulate_move_checked(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maybe_white_engine` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut maybe_white_engine: Option<EngineHandle> = None;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_maybe_white_engine` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maybe_black_engine` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut maybe_black_engine: Option<EngineHandle> = None;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_maybe_black_engine` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_black_engine` is never read
[INFO] [stdout]   --> src/main.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             maybe_black_engine = engine;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_white_engine` is never read
[INFO] [stdout]   --> src/main.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |             maybe_white_engine = engine;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_black_engine` is never read
[INFO] [stdout]   --> src/main.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             maybe_black_engine = Some(engine);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `maybe_white_engine` is never read
[INFO] [stdout]   --> src/main.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             maybe_white_engine = Some(engine);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STARTING_COLOR` is never used
[INFO] [stdout]  --> src/core/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const STARTING_COLOR: Color = Color::White;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]  --> src/core/mod.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Color {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opponent` is never used
[INFO] [stdout]   --> src/core/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Color {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 13 |     pub fn opponent(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Square` is never constructed
[INFO] [stdout]   --> src/core/board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Square {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> src/core/board.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Board {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Flags` is never constructed
[INFO] [stdout]   --> src/core/board.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Flags {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `State` is never used
[INFO] [stdout]   --> src/core/board.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum State {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Player` is never constructed
[INFO] [stdout]   --> src/core/board.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct Player {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_capture` is never used
[INFO] [stdout]   --> src/core/board.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl Player {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 70 |     pub fn add_capture(&mut self, piece: PieceKind) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Players` is never constructed
[INFO] [stdout]   --> src/core/board.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct Players {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/board.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 137 |     pub fn is_valid_pos(pos: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn piece_at(&self, pos: (usize, usize)) -> Option<PieceKind> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn center_at(&self, (rank, file): (usize, usize)) -> Option<Pos2> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn set_piece(&mut self, pos: (usize, usize), piece: Option<PieceKind>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn move_piece(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn update_state(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn refresh(&self, rect: Rect) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_BISHOP` is never used
[INFO] [stdout]  --> src/core/piece.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub static BLACK_BISHOP: &[u8] = include_bytes!("../../assets/cburnett/bB.svg");
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_KING` is never used
[INFO] [stdout]   --> src/core/piece.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub static BLACK_KING: &[u8] = include_bytes!("../../assets/cburnett/bK.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_KNIGHT` is never used
[INFO] [stdout]   --> src/core/piece.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub static BLACK_KNIGHT: &[u8] = include_bytes!("../../assets/cburnett/bN.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_PAWN` is never used
[INFO] [stdout]   --> src/core/piece.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLACK_PAWN: &[u8] = include_bytes!("../../assets/cburnett/bP.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_QUEEN` is never used
[INFO] [stdout]   --> src/core/piece.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub static BLACK_QUEEN: &[u8] = include_bytes!("../../assets/cburnett/bQ.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLACK_ROOK` is never used
[INFO] [stdout]   --> src/core/piece.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub static BLACK_ROOK: &[u8] = include_bytes!("../../assets/cburnett/bR.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_BISHOP` is never used
[INFO] [stdout]   --> src/core/piece.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub static WHITE_BISHOP: &[u8] = include_bytes!("../../assets/cburnett/wB.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_KING` is never used
[INFO] [stdout]   --> src/core/piece.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static WHITE_KING: &[u8] = include_bytes!("../../assets/cburnett/wK.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_KNIGHT` is never used
[INFO] [stdout]   --> src/core/piece.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub static WHITE_KNIGHT: &[u8] = include_bytes!("../../assets/cburnett/wN.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_PAWN` is never used
[INFO] [stdout]   --> src/core/piece.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static WHITE_PAWN: &[u8] = include_bytes!("../../assets/cburnett/wP.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_QUEEN` is never used
[INFO] [stdout]   --> src/core/piece.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub static WHITE_QUEEN: &[u8] = include_bytes!("../../assets/cburnett/wQ.svg");
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `WHITE_ROOK` is never used
[INFO] [stdout]   --> src/core/piece.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static WHITE_ROOK: &[u8] = include_bytes!("../../assets/cburnett/wR.svg");
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Piece` is never constructed
[INFO] [stdout]   --> src/core/piece.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Piece<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PieceKind` is never used
[INFO] [stdout]   --> src/core/piece.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum PieceKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PieceType` is never used
[INFO] [stdout]   --> src/core/piece.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum PieceType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `color`, `to_type`, and `score` are never used
[INFO] [stdout]    --> src/core/piece.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl PieceKind {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(piece_type: PieceType, color: Color) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn color(&self) -> Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn to_type(&self) -> PieceType {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn score(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_kind` is never used
[INFO] [stdout]    --> src/core/piece.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<'a> Piece<'a> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 115 |     pub fn from_kind(kind: PieceKind) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieceImages` is never constructed
[INFO] [stdout]    --> src/core/piece.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct PieceImages {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update_textures`, `get_texture`, `get_capture`, and `svg_to_image` are never used
[INFO] [stdout]    --> src/core/piece.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl PieceImages {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new(ctx: &Context, pixel_size: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn update_textures(&mut self, ctx: &egui::Context, pixel_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_texture(&self, kind: PieceKind) -> &TextureHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_capture(&self, kind: PieceKind) -> &TextureHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn svg_to_image(svg_data: &[u8], size: f32) -> ColorImage {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cmd_sender` and `response_receiver` are never read
[INFO] [stdout]   --> src/coupling/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct EngineHandle {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     pub cmd_sender: Sender<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub response_receiver: Receiver<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EngineHandle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_command` and `try_receive_response` are never used
[INFO] [stdout]   --> src/coupling/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl EngineHandle {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 16 |     pub fn send_command(&self, cmd: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn try_receive_response(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_uci_move`, `move_history_uci`, and `apply_uci_move` are never used
[INFO] [stdout]   --> src/coupling/integration.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 12 |     pub fn parse_uci_move(&self, uci: &str) -> Option<Move> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn move_history_uci(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn apply_uci_move(&mut self, uci: &str) -> (Option<PieceKind>, bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_engine_turn` and `is_engine_turn` are never used
[INFO] [stdout]    --> src/coupling/integration.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  70 |     pub fn try_engine_turn(&mut self, thinking_time_ms: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn is_engine_turn(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uci_word` is never used
[INFO] [stdout]    --> src/coupling/integration.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn uci_word(line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_on_move_chosen` is never used
[INFO] [stdout]    --> src/engine/driver.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl CactusEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn set_on_move_chosen<S: SenderLike + Send + Sync + 'static>(&self, sender: S) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDGAME_MATERIAL_START` is never used
[INFO] [stdout]   --> src/engine/eval/evaluation.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const ENDGAME_MATERIAL_START: f32 = (ROOK_VALUE * 2 + BISHOP_VALUE + KNIGHT_VALUE) as f32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDGAME_MULTIPLIER` is never used
[INFO] [stdout]   --> src/engine/eval/evaluation.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const ENDGAME_MULTIPLIER: f32 = 1.0 / ENDGAME_MATERIAL_START;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `endgame_phase_weight` and `count_material` are never used
[INFO] [stdout]    --> src/engine/eval/evaluation.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Evaluation {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn endgame_phase_weight(material_count_without_pawns: i32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn count_material(&self, board: &Board, color: Color) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_pawns`, `num_majors`, `num_minors`, and `num_bishops` are never read
[INFO] [stdout]    --> src/engine/eval/evaluation.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub struct MaterialInfo {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 374 |     pub num_pawns: i32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 375 |     pub num_majors: i32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 376 |     pub num_minors: i32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 377 |     pub num_bishops: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MaterialInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameResult` is never used
[INFO] [stdout]  --> src/engine/game/arbiter.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum GameResult {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_draw` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn is_draw(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_win` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn is_win(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `white_winner` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn white_winner(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `black_winner` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn black_winner(result: GameResult) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_state` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn get_game_state(board: &mut Board) -> GameResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insufficient_material` is never used
[INFO] [stdout]   --> src/engine/game/arbiter.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn insufficient_material(board: &Board) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `E1` is never used
[INFO] [stdout]   --> src/engine/game/board.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const E1: i32 = 4;
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `E8` is never used
[INFO] [stdout]   --> src/engine/game/board.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const E8: i32 = 60;
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_in_check` is never used
[INFO] [stdout]    --> src/engine/game/board.rs:481:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn is_in_check(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `board_from_fen`, `board_from_other`, and `pgn` are never used
[INFO] [stdout]    --> src/engine/game/board.rs:656:12
[INFO] [stdout]     |
[INFO] [stdout] 655 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 656 |     pub fn board_from_fen(fen: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 663 |     pub fn board_from_other(other: &Board) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 752 |     pub fn pgn(&mut self, result: GameResult, white_name: &str, black_name: &str) -> String {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_pgn` is never used
[INFO] [stdout]    --> src/engine/game/board.rs:763:8
[INFO] [stdout]     |
[INFO] [stdout] 763 | pub fn create_pgn(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `promotion_type` is never used
[INFO] [stdout]   --> src/engine/game/move.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Move {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn promotion_type(&self) -> Piece {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_san` and `to_san` are never used
[INFO] [stdout]    --> src/engine/game/move.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl Move {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn from_san(board: &mut Board, algebraic_move: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn to_san(&self, board: &mut Board) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pgn_from_moves` is never used
[INFO] [stdout]    --> src/engine/game/move.rs:379:8
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub fn pgn_from_moves(moves: &Vec<Move>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_value` and `can_slide` are never used
[INFO] [stdout]    --> src/engine/game/piece.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl Piece {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_value(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn can_slide(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `white_pawn_support`, `black_pawn_support`, `king_safety`, `white_forward_file`, `black_forward_file`, and `triple_file` are never read
[INFO] [stdout]   --> src/engine/generate/bitboard.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct BitMasks {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub white_pawn_support: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub black_pawn_support: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub king_safety: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 59 |
[INFO] [stdout] 60 |     pub white_forward_file: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub black_forward_file: [u64; 64],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |
[INFO] [stdout] 63 |     pub triple_file: [u64; 8],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BitMasks` 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 function `clear_square` is never used
[INFO] [stdout]    --> src/engine/generate/bitboard.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl BitBoard {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn clear_square(bb: &mut u64, square_idx: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Queen` and `QueenAndKnight` are never constructed
[INFO] [stdout]   --> src/engine/generate/move_generator.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum PromotionMode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 20 |     All,
[INFO] [stdout] 21 |     Queen,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 22 |     QueenAndKnight,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PromotionMode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_ATTACK_DIRECTIONS` is never used
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:722:11
[INFO] [stdout]     |
[INFO] [stdout] 722 | pub const PAWN_ATTACK_DIRECTIONS: [[u8; 2]; 2] = [[4, 6], [7, 5]];
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `num_rook_moves_to_reach_square` and `num_king_moves_to_reach_square` are never used
[INFO] [stdout]    --> src/engine/generate/move_generator.rs:968:12
[INFO] [stdout]     |
[INFO] [stdout] 967 | impl PrecomputedMoveData {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 968 |     pub fn num_rook_moves_to_reach_square(&self, start_square: i32, target_square: i32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 972 |     pub fn num_king_moves_to_reach_square(&self, start_square: i32, target_square: i32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push`, `try_pop`, and `contains` are never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RepetitionTable {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn push(&mut self, hash: u64, reset: bool) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn try_pop(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn contains(&self, hash: u64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKUP_FAILED` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const LOOKUP_FAILED: i32 = -1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXACT` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const EXACT: i32 = 0;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOWER_BOUND` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const LOWER_BOUND: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPPER_BOUND` is never used
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:69:11
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub const UPPER_BOUND: i32 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count` and `enabled` are never read
[INFO] [stdout]   --> src/engine/search/lu_tables.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct TranspositionTable {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 74 |     pub entries: Vec<Option<Entry>>,
[INFO] [stdout] 75 |     pub count: usize,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 76 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranspositionTable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index`, `try_get_stored_move`, `lookup_evaluation`, and `store_evaluation` are never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn index(&self, board: &Board) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn try_get_stored_move(&self, board: &Board) -> Option<Move> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn lookup_evaluation(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn store_evaluation(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `correct_mate_score_for_storage` and `correct_retrieved_mate_score` are never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 168 |     fn correct_mate_score_for_storage(score: i32, num_ply_searched: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn correct_retrieved_mate_score(score: i32, num_ply_searched: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key`, `value`, `mv`, `depth`, and `node_type` are never read
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Entry {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 187 |     pub key: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 188 |     pub value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 189 |     pub mv: Move,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 190 |     pub depth: u8,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 191 |     pub node_type: u8,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Entry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/engine/search/lu_tables.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Entry {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn new(key: u64, value: i32, mv: Move, depth: u8, node_type: u8) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add` are never used
[INFO] [stdout]    --> src/engine/search/move_ordering.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl Killers {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 163 |     pub fn new(move_a: Move, move_b: Move) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn add(&mut self, mv: Move) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_EXTENSIONS` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_EXTENSIONS: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE_MATE_SCORE` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IMMEDIATE_MATE_SCORE: i32 = 100000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REDUCE_DEPTH` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const REDUCE_DEPTH: i32 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MATE_DEPTH` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_MATE_DEPTH: i32 = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PLY` is never used
[INFO] [stdout]   --> src/engine/search/searcher.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_PLY: i32 = 256;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_searched_at_least_one_move` and `current_iteration_depth` are never read
[INFO] [stdout]   --> src/engine/search/searcher.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Searcher {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     has_searched_at_least_one_move: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     current_iteration_depth: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Searcher` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush_log` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Searcher {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn flush_log(&mut self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_mate_score` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn is_mate_score(score: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_ply_to_mate_from_score` is never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn num_ply_to_mate_from_score(score: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/engine/search/searcher.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub struct SearchDiagnostics {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 200 |     pub num_completed_iterations: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 201 |     pub num_positions_evaluated: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 202 |     pub num_cutoffs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 203 |
[INFO] [stdout] 204 |     pub move_val: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 205 |     pub mv: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 206 |     pub eval: i32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 207 |     pub move_is_from_partial_search: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 208 |     pub num_q_checks: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 209 |     pub num_q_mates: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 210 |
[INFO] [stdout] 211 |     pub is_book: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 212 |     pub max_extension_reached_in_search: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchDiagnostics` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `iteration_timer` and `total_timer` are never read
[INFO] [stdout]    --> src/engine/search/searcher.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct SearchTimer {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 217 |     pub iteration_timer: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 218 |     pub total_timer: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchTimer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `restart_iteration_timer`, `elapsed_iteration`, and `elapsed_total` are never used
[INFO] [stdout]    --> src/engine/search/searcher.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl SearchTimer {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn restart_iteration_timer(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn elapsed_iteration(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn elapsed_total(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_fen` is never used
[INFO] [stdout]    --> src/engine/utils/fen.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn flip_fen(fen: String) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fen` is never read
[INFO] [stdout]    --> src/engine/utils/fen.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct PositionInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 187 |     pub fen: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert_case` is never used
[INFO] [stdout]    --> src/engine/utils/fen.rs:294:4
[INFO] [stdout]     |
[INFO] [stdout] 294 | fn invert_case(c: char) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PIECE_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_PIECE_SIZE: f32 = 64.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BOARD_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const DEFAULT_BOARD_SIZE: f32 = 8.0 * DEFAULT_PIECE_SIZE;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PANEL_SIZE` is never used
[INFO] [stdout]  --> src/gui/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_PANEL_SIZE: f32 = 3.0 * DEFAULT_PIECE_SIZE;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_APP_SIZE` is never used
[INFO] [stdout]   --> src/gui/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_APP_SIZE: f32 = DEFAULT_BOARD_SIZE + DEFAULT_PANEL_SIZE;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_event`, `maybe_update_textures`, `get_square_at_pos`, and `reset_game` are never used
[INFO] [stdout]   --> src/gui/game.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Cactus {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout]  9 |     pub fn handle_event(&mut self, ctx: &Context, _frame: &mut Frame, ui: &mut Ui) -> Response {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn maybe_update_textures(&mut self, ctx: &Context, square_size: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn get_square_at_pos(&self, pos: Pos2, board_rect: Rect) -> Option<(usize, usize)> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn reset_game(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_pointer_pressed`, `handle_pointer_down`, `handle_pointer_released`, `handle_click_selection`, `handle_selection`, and `handle_game_over` are never used
[INFO] [stdout]    --> src/gui/handlers.rs:9:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]   9 |     pub fn handle_pointer_pressed(&mut self, pos: Pos2, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn handle_pointer_down(&mut self, pos: Pos2) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn handle_pointer_released(&mut self, pos: Pos2, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn handle_click_selection(&mut self, response: &Response) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn handle_selection(&mut self, rank: usize, file: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn handle_game_over(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ICON` is never used
[INFO] [stdout]  --> src/gui/launch.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static ICON: &[u8] = include_bytes!("../../assets/icon.png");
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cactus` is never constructed
[INFO] [stdout]   --> src/gui/launch.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Cactus {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gui/launch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Cactus {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `launch` is never used
[INFO] [stdout]   --> src/gui/launch.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn launch(white_engine: Option<EngineHandle>, black_engine: Option<EngineHandle>) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render`, `render_promotion_popup`, `render_side_panel`, `render_player_label_and_captures`, `render_evaluation_bar`, and `render_game_over_popup` are never used
[INFO] [stdout]    --> src/gui/render.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl Cactus {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  16 |     pub fn render(&mut self, response: &Response, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn render_promotion_popup(&mut self, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn render_side_panel(&self, ctx: &eframe::egui::Context, board_rect: Rect) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn render_player_label_and_captures(&self, ui: &mut Ui, color: Color) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn render_evaluation_bar(&self, ui: &mut Ui, width: f32, height: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn render_game_over_popup(&mut self, ctx: &Context) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MOVE_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub static MOVE_SOUND: &[u8] = include_bytes!("../../assets/standard/Move.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CAPTURE_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub static CAPTURE_SOUND: &[u8] = include_bytes!("../../assets/standard/Capture.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GAME_OVER_SOUND` is never used
[INFO] [stdout]  --> src/gui/sound.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub static GAME_OVER_SOUND: &[u8] = include_bytes!("../../assets/standard/GenericNotify.mp3");
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CONFIRMATION_SOUND` is never used
[INFO] [stdout]   --> src/gui/sound.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub static CONFIRMATION_SOUND: &[u8] = include_bytes!("../../assets/standard/Confirmation.mp3");
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `play`, `move_sound`, `capture_sound`, `game_over_sound`, and `confirmation_sound` are never used
[INFO] [stdout]   --> src/gui/sound.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Cactus {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 13 |     fn play(handle: &OutputStream, bytes: &'static [u8]) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn move_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn capture_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn game_over_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn confirmation_sound(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_sufficient_material` and `compute_position_hash` are never used
[INFO] [stdout]   --> src/moves/draw.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  9 |     pub fn has_sufficient_material(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn compute_position_hash(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Move` is never constructed
[INFO] [stdout]  --> src/moves/moves.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Move {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_uci` is never used
[INFO] [stdout]   --> src/moves/moves.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Move {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 16 |     pub fn to_uci(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_castling_flags`, `update_en_passant_target`, `handle_en_passant`, `handle_castling`, and `validate_no_self_capture` are never used
[INFO] [stdout]    --> src/moves/moves.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  43 |     pub fn update_castling_flags(&mut self, from: (usize, usize), piece: PieceKind) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn update_en_passant_target(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn handle_en_passant(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn handle_castling(&mut self, from: (usize, usize), to: (usize, usize)) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn validate_no_self_capture(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/moves/rules.rs:8:12
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]   8 |     pub fn is_move_legal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  17 |     pub fn is_valid_piece_move(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn validate_pawn_move(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn validate_knight_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn validate_bishop_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn validate_rook_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn validate_queen_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn validate_king_move(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn is_path_clear(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_in_check(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn can_attack_square(&self, from: (usize, usize), to: (usize, usize)) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn find_king(&self, color: Color) -> Option<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn any_legal_move(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `simulate_move` and `simulate_move_checked` are never used
[INFO] [stdout]   --> src/moves/simulate.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  8 |     pub fn simulate_move(
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn simulate_move_checked(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s
[INFO] running `Command { std: "docker" "inspect" "1a7e399c9c553cec9321679cf567c35fa3b67fbd80db0e7f6e45120174eba72a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a7e399c9c553cec9321679cf567c35fa3b67fbd80db0e7f6e45120174eba72a", kill_on_drop: false }`
[INFO] [stdout] 1a7e399c9c553cec9321679cf567c35fa3b67fbd80db0e7f6e45120174eba72a
