[INFO] cloning repository https://github.com/phillipsOG/ProjectAether
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/phillipsOG/ProjectAether" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FphillipsOG%2FProjectAether", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FphillipsOG%2FProjectAether'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b1eea429bc5caec93055433a75bfc7fcebbd0fa0
[INFO] checking phillipsOG/ProjectAether against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FphillipsOG%2FProjectAether" "/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/phillipsOG/ProjectAether
[INFO] finished tweaking git repo https://github.com/phillipsOG/ProjectAether
[INFO] tweaked toml for git repo https://github.com/phillipsOG/ProjectAether written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/phillipsOG/ProjectAether on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/phillipsOG/ProjectAether 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ordered-float v3.9.1
[INFO] [stderr]   Downloaded blocking v1.3.1
[INFO] [stderr]   Downloaded object v0.32.0
[INFO] [stderr]   Downloaded syn v2.0.29
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fb81fb16023ec5e7c658324f9a5abead9a68f4f2d95577857033469fa46222f2
[INFO] running `Command { std: "docker" "start" "-a" "fb81fb16023ec5e7c658324f9a5abead9a68f4f2d95577857033469fa46222f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb81fb16023ec5e7c658324f9a5abead9a68f4f2d95577857033469fa46222f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb81fb16023ec5e7c658324f9a5abead9a68f4f2d95577857033469fa46222f2", kill_on_drop: false }`
[INFO] [stdout] fb81fb16023ec5e7c658324f9a5abead9a68f4f2d95577857033469fa46222f2
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 676c47c1dea4432ae0ad53078da893dcbd1cdbfe369ddaebfa2ec8b6ee0b1de9
[INFO] running `Command { std: "docker" "start" "-a" "676c47c1dea4432ae0ad53078da893dcbd1cdbfe369ddaebfa2ec8b6ee0b1de9", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]     Checking value-bag v1.4.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking parking v2.1.0
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling rustix v0.37.23
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking async-task v4.4.0
[INFO] [stderr]     Checking futures-channel v0.3.28
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]     Checking atomic-waker v1.1.1
[INFO] [stderr]     Checking smallvec v1.11.0
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]     Checking bitflags v2.3.3
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking concurrent-queue v2.2.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]    Compiling syn v2.0.29
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking async-executor v1.5.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking blocking v1.3.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking ordered-float v3.9.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking async-global-executor v2.3.1
[INFO] [stderr]     Checking async-std v1.12.0
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]     Checking tokio v1.32.0
[INFO] [stderr]     Checking futures-util v0.3.28
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking futures v0.3.28
[INFO] [stderr]     Checking ProjectAether v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/chat.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{stdout, 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 import: `std::io`
[INFO] [stdout]  --> src/game_client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutableCommand`
[INFO] [stdout]  --> src/game_client.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crossterm::{terminal, ExecutableCommand, QueueableCommand};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBlinking` and `SetCursorStyle`
[INFO] [stdout]   --> src/game_client.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crossterm::cursor::{DisableBlinking, SetCursorStyle};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> src/game_client.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{stdout, Write};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MONSTER_TILE_SET`
[INFO] [stdout]  --> src/map_data.rs:3:50
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tile_set::{TileSet, DEFAULT_TILE_SET, MONSTER_TILE_SET};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::StdRng`
[INFO] [stdout]   --> src/map_factory.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::rngs::StdRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]   --> src/map_factory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Map`
[INFO] [stdout]  --> src/map_manager.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Map, MovementType};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MONSTER_TILE_SET` and `MonsterTileSet`
[INFO] [stdout]  --> src/monster_generator.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::tile_set::{MONSTER_TILE_SET, MonsterTileSet};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::space::Space`
[INFO] [stdout]  --> src/pathfinding.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::space::Space;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::TryFutureExt`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use futures::TryFutureExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/chat.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{stdout, 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 import: `std::io`
[INFO] [stdout]  --> src/game_client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutableCommand`
[INFO] [stdout]  --> src/game_client.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crossterm::{terminal, ExecutableCommand, QueueableCommand};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBlinking` and `SetCursorStyle`
[INFO] [stdout]   --> src/game_client.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crossterm::cursor::{DisableBlinking, SetCursorStyle};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]   --> src/game_client.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{stdout, Write};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MONSTER_TILE_SET`
[INFO] [stdout]  --> src/map_data.rs:3:50
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tile_set::{TileSet, DEFAULT_TILE_SET, MONSTER_TILE_SET};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::StdRng`
[INFO] [stdout]   --> src/map_factory.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::rngs::StdRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]   --> src/map_factory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Map`
[INFO] [stdout]  --> src/map_manager.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{Map, MovementType};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MONSTER_TILE_SET` and `MonsterTileSet`
[INFO] [stdout]  --> src/monster_generator.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::tile_set::{MONSTER_TILE_SET, MonsterTileSet};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::space::Space`
[INFO] [stdout]  --> src/pathfinding.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::space::Space;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::TryFutureExt`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use futures::TryFutureExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/map_factory.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut chat = chat_clone.lock().await;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/pathfinding.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let mut cost_map_data = Pathfinding::build_cost_map(
[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/pathfinding.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut new_cost_map = Pathfinding::build_cost_map(
[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/main.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut terminal_guard = terminal_clone.lock().await;
[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/main.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 let mut map = map_manager_guard.get_mut_current_map();
[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/map_factory.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut chat = chat_clone.lock().await;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/pathfinding.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let mut cost_map_data = Pathfinding::build_cost_map(
[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/pathfinding.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let mut new_cost_map = Pathfinding::build_cost_map(
[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/main.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let mut terminal_guard = terminal_clone.lock().await;
[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/main.rs:266:21
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 let mut map = map_manager_guard.get_mut_current_map();
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_position` is never read
[INFO] [stdout]   --> src/collision_engine.rs:49:36
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut current_position = Vec2::ZERO;
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]   --> src/game_client.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let player_pos = player.position;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed`
[INFO] [stdout]   --> src/map_factory.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let seed = hasher.finish();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat`
[INFO] [stdout]    --> src/map_factory.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut chat = chat_clone.lock().await;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/monster_manager.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut spawn_one = false;
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_one`
[INFO] [stdout]   --> src/monster_manager.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut spawn_one = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `monster_type` is never read
[INFO] [stdout]   --> src/monster_manager.rs:47:40
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let mut monster_type = MONSTER_TILE_SET.goblin;
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_position` is never read
[INFO] [stdout]   --> src/collision_engine.rs:49:36
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut current_position = Vec2::ZERO;
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]   --> src/game_client.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let player_pos = player.position;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut player = Arc::new(Mutex::new(Player::new()));
[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/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut terminal_guard = terminal_clone.lock().await;
[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/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut map_manager = Arc::new(Mutex::new(MapManager::new()));
[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/main.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     let mut terminal_guard = terminal_clone.lock().await;
[INFO] [stdout]     |                         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed`
[INFO] [stdout]   --> src/map_factory.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let seed = hasher.finish();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat`
[INFO] [stdout]    --> src/map_factory.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut chat = chat_clone.lock().await;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/monster_manager.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut spawn_one = false;
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_one`
[INFO] [stdout]   --> src/monster_manager.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut spawn_one = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `monster_type` is never read
[INFO] [stdout]   --> src/monster_manager.rs:47:40
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 let mut monster_type = MONSTER_TILE_SET.goblin;
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_chat` and `print_processed_input` are never used
[INFO] [stdout]   --> src/chat.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Chat {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub(crate) fn clear_chat(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn print_processed_input(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonsterPositionSet` is never constructed
[INFO] [stdout]   --> src/collision_engine.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct MonsterPositionSet {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/collision_engine.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MonsterPositionSet {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 31 |     pub(crate) fn new(current_position: Vec2, new_position: Vec2) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_tile_monster` is never used
[INFO] [stdout]    --> src/collision_engine.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl CollisionEngine {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn is_tile_monster(&self, monster: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_inventory` is never used
[INFO] [stdout]   --> src/inventory.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Inventory {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn get_inventory(&mut self) -> [String; 1] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `str_map` is never read
[INFO] [stdout]   --> src/map_data.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MapData {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 12 |     pub map: Map,
[INFO] [stdout] 13 |     pub str_map: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/map_data.rs:83:19
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl MapData {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub(crate) fn set_monster_position(&mut self, new_pos: Vec2, monster_type: char) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub(crate) fn set_map_tile_set(&mut self, tile_set: TileSet) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) fn print_map(&self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn print_map_with_module(&self, module: &[String]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub(crate) fn update_str_map_with_modules(&mut self, module: &[[String; 3]; 2]) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub(crate) fn get_current_floor_to_size(&mut self, size: usize) -> [String; 3] {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub(crate) fn get_tile_at_position(&self, position: Option<(usize, usize)>) -> char {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `should_transition`, `target_map`, and `target_position` are never read
[INFO] [stdout]   --> src/map_manager.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct MapManager {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub should_transition: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub target_map: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub target_position: Vec2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_tile_below_monster` and `get_tile_below_monster` are never used
[INFO] [stdout]   --> src/monster.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Monster {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub(crate) fn update_tile_below_monster(&mut self, tile: char) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub(crate) fn get_tile_below_monster(self) -> char {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_monsters`, `get_monster`, and `get_monster_mut` are never used
[INFO] [stdout]   --> src/monster_manager.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MonsterManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub(crate) fn get_monsters(self) -> Monsters {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub(crate) fn get_monster(&mut self, id: &i32) -> Option<&Monster> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub(crate) fn get_monster_mut(&mut self, id: &i32) -> Option<&mut Monster> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `previous_key_event`, `key_state`, `multi_tile_below_player`, and `is_alive` are never read
[INFO] [stdout]   --> src/player.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout]  9 |     pub key_event: KeyCode,
[INFO] [stdout] 10 |     pub previous_key_event: KeyCode,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub key_state: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub multi_tile_below_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub is_alive: bool
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Player` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_player` is never read
[INFO] [stdout]   --> src/space.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Space {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub is_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Space` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_status` is never used
[INFO] [stdout]   --> src/status.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Status {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn print_status(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `previous_tile` is never read
[INFO] [stdout]   --> src/tile_set.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct TileSet {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub previous_tile: char,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TileSet` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `new` and `update_with` are never used
[INFO] [stdout]   --> src/tile_set.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TileSet {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 16 |     pub(crate) fn new(&mut self) {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn update_with(&mut self, other: TileSet) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `new` and `update_with` are never used
[INFO] [stdout]   --> src/tile_set.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl MonsterTileSet {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 67 |     pub(crate) fn new(&mut self) {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn update_with(&mut self, other: MonsterTileSet) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut player = Arc::new(Mutex::new(Player::new()));
[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/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut terminal_guard = terminal_clone.lock().await;
[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/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut map_manager = Arc::new(Mutex::new(MapManager::new()));
[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/main.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     let mut terminal_guard = terminal_clone.lock().await;
[INFO] [stdout]     |                         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_chat` and `print_processed_input` are never used
[INFO] [stdout]   --> src/chat.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Chat {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub(crate) fn clear_chat(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn print_processed_input(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonsterPositionSet` is never constructed
[INFO] [stdout]   --> src/collision_engine.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct MonsterPositionSet {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/collision_engine.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MonsterPositionSet {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 31 |     pub(crate) fn new(current_position: Vec2, new_position: Vec2) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_tile_monster` is never used
[INFO] [stdout]    --> src/collision_engine.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl CollisionEngine {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn is_tile_monster(&self, monster: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_inventory` is never used
[INFO] [stdout]   --> src/inventory.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Inventory {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn get_inventory(&mut self) -> [String; 1] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `str_map` is never read
[INFO] [stdout]   --> src/map_data.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MapData {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 12 |     pub map: Map,
[INFO] [stdout] 13 |     pub str_map: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/map_data.rs:83:19
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl MapData {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub(crate) fn set_monster_position(&mut self, new_pos: Vec2, monster_type: char) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub(crate) fn set_map_tile_set(&mut self, tile_set: TileSet) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) fn print_map(&self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn print_map_with_module(&self, module: &[String]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub(crate) fn update_str_map_with_modules(&mut self, module: &[[String; 3]; 2]) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub(crate) fn get_current_floor_to_size(&mut self, size: usize) -> [String; 3] {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub(crate) fn get_tile_at_position(&self, position: Option<(usize, usize)>) -> char {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `should_transition`, `target_map`, and `target_position` are never read
[INFO] [stdout]   --> src/map_manager.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct MapManager {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub should_transition: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub target_map: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub target_position: Vec2,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_tile_below_monster` and `get_tile_below_monster` are never used
[INFO] [stdout]   --> src/monster.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Monster {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub(crate) fn update_tile_below_monster(&mut self, tile: char) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub(crate) fn get_tile_below_monster(self) -> char {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_monsters`, `get_monster`, and `get_monster_mut` are never used
[INFO] [stdout]   --> src/monster_manager.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MonsterManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub(crate) fn get_monsters(self) -> Monsters {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub(crate) fn get_monster(&mut self, id: &i32) -> Option<&Monster> {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub(crate) fn get_monster_mut(&mut self, id: &i32) -> Option<&mut Monster> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `previous_key_event`, `key_state`, `multi_tile_below_player`, and `is_alive` are never read
[INFO] [stdout]   --> src/player.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Player {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout]  9 |     pub key_event: KeyCode,
[INFO] [stdout] 10 |     pub previous_key_event: KeyCode,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub key_state: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub multi_tile_below_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub is_alive: bool
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Player` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_player` is never read
[INFO] [stdout]   --> src/space.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Space {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub is_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Space` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_status` is never used
[INFO] [stdout]   --> src/status.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Status {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn print_status(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `previous_tile` is never read
[INFO] [stdout]   --> src/tile_set.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct TileSet {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub previous_tile: char,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TileSet` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `new` and `update_with` are never used
[INFO] [stdout]   --> src/tile_set.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TileSet {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 16 |     pub(crate) fn new(&mut self) {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn update_with(&mut self, other: TileSet) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `new` and `update_with` are never used
[INFO] [stdout]   --> src/tile_set.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl MonsterTileSet {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 67 |     pub(crate) fn new(&mut self) {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn update_with(&mut self, other: MonsterTileSet) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.45s
[INFO] running `Command { std: "docker" "inspect" "676c47c1dea4432ae0ad53078da893dcbd1cdbfe369ddaebfa2ec8b6ee0b1de9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "676c47c1dea4432ae0ad53078da893dcbd1cdbfe369ddaebfa2ec8b6ee0b1de9", kill_on_drop: false }`
[INFO] [stdout] 676c47c1dea4432ae0ad53078da893dcbd1cdbfe369ddaebfa2ec8b6ee0b1de9
