[INFO] cloning repository https://github.com/muffledcry/ECS-RPG
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/muffledcry/ECS-RPG" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuffledcry%2FECS-RPG", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuffledcry%2FECS-RPG'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6ab70fa32ac7ca0108b989dc0d7b7c8b28eafff1
[INFO] checking muffledcry/ECS-RPG against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuffledcry%2FECS-RPG" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  69% (1320/1892)
Updating files:  70% (1325/1892)
Updating files:  71% (1344/1892)
Updating files:  72% (1363/1892)
Updating files:  73% (1382/1892)
Updating files:  74% (1401/1892)
Updating files:  74% (1404/1892)
Updating files:  75% (1419/1892)
Updating files:  76% (1438/1892)
Updating files:  77% (1457/1892)
Updating files:  78% (1476/1892)
Updating files:  79% (1495/1892)
Updating files:  80% (1514/1892)
Updating files:  81% (1533/1892)
Updating files:  82% (1552/1892)
Updating files:  83% (1571/1892)
Updating files:  84% (1590/1892)
Updating files:  85% (1609/1892)
Updating files:  86% (1628/1892)
Updating files:  87% (1647/1892)
Updating files:  88% (1665/1892)
Updating files:  89% (1684/1892)
Updating files:  89% (1700/1892)
Updating files:  90% (1703/1892)
Updating files:  91% (1722/1892)
Updating files:  92% (1741/1892)
Updating files:  93% (1760/1892)
Updating files:  94% (1779/1892)
Updating files:  95% (1798/1892)
Updating files:  96% (1817/1892)
Updating files:  97% (1836/1892)
Updating files:  98% (1855/1892)
Updating files:  99% (1874/1892)
Updating files: 100% (1892/1892)
Updating files: 100% (1892/1892), done.
[INFO] started tweaking git repo https://github.com/muffledcry/ECS-RPG
[INFO] finished tweaking git repo https://github.com/muffledcry/ECS-RPG
[INFO] tweaked toml for git repo https://github.com/muffledcry/ECS-RPG written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/muffledcry/ECS-RPG on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/muffledcry/ECS-RPG already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dashmap v5.4.0
[INFO] [stderr]   Downloaded terminfo v0.7.5
[INFO] [stderr]   Downloaded clearscreen v2.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fd36a3965c6c39a618b262096fa10da2ba7849167325e43f08a996800854f24e
[INFO] running `Command { std: "docker" "start" "-a" "fd36a3965c6c39a618b262096fa10da2ba7849167325e43f08a996800854f24e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fd36a3965c6c39a618b262096fa10da2ba7849167325e43f08a996800854f24e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd36a3965c6c39a618b262096fa10da2ba7849167325e43f08a996800854f24e", kill_on_drop: false }`
[INFO] [stdout] fd36a3965c6c39a618b262096fa10da2ba7849167325e43f08a996800854f24e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d4e0c3fb5b0905821fe7f61bbb4fbc108b9c45cc945d609ddfdd8b109b3bd84a
[INFO] running `Command { std: "docker" "start" "-a" "d4e0c3fb5b0905821fe7f61bbb4fbc108b9c45cc945d609ddfdd8b109b3bd84a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.51
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking siphasher v0.3.10
[INFO] [stderr]    Compiling phf_shared v0.11.1
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]    Compiling serde_json v1.0.93
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking parking_lot_core v0.9.7
[INFO] [stderr]     Checking which v4.4.0
[INFO] [stderr]     Checking nix v0.26.2
[INFO] [stderr]    Compiling phf_generator v0.11.1
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]    Compiling phf_codegen v0.11.1
[INFO] [stderr]    Compiling terminfo v0.7.5
[INFO] [stderr]     Checking dashmap v5.4.0
[INFO] [stderr]     Checking phf v0.11.1
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling thiserror-impl v1.0.38
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling uuid-macro-internal v1.3.0
[INFO] [stderr]     Checking uuid v1.3.0
[INFO] [stderr]     Checking thiserror v1.0.38
[INFO] [stderr]     Checking clearscreen v2.0.0
[INFO] [stderr]     Checking serde v1.0.152
[INFO] [stderr]     Checking my-project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::components::health`
[INFO] [stdout]  --> src/components/status.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::components::health;
[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: `crate::components::magic::Magic`
[INFO] [stdout]  --> src/components/status.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::components::magic::Magic;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/components/descriptions.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 |   pub fn get_description(&self, id: &Uuid, key: &str) -> String {
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_id`
[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]   --> src/components/descriptions.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |   pub fn get_all_descriptions(&self, id: &Uuid) -> &HashMap<String, String> {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/components/descriptions.rs:30:40
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub fn delete_description(&mut self, id: &Uuid, key: &str) {
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/components/status.rs:46:23
[INFO] [stdout]    |
[INFO] [stdout] 46 |   pub fn apply(&self, target: &mut Entity) {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components::health`
[INFO] [stdout]  --> src/components/status.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::components::health;
[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: `crate::components::magic::Magic`
[INFO] [stdout]  --> src/components/status.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::components::magic::Magic;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut player = self.entity_manager.get_entity_mut(player_id).unwrap();
[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/game.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let mut monster = self.entity_manager.get_entity_mut(monster_id).unwrap();
[INFO] [stdout]    |                     ----^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/game.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut player = self.entity_manager.get_entity_mut(player_id).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_name`
[INFO] [stdout]   --> src/game.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let player_name = Name::new("Player");
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]   --> src/game.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let player_pos = Location::new(0.0, 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster`
[INFO] [stdout]   --> src/game.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let mut monster = self.entity_manager.get_entity_mut(monster_id).unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_name`
[INFO] [stdout]   --> src/game.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 let monster_name = Name::new(&format!("Monster {}", i));
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_health`
[INFO] [stdout]   --> src/game.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |                 let monster_health = Health::new(10);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_health`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_location`
[INFO] [stdout]   --> src/game.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 let monster_location = Location::new(i as f32, i as f32);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Attributes` is never constructed
[INFO] [stdout]  --> src/components/attributes.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Attributes {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/attributes.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Attributes {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 26 |   pub fn new(
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn get_strength(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |   pub fn set_strength(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |   pub fn get_constitution(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |   pub fn set_constitution(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |   pub fn get_dexterity(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |   pub fn set_dexterity(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |   pub fn get_wisdom(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |   pub fn set_wisdom(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |   pub fn get_intelligence(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |   pub fn set_intelligence(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |   pub fn get_charisma(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |   pub fn set_charisma(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |   pub fn get_luck(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |   pub fn set_luck(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Descriptions` is never constructed
[INFO] [stdout]  --> src/components/descriptions.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Descriptions {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_description`, `get_description`, `get_all_descriptions`, and `delete_description` are never used
[INFO] [stdout]   --> src/components/descriptions.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Descriptions {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |   pub fn new() -> Descriptions {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |   pub fn add_description(&mut self, key: &str, value: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |   pub fn get_description(&self, id: &Uuid, key: &str) -> String {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn get_all_descriptions(&self, id: &Uuid) -> &HashMap<String, String> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |   pub fn delete_description(&mut self, id: &Uuid, key: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntityType` is never used
[INFO] [stdout]  --> src/components/entity_type.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum EntityType {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `decrease`, `increase`, `is_alive`, `get_current`, `get_max`, and `increase_max` are never used
[INFO] [stdout]   --> src/components/health.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Health {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |   pub fn decrease(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |   pub fn increase(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |   pub fn get_current(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |   pub fn get_max(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn increase_max(&mut self, increment: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/components/location.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Location {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 3 |   pub x: f32,
[INFO] [stdout]   |       ^
[INFO] [stdout] 4 |   pub y: f32,
[INFO] [stdout]   |       ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Location` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Magic` is never constructed
[INFO] [stdout]  --> src/components/magic.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Magic {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/magic.rs:7:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Magic {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout]  7 |   pub fn new(max: i32) -> Magic {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |   pub fn decrease(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |   pub fn increase(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   pub fn has_magic(&self) -> bool {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   pub fn get_current(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   pub fn get_max(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn increase_max(&mut self, increment: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]  --> src/components/name.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Name {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 3 |   pub name: String,
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Name` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_name` and `change_name` are never used
[INFO] [stdout]   --> src/components/name.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Name {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |   pub fn get_name(&self) -> &str {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |   pub fn change_name(&mut self, new_name: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Status` is never constructed
[INFO] [stdout]  --> src/components/status.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Status {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_effect`, `remove_effect`, `has_effect`, and `apply_effects` are never used
[INFO] [stdout]   --> src/components/status.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Status {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new() -> Status {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn add_effect(&mut self, effect: StatusEffect) {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   pub fn remove_effect(&mut self, effect: &StatusEffect) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn has_effect(&self, effect: &StatusEffect) -> bool {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |   pub fn apply_effects(&mut self, target: &mut Entity) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StatusEffect` is never used
[INFO] [stdout]   --> src/components/status.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum StatusEffect {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/components/status.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl StatusEffect {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 46 |   pub fn apply(&self, target: &mut Entity) {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connection_info` is never read
[INFO] [stdout]  --> src/entities/entity.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Entity {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     pub entity_id: Uuid,
[INFO] [stdout] 7 |     pub connection_info: ConnectionInfo,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Entity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_session_id` and `get_connection_info` are never used
[INFO] [stdout]   --> src/entities/entity.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Entity {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn get_session_id(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_connection_info(&self) -> &ConnectionInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `names`, `locations`, and `healths` are never read
[INFO] [stdout]   --> src/entities/entity_manager.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct EntityManager {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |   pub entities: DashMap<Uuid, Entity>,
[INFO] [stdout] 12 |   pub names: DashMap<Uuid, Name>,
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 13 |   pub locations: DashMap<Uuid, Location>,
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 14 |   pub healths: DashMap<Uuid, Health>,
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntityManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `get_entity` are never used
[INFO] [stdout]   --> src/entities/entity_manager.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl EntityManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn remove_entity(&mut self, id: Uuid) -> Option<Entity> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |   pub fn get_entity(&self, id: Uuid) -> Option<Entity> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `session_id` and `remote_addr` are never read
[INFO] [stdout]  --> src/utils.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnectionInfo {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 6 |     pub session_id: Uuid,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 7 |     pub remote_addr: RemoteAddr,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ConnectionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/utils.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RemoteAddr(SocketAddr);
[INFO] [stdout]    |            ---------- ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `RemoteAddr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_session_id`, and `get_remote_addr` are never used
[INFO] [stdout]   --> src/utils.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ConnectionInfo {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(session_id: Uuid, remote_addr: SocketAddr) -> ConnectionInfo {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn get_session_id(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_remote_addr(&self) -> &SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/components/descriptions.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 |   pub fn get_description(&self, id: &Uuid, key: &str) -> String {
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_id`
[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]   --> src/components/descriptions.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |   pub fn get_all_descriptions(&self, id: &Uuid) -> &HashMap<String, String> {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/components/descriptions.rs:30:40
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub fn delete_description(&mut self, id: &Uuid, key: &str) {
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/components/status.rs:46:23
[INFO] [stdout]    |
[INFO] [stdout] 46 |   pub fn apply(&self, target: &mut Entity) {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut player = self.entity_manager.get_entity_mut(player_id).unwrap();
[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/game.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let mut monster = self.entity_manager.get_entity_mut(monster_id).unwrap();
[INFO] [stdout]    |                     ----^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/game.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut player = self.entity_manager.get_entity_mut(player_id).unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_name`
[INFO] [stdout]   --> src/game.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let player_name = Name::new("Player");
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]   --> src/game.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let player_pos = Location::new(0.0, 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster`
[INFO] [stdout]   --> src/game.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let mut monster = self.entity_manager.get_entity_mut(monster_id).unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_name`
[INFO] [stdout]   --> src/game.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 let monster_name = Name::new(&format!("Monster {}", i));
[INFO] [stdout]    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_health`
[INFO] [stdout]   --> src/game.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |                 let monster_health = Health::new(10);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_health`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monster_location`
[INFO] [stdout]   --> src/game.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 let monster_location = Location::new(i as f32, i as f32);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monster_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Attributes` is never constructed
[INFO] [stdout]  --> src/components/attributes.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Attributes {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/attributes.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Attributes {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 26 |   pub fn new(
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn get_strength(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |   pub fn set_strength(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |   pub fn get_constitution(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |   pub fn set_constitution(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |   pub fn get_dexterity(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |   pub fn set_dexterity(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |   pub fn get_wisdom(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |   pub fn set_wisdom(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |   pub fn get_intelligence(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |   pub fn set_intelligence(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |   pub fn get_charisma(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |   pub fn set_charisma(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |   pub fn get_luck(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |   pub fn set_luck(&mut self, value: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Descriptions` is never constructed
[INFO] [stdout]  --> src/components/descriptions.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Descriptions {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_description`, `get_description`, `get_all_descriptions`, and `delete_description` are never used
[INFO] [stdout]   --> src/components/descriptions.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Descriptions {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |   pub fn new() -> Descriptions {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |   pub fn add_description(&mut self, key: &str, value: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |   pub fn get_description(&self, id: &Uuid, key: &str) -> String {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn get_all_descriptions(&self, id: &Uuid) -> &HashMap<String, String> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |   pub fn delete_description(&mut self, id: &Uuid, key: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntityType` is never used
[INFO] [stdout]  --> src/components/entity_type.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum EntityType {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `decrease`, `increase`, `is_alive`, `get_current`, `get_max`, and `increase_max` are never used
[INFO] [stdout]   --> src/components/health.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Health {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |   pub fn decrease(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |   pub fn increase(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |   pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |   pub fn get_current(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |   pub fn get_max(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn increase_max(&mut self, increment: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/components/location.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Location {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 3 |   pub x: f32,
[INFO] [stdout]   |       ^
[INFO] [stdout] 4 |   pub y: f32,
[INFO] [stdout]   |       ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Location` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Magic` is never constructed
[INFO] [stdout]  --> src/components/magic.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Magic {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/magic.rs:7:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Magic {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout]  7 |   pub fn new(max: i32) -> Magic {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |   pub fn decrease(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |   pub fn increase(&mut self, amount: i32) {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   pub fn has_magic(&self) -> bool {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   pub fn get_current(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   pub fn get_max(&self) -> i32 {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn increase_max(&mut self, increment: i32) {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]  --> src/components/name.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Name {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 3 |   pub name: String,
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Name` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_name` and `change_name` are never used
[INFO] [stdout]   --> src/components/name.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Name {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |   pub fn get_name(&self) -> &str {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |   pub fn change_name(&mut self, new_name: &str) {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Status` is never constructed
[INFO] [stdout]  --> src/components/status.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Status {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_effect`, `remove_effect`, `has_effect`, and `apply_effects` are never used
[INFO] [stdout]   --> src/components/status.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Status {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new() -> Status {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |   pub fn add_effect(&mut self, effect: StatusEffect) {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   pub fn remove_effect(&mut self, effect: &StatusEffect) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn has_effect(&self, effect: &StatusEffect) -> bool {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |   pub fn apply_effects(&mut self, target: &mut Entity) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StatusEffect` is never used
[INFO] [stdout]   --> src/components/status.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum StatusEffect {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/components/status.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl StatusEffect {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 46 |   pub fn apply(&self, target: &mut Entity) {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connection_info` is never read
[INFO] [stdout]  --> src/entities/entity.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Entity {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     pub entity_id: Uuid,
[INFO] [stdout] 7 |     pub connection_info: ConnectionInfo,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Entity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_session_id` and `get_connection_info` are never used
[INFO] [stdout]   --> src/entities/entity.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Entity {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn get_session_id(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_connection_info(&self) -> &ConnectionInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `names`, `locations`, and `healths` are never read
[INFO] [stdout]   --> src/entities/entity_manager.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct EntityManager {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 11 |   pub entities: DashMap<Uuid, Entity>,
[INFO] [stdout] 12 |   pub names: DashMap<Uuid, Name>,
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 13 |   pub locations: DashMap<Uuid, Location>,
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 14 |   pub healths: DashMap<Uuid, Health>,
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntityManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `get_entity` are never used
[INFO] [stdout]   --> src/entities/entity_manager.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl EntityManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn remove_entity(&mut self, id: Uuid) -> Option<Entity> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |   pub fn get_entity(&self, id: Uuid) -> Option<Entity> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `session_id` and `remote_addr` are never read
[INFO] [stdout]  --> src/utils.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConnectionInfo {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 6 |     pub session_id: Uuid,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 7 |     pub remote_addr: RemoteAddr,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ConnectionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/utils.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct RemoteAddr(SocketAddr);
[INFO] [stdout]    |            ---------- ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `RemoteAddr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_session_id`, and `get_remote_addr` are never used
[INFO] [stdout]   --> src/utils.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ConnectionInfo {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(session_id: Uuid, remote_addr: SocketAddr) -> ConnectionInfo {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn get_session_id(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_remote_addr(&self) -> &SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.34s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "d4e0c3fb5b0905821fe7f61bbb4fbc108b9c45cc945d609ddfdd8b109b3bd84a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4e0c3fb5b0905821fe7f61bbb4fbc108b9c45cc945d609ddfdd8b109b3bd84a", kill_on_drop: false }`
[INFO] [stdout] d4e0c3fb5b0905821fe7f61bbb4fbc108b9c45cc945d609ddfdd8b109b3bd84a
