[INFO] cloning repository https://github.com/BGluth/ultimate-mod-man-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BGluth/ultimate-mod-man-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBGluth%2Fultimate-mod-man-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBGluth%2Fultimate-mod-man-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 35d2750527bb4454314bda46344c672b8157e0ca
[INFO] checking BGluth/ultimate-mod-man-rs against try#ddcf048784667508cd676fef4667f88ae15628a3 for pr-148271
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBGluth%2Fultimate-mod-man-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BGluth/ultimate-mod-man-rs
[INFO] finished tweaking git repo https://github.com/BGluth/ultimate-mod-man-rs
[INFO] tweaked toml for git repo https://github.com/BGluth/ultimate-mod-man-rs written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BGluth/ultimate-mod-man-rs on toolchain ddcf048784667508cd676fef4667f88ae15628a3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BGluth/ultimate-mod-man-rs 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" "+ddcf048784667508cd676fef4667f88ae15628a3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-0-tc2/source/Cargo.toml: unused manifest key: workspace.author
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e9af5023152215a5152be921b792dffba96856f59f0dec4f0476137685213288
[INFO] running `Command { std: "docker" "start" "-a" "e9af5023152215a5152be921b792dffba96856f59f0dec4f0476137685213288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9af5023152215a5152be921b792dffba96856f59f0dec4f0476137685213288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9af5023152215a5152be921b792dffba96856f59f0dec4f0476137685213288", kill_on_drop: false }`
[INFO] [stdout] e9af5023152215a5152be921b792dffba96856f59f0dec4f0476137685213288
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 891afd8fe0ffe52c9c6f7545480374f962b46fdc4dbb676845823c858a615162
[INFO] running `Command { std: "docker" "start" "-a" "891afd8fe0ffe52c9c6f7545480374f962b46fdc4dbb676845823c858a615162", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.author
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]    Compiling thiserror v2.0.11
[INFO] [stderr]     Checking bytes v1.9.0
[INFO] [stderr]     Checking log v0.4.25
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]     Checking siphasher v1.0.1
[INFO] [stderr]     Checking http v1.2.0
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking indexmap v2.7.0
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking winnow v0.7.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling syn v2.0.95
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling cc v1.2.9
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking cpufeatures v0.2.16
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling serde_json v1.0.137
[INFO] [stderr]    Compiling rustix v0.38.43
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling camino v1.1.9
[INFO] [stderr]     Checking time v0.3.37
[INFO] [stderr]     Checking crc v3.2.1
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking inout v0.1.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking miniz_oxide v0.8.3
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking servo_arc v0.4.0
[INFO] [stderr]     Checking bit-vec v0.7.0
[INFO] [stderr]     Checking bumpalo v3.16.0
[INFO] [stderr]     Checking rustls-pki-types v1.10.1
[INFO] [stderr]     Checking uuid v1.12.1
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking lockfree-object-pool v0.1.6
[INFO] [stderr]    Compiling zip v2.2.2
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]     Checking bit-set v0.6.0
[INFO] [stderr]     Checking flate2 v1.0.35
[INFO] [stderr]     Checking nt-time v0.8.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking zopfli v0.8.1
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]    Compiling unrar_sys v0.5.6
[INFO] [stderr]     Checking filetime_creation v0.2.0
[INFO] [stderr]     Checking lzma-rs v0.3.0
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking lzma-rust v0.1.7
[INFO] [stderr]     Checking ego-tree v0.10.0
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking widestring v1.1.0
[INFO] [stderr]     Checking deflate64 v0.1.9
[INFO] [stderr]     Checking sevenz-rust v0.6.1
[INFO] [stderr]     Checking infer v0.16.0
[INFO] [stderr]     Checking bzip2 v0.4.4
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking rust-fuzzy-search v0.1.1
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking tint v1.0.1
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]    Compiling anyhow v1.0.95
[INFO] [stderr]     Checking lockfile v0.4.0
[INFO] [stderr]     Checking clap_builder v4.5.23
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling string_cache_codegen v0.5.2
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling markup5ever v0.14.0
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling pest v2.7.15
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking tokio-util v0.7.13
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking h2 v0.4.7
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking serde_spanned v0.6.8
[INFO] [stderr]     Checking toml_datetime v0.6.8
[INFO] [stderr]     Checking string_cache v0.8.7
[INFO] [stderr]     Checking toml_edit v0.22.23
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling html5ever v0.29.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking hyper v1.5.2
[INFO] [stderr]     Checking toml v0.8.20
[INFO] [stderr]     Checking cssparser v0.34.0
[INFO] [stderr]    Compiling pest_meta v2.7.15
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking xattr v1.4.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling pest_generator v2.7.15
[INFO] [stderr]     Checking zstd v0.13.2
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]    Compiling pest_derive v2.7.15
[INFO] [stderr]     Checking tar v0.4.43
[INFO] [stderr]     Checking ultimate-mod-man-rs-utils v0.1.0 (/opt/rustwide/workdir/utils)
[INFO] [stderr]     Checking reqwest v0.12.12
[INFO] [stderr]     Checking scraper v0.22.0
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> utils/src/types.rs:225:29
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct PickedSwapOption(usize);
[INFO] [stdout]     |            ---------------- ^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `PickedSwapOption` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_variant` and `existing_variant` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct VariantConflictSummary {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  9 |     new_variant: VariantAndId,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 10 |     existing_variant: VariantAndId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VariantConflictSummary` 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 `slot_name` and `slot_type_name` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct SlotInfo {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     slot_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     slot_type_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot_idx` and `occupied_by` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct AvailableSlotToSwapInto {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 25 |     slot_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     occupied_by: Option<VariantAndId>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AvailableSlotToSwapInto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]    Compiling async-trait v0.1.85
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking chrono v0.4.39
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> utils/src/types.rs:225:29
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct PickedSwapOption(usize);
[INFO] [stdout]     |            ---------------- ^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `PickedSwapOption` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_variant` and `existing_variant` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct VariantConflictSummary {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  9 |     new_variant: VariantAndId,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 10 |     existing_variant: VariantAndId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VariantConflictSummary` 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 `slot_name` and `slot_type_name` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct SlotInfo {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     slot_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     slot_type_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot_idx` and `occupied_by` are never read
[INFO] [stdout]   --> utils/src/user_input_delegate.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct AvailableSlotToSwapInto {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] 25 |     slot_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     occupied_by: Option<VariantAndId>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AvailableSlotToSwapInto` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking ptree v0.5.2
[INFO] [stderr]     Checking clap v4.5.23
[INFO] [stderr]     Checking unrar v0.5.7
[INFO] [stderr]     Checking ultimate-mod-man-rs-scraper v0.1.0 (/opt/rustwide/workdir/scraper)
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> scraper/src/download_artifact_parser.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::{self, Cursor, Read, Write},
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> scraper/src/banana_scraper.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn get_mod_page_for_mod_id(&self, name: &str) -> BananaScraperResult<String> {
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> scraper/src/download_artifact_parser.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::{self, Cursor, Read, Write},
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> scraper/src/banana_scraper.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn get_mod_page_for_mod_id(&self, name: &str) -> BananaScraperResult<String> {
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `archive_h`
[INFO] [stdout]   --> scraper/src/download_artifact_parser.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let archive_h = File::open(archive_path)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_archive_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_archive_file_paths`
[INFO] [stdout]   --> scraper/src/download_artifact_parser.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let all_archive_file_paths = expandable_archive
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_archive_file_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:164:18
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn filter_fn(p: &Utf8Path) -> bool {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:37
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset_p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:51
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:178:25
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn write(&mut self, path: &Utf8Path) -> VariantParseResult<()> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> scraper/src/mod_file_classifier.rs:50:35
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn from_uncompressed_path(p: &Utf8Path) -> Self {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_mod_page_for_mod_id` is never used
[INFO] [stdout]   --> scraper/src/banana_scraper.rs:68:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl BananaClient {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     async fn get_mod_page_for_mod_id(&self, name: &str) -> BananaScraperResult<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts_date_added` is never read
[INFO] [stdout]    --> scraper/src/banana_scraper.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 236 | struct ModDownloadEntries {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 241 |     ts_date_added: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ModDownloadEntries` 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 `remove_root_offset_from_path` is never used
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl ModPayloadParseInfo {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `intern` is never read
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct ZipParser {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 198 |     intern: ZipArchive<Cursor<Vec<u8>>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ZipParser` 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 `archive_path` and `all_file_paths` are never read
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 226 | struct RarParser {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 227 |     archive_path: Utf8PathBuf,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 228 |     all_file_paths: Vec<PathBuf>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariantSkinParseInfo` is never constructed
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:375:19
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub(crate) struct VariantSkinParseInfo {}
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CharacterSlot` is never constructed
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub(crate) struct CharacterSlot {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileOwnerDb` is never constructed
[INFO] [stdout]   --> scraper/src/mod_file_classifier.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct FileOwnerDb {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ultimate-mod-man-rs-core v0.1.0 (/opt/rustwide/workdir/core)
[INFO] [stdout] warning: unused variable: `archive_h`
[INFO] [stdout]   --> scraper/src/download_artifact_parser.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let archive_h = File::open(archive_path)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_archive_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_archive_file_paths`
[INFO] [stdout]   --> scraper/src/download_artifact_parser.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let all_archive_file_paths = expandable_archive
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_archive_file_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:164:18
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn filter_fn(p: &Utf8Path) -> bool {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:37
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset_p`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:51
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:178:25
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn write(&mut self, path: &Utf8Path) -> VariantParseResult<()> {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 281 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_dir`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |         dest_dir: &Utf8Path,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `root_offset`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         root_offset: Option<&Utf8Path>,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_root_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         filter: Box<dyn Fn(&Utf8Path) -> bool>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> scraper/src/mod_file_classifier.rs:50:35
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn from_uncompressed_path(p: &Utf8Path) -> Self {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_mod_page_for_mod_id` is never used
[INFO] [stdout]   --> scraper/src/banana_scraper.rs:68:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl BananaClient {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     async fn get_mod_page_for_mod_id(&self, name: &str) -> BananaScraperResult<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts_date_added` is never read
[INFO] [stdout]    --> scraper/src/banana_scraper.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 236 | struct ModDownloadEntries {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 241 |     ts_date_added: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ModDownloadEntries` 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 `remove_root_offset_from_path` is never used
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl ModPayloadParseInfo {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn remove_root_offset_from_path(p: &Utf8Path, root_offset_p: &Utf8Path) -> Utf8PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `intern` is never read
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct ZipParser {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] 198 |     intern: ZipArchive<Cursor<Vec<u8>>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ZipParser` 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 `archive_path` and `all_file_paths` are never read
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 226 | struct RarParser {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 227 |     archive_path: Utf8PathBuf,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 228 |     all_file_paths: Vec<PathBuf>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariantSkinParseInfo` is never constructed
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:375:19
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub(crate) struct VariantSkinParseInfo {}
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CharacterSlot` is never constructed
[INFO] [stdout]    --> scraper/src/download_artifact_parser.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub(crate) struct CharacterSlot {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileOwnerDb` is never constructed
[INFO] [stdout]   --> scraper/src/mod_file_classifier.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct FileOwnerDb {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `choose_slot_to_swap_to` has an incompatible type for trait
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |         slot: ultimate_mod_man_rs_utils::types::SwappableAssetSlot,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&SlotInfo`, found `SwappableAssetSlot`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut DummyDelegate, &SlotInfo, &[AvailableSlotToSwapInto]) -> PickedSwapOption`
[INFO] [stdout]               found signature `fn(&mut DummyDelegate, SwappableAssetSlot, &AvailableSlotsToSwapToInfo) -> PickedSwapOption`
[INFO] [stdout] help: change the parameter type to match the trait
[INFO] [stdout]    |
[INFO] [stdout] 37 -         slot: ultimate_mod_man_rs_utils::types::SwappableAssetSlot,
[INFO] [stdout] 37 +         slot: &SlotInfo,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_variant_conflict_resolution_option_swappable` has an incompatible type for trait
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |         slot: &SwappableAssetSlot,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^ expected `SlotInfo`, found `SwappableAssetSlot`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut DummyDelegate, &VariantAndId, &VariantAndId, &SlotInfo, usize) -> PickedResolutionOption`
[INFO] [stdout]               found signature `fn(&mut DummyDelegate, &VariantAndId, &VariantAndId, &SwappableAssetSlot, &AvailableSlotsToSwapToInfo) -> PickedResolutionOption`
[INFO] [stdout] help: change the parameter type to match the trait
[INFO] [stdout]    |
[INFO] [stdout] 47 -         slot: &SwappableAssetSlot,
[INFO] [stdout] 47 +         slot: &SlotInfo,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_variant_conflict_resolution_option_non_swappable` has an incompatible type for trait
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |         slot: &AssetSlot,
[INFO] [stdout]    |               ^^^^^^^^^^ expected `SlotInfo`, found `AssetSlot`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&mut DummyDelegate, &VariantAndId, &VariantAndId, &SlotInfo) -> PickedNonSwappableResolutionOption`
[INFO] [stdout]               found signature `fn(&mut DummyDelegate, &VariantAndId, &VariantAndId, &AssetSlot) -> PickedNonSwappableResolutionOption`
[INFO] [stdout] help: change the parameter type to match the trait
[INFO] [stdout]    |
[INFO] [stdout] 57 -         slot: &AssetSlot,
[INFO] [stdout] 57 +         slot: &SlotInfo,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:29:44
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn select_item_from_list<T>(&mut self, items: &[T]) -> usize {
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `summary`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:33:52
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn display_variant_conflict_summary(&mut self, summary: &VariantConflictSummary) {}
[INFO] [stdout]    |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_summary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         slot: ultimate_mod_man_rs_utils::types::SwappableAssetSlot,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `available_slots`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         available_slots: &AvailableSlotsToSwapToInfo,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_available_slots`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         existing: &VariantAndId,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         new: &VariantAndId,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         slot: &SwappableAssetSlot,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `available_slots`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         available_slots: &AvailableSlotsToSwapToInfo,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_available_slots`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         existing: &VariantAndId,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         new: &VariantAndId,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]   --> scraper/tests/banana_endpoint_tests.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         slot: &AssetSlot,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ultimate-mod-man-rs-scraper` (test "banana_endpoint_tests") due to 3 previous errors; 11 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `AssetSlot`, `AvailableSlotsToSwapToInfo`, and `SkinSlotValue`
[INFO] [stdout]  --> core/src/mod_manager.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         AssetSlot, AvailableSlotsToSwapToInfo, PickedResolutionOption, SkinSlotValue,
[INFO] [stdout]   |         ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AssetSlot`, `AvailableSlotsToSwapToInfo`, and `SkinSlotValue`
[INFO] [stdout]  --> core/src/mod_manager.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |         AssetSlot, AvailableSlotsToSwapToInfo, PickedResolutionOption, SkinSlotValue,
[INFO] [stdout]   |         ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this method are incorrect
[INFO] [stdout]    --> core/src/mod_manager.rs:271:14
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .choose_slot_to_swap_to(slot, &available_slots);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^ ---- expected `&SlotInfo`, found `SwappableAssetSlot`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&[AvailableSlotToSwapInto]`, found `&AvailableSlotsToSwapToInfo`
[INFO] [stdout]    --> core/src/mod_manager.rs:271:43
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .choose_slot_to_swap_to(slot, &available_slots);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected reference `&[AvailableSlotToSwapInto]`
[INFO] [stdout]                found reference `&AvailableSlotsToSwapToInfo`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/utils/src/user_input_delegate.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 |     fn choose_slot_to_swap_to(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this method are incorrect
[INFO] [stdout]    --> core/src/mod_manager.rs:271:14
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .choose_slot_to_swap_to(slot, &available_slots);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^ ---- expected `&SlotInfo`, found `SwappableAssetSlot`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&[AvailableSlotToSwapInto]`, found `&AvailableSlotsToSwapToInfo`
[INFO] [stdout]    --> core/src/mod_manager.rs:271:43
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .choose_slot_to_swap_to(slot, &available_slots);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected reference `&[AvailableSlotToSwapInto]`
[INFO] [stdout]                found reference `&AvailableSlotsToSwapToInfo`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/utils/src/user_input_delegate.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  37 |     fn choose_slot_to_swap_to(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> core/src/mod_manager.rs:156:30
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   .get_variant_conflict_resolution_option_non_swappable(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable call
[INFO] [stdout] ...
[INFO] [stdout] 159 | ...                       todo!(),
[INFO] [stdout]     |                           ------- any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub(crate) fn get_variant(&self, key: &VariantAndId) -> Option<&InstalledVariant> {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> core/src/mod_db.rs:299:41
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub(crate) fn remove_mod(&mut self, id: &ModId) -> Option<InstalledModInfo> {
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:309:56
[INFO] [stdout]     |
[INFO] [stdout] 309 |     pub(crate) fn cleanup_traces_of_variant(&mut self, key: &VariantAndId) -> ModDbResult<()> {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:314:52
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) fn cleanup_traces_of_mod(&mut self, key: &ModId) -> ModDbResult<()> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |         key: &VariantAndId,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflict`
[INFO] [stdout]    --> core/src/mod_db.rs:362:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |         conflict: &ConflictingModVariant,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflict`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]    --> core/src/mod_db.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 |         slot: &SwappableAssetSlot,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_info`
[INFO] [stdout]    --> core/src/mod_db.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         var_info: &VariantFileInfo,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `assoc_type`
[INFO] [stdout]    --> core/src/mod_db.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 615 |         assoc_type: &ModFileAssetAssociation,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_assoc_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution`
[INFO] [stdout]    --> core/src/mod_db.rs:633:47
[INFO] [stdout]     |
[INFO] [stdout] 633 |     pub(crate) fn resolve_conflict(&mut self, resolution: PickedResolutionOption) {
[INFO] [stdout]     |                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:701:22
[INFO] [stdout]     |
[INFO] [stdout] 701 |     fn resolve(self, res: PickedNonSwappableResolutionOption) -> CharSkinSlotResolution {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:718:9
[INFO] [stdout]     |
[INFO] [stdout] 718 |         res: PickedNonSwappableResolutionOption,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:735:33
[INFO] [stdout]     |
[INFO] [stdout] 735 |     pub(crate) fn resolve(self, res: PickedNonSwappableResolutionOption) -> GlobalResolution {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> core/src/mod_manager.rs:156:30
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   .get_variant_conflict_resolution_option_non_swappable(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable call
[INFO] [stdout] ...
[INFO] [stdout] 159 | ...                       todo!(),
[INFO] [stdout]     |                           ------- any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]   --> core/src/mod_manager.rs:57:26
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn status(&self, info: StatusCmdInfo) -> ModManagerResult<()> {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `swappable_slot`
[INFO] [stdout]    --> core/src/mod_manager.rs:141:29
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         let swappable_slot = info.existing();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_swappable_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> core/src/mod_manager.rs:152:49
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     AssetConflict::NonSwappable(info) => {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_manager.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 |                         let res = self
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> core/src/mod_manager.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn from(value: SwappableAssetConflict) -> Self {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]  --> core/src/cmds/add.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ident: ModIdentifier,
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> core/src/cmds/add.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     client: &BananaClient,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolver`
[INFO] [stdout]   --> core/src/cmds/add.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     resolver: &mut BananaModNameResolver,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mod_db`
[INFO] [stdout]   --> core/src/cmds/add.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     mod_db: &mut ModDb,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mod_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vec`
[INFO] [stdout]   --> core/src/cmds/status.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |         StatusCmdInfo::Specific(vec) => todo!(),
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ultimate-mod-man-rs-core` (lib test) due to 1 previous error; 25 warnings emitted
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub(crate) fn get_variant(&self, key: &VariantAndId) -> Option<&InstalledVariant> {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> core/src/mod_db.rs:299:41
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub(crate) fn remove_mod(&mut self, id: &ModId) -> Option<InstalledModInfo> {
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:309:56
[INFO] [stdout]     |
[INFO] [stdout] 309 |     pub(crate) fn cleanup_traces_of_variant(&mut self, key: &VariantAndId) -> ModDbResult<()> {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:314:52
[INFO] [stdout]     |
[INFO] [stdout] 314 |     pub(crate) fn cleanup_traces_of_mod(&mut self, key: &ModId) -> ModDbResult<()> {
[INFO] [stdout]     |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> core/src/mod_db.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |         key: &VariantAndId,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflict`
[INFO] [stdout]    --> core/src/mod_db.rs:362:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |         conflict: &ConflictingModVariant,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflict`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slot`
[INFO] [stdout]    --> core/src/mod_db.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 |         slot: &SwappableAssetSlot,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_info`
[INFO] [stdout]    --> core/src/mod_db.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         var_info: &VariantFileInfo,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `assoc_type`
[INFO] [stdout]    --> core/src/mod_db.rs:615:9
[INFO] [stdout]     |
[INFO] [stdout] 615 |         assoc_type: &ModFileAssetAssociation,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_assoc_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolution`
[INFO] [stdout]    --> core/src/mod_db.rs:633:47
[INFO] [stdout]     |
[INFO] [stdout] 633 |     pub(crate) fn resolve_conflict(&mut self, resolution: PickedResolutionOption) {
[INFO] [stdout]     |                                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:701:22
[INFO] [stdout]     |
[INFO] [stdout] 701 |     fn resolve(self, res: PickedNonSwappableResolutionOption) -> CharSkinSlotResolution {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:718:9
[INFO] [stdout]     |
[INFO] [stdout] 718 |         res: PickedNonSwappableResolutionOption,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_db.rs:735:33
[INFO] [stdout]     |
[INFO] [stdout] 735 |     pub(crate) fn resolve(self, res: PickedNonSwappableResolutionOption) -> GlobalResolution {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]   --> core/src/mod_manager.rs:57:26
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn status(&self, info: StatusCmdInfo) -> ModManagerResult<()> {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `swappable_slot`
[INFO] [stdout]    --> core/src/mod_manager.rs:141:29
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         let swappable_slot = info.existing();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_swappable_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> core/src/mod_manager.rs:152:49
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     AssetConflict::NonSwappable(info) => {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> core/src/mod_manager.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 |                         let res = self
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> core/src/mod_manager.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn from(value: SwappableAssetConflict) -> Self {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]  --> core/src/cmds/add.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ident: ModIdentifier,
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> core/src/cmds/add.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     client: &BananaClient,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resolver`
[INFO] [stdout]   --> core/src/cmds/add.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     resolver: &mut BananaModNameResolver,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mod_db`
[INFO] [stdout]   --> core/src/cmds/add.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     mod_db: &mut ModDb,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mod_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vec`
[INFO] [stdout]   --> core/src/cmds/status.rs:29:33
[INFO] [stdout]    |
[INFO] [stdout] 29 |         StatusCmdInfo::Specific(vec) => todo!(),
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ultimate-mod-man-rs-core` (lib) due to 1 previous error; 25 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "891afd8fe0ffe52c9c6f7545480374f962b46fdc4dbb676845823c858a615162", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "891afd8fe0ffe52c9c6f7545480374f962b46fdc4dbb676845823c858a615162", kill_on_drop: false }`
[INFO] [stdout] 891afd8fe0ffe52c9c6f7545480374f962b46fdc4dbb676845823c858a615162
