[INFO] cloning repository https://github.com/satyapalsharma/dungeon-crawler-rpg-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/satyapalsharma/dungeon-crawler-rpg-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatyapalsharma%2Fdungeon-crawler-rpg-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatyapalsharma%2Fdungeon-crawler-rpg-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1ad0c0af052b083021c3d9062b1f467a5e4d676b
[INFO] checking satyapalsharma/dungeon-crawler-rpg-engine against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatyapalsharma%2Fdungeon-crawler-rpg-engine" "/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/satyapalsharma/dungeon-crawler-rpg-engine
[INFO] finished tweaking git repo https://github.com/satyapalsharma/dungeon-crawler-rpg-engine
[INFO] tweaked toml for git repo https://github.com/satyapalsharma/dungeon-crawler-rpg-engine written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/satyapalsharma/dungeon-crawler-rpg-engine on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/satyapalsharma/dungeon-crawler-rpg-engine 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4
[INFO] running `Command { std: "docker" "start" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking uuid v1.24.1
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking app v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find type `QuestType` in module `crate::types::quest`
[INFO] [stdout]    --> src/game/game_manager.rs:190:105
[INFO] [stdout]     |
[INFO] [stdout] 190 | ... String, quest_type: crate::types::quest::QuestType, required_level: u32) -> crate::types::quest::Quest {
[INFO] [stdout]     |                                              ^^^^^^^^^ not found in `crate::types::quest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::character::Character`
[INFO] [stdout]  --> src/types/combat.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::types::character::Character;
[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::error::GameResult`
[INFO] [stdout]  --> src/models/item.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::GameResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/storage/sqlite.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `QuestType` in module `crate::types::quest`
[INFO] [stdout]    --> src/game/game_manager.rs:190:105
[INFO] [stdout]     |
[INFO] [stdout] 190 | ... String, quest_type: crate::types::quest::QuestType, required_level: u32) -> crate::types::quest::Quest {
[INFO] [stdout]     |                                              ^^^^^^^^^ not found in `crate::types::quest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::character::Character`
[INFO] [stdout]  --> src/types/combat.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::types::character::Character;
[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::error::GameResult`
[INFO] [stdout]  --> src/models/item.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::GameResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/storage/sqlite.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |         name: "Goblin".to_string(),
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |         name: "Skeleton".to_string(),
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |         name: "Orc".to_string(),
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 |         name: "Goblin".to_string(),
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |         name: "Skeleton".to_string(),
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const method `<str as ToString>::to_string` in constants
[INFO] [stdout]   --> src/types/monster.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |         name: "Orc".to_string(),
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: method `to_string` is not const because trait `ToString` is not const
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2943:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: this trait is not const
[INFO] [stdout]   ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/string.rs:2957:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method is not const
[INFO] [stdout]    = note: calls in constants are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `items` on type `&mut Room`
[INFO] [stdout]   --> src/game/exploration.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |         } else if room.items.iter().any(|i| !i.is_collected) {
[INFO] [stdout]    |                        ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `room_number`, `name`, `description`, `room_type` ... and 9 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `items` on type `&mut Room`
[INFO] [stdout]   --> src/game/exploration.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |         } else if room.items.iter().any(|i| !i.is_collected) {
[INFO] [stdout]    |                        ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `room_number`, `name`, `description`, `room_type` ... and 9 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/inventory.rs:28:30
[INFO] [stdout]    |
[INFO] [stdout] 28 |         Ok(InventoryResult { item_id, item_name })
[INFO] [stdout]    |                              ^^^^^^^ expected `String`, found `u32`
[INFO] [stdout]    |
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]    |
[INFO] [stdout] 28 |         Ok(InventoryResult { item_id: item_id.to_string(), item_name })
[INFO] [stdout]    |                              ++++++++        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `str`
[INFO] [stdout]    --> src/game/inventory.rs:32:65
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let index = character.inventory.iter().position(|id| id == item_id)
[INFO] [stdout]     |                                                                 ^^ no implementation for `u32 == str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: required for `&u32` to implement `PartialEq<&str>`
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/inventory.rs:28:30
[INFO] [stdout]    |
[INFO] [stdout] 28 |         Ok(InventoryResult { item_id, item_name })
[INFO] [stdout]    |                              ^^^^^^^ expected `String`, found `u32`
[INFO] [stdout]    |
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]    |
[INFO] [stdout] 28 |         Ok(InventoryResult { item_id: item_id.to_string(), item_name })
[INFO] [stdout]    |                              ++++++++        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `str`
[INFO] [stdout]    --> src/game/inventory.rs:32:65
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let index = character.inventory.iter().position(|id| id == item_id)
[INFO] [stdout]     |                                                                 ^^ no implementation for `u32 == str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: required for `&u32` to implement `PartialEq<&str>`
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/inventory.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |         character.inventory.contains(&item_id.to_string())
[INFO] [stdout]    |                             -------- ^^^^^^^^^^^^^^^^^^^^ expected `&u32`, found `&String`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&u32`
[INFO] [stdout]               found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/slice/mod.rs:2602:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/inventory.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |         character.inventory.contains(&item_id.to_string())
[INFO] [stdout]    |                             -------- ^^^^^^^^^^^^^^^^^^^^ expected `&u32`, found `&String`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&u32`
[INFO] [stdout]               found reference `&std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/slice/mod.rs:2602:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 |                 return item.stats.attack.max(0) as u32;
[INFO] [stdout]    |                             ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 return item.stats.defense.max(0) as u32;
[INFO] [stdout]    |                             ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 |                 return item.stats.attack.max(0) as u32;
[INFO] [stdout]    |                             ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 return item.stats.defense.max(0) as u32;
[INFO] [stdout]    |                             ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `str`
[INFO] [stdout]    --> src/game/inventory.rs:70:65
[INFO] [stdout]     |
[INFO] [stdout]  70 |         let index = character.inventory.iter().position(|id| id == item_id)
[INFO] [stdout]     |                                                                 ^^ no implementation for `u32 == str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: required for `&u32` to implement `PartialEq<&str>`
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `&str`
[INFO] [stdout]    --> src/game/inventory.rs:75:28
[INFO] [stdout]     |
[INFO] [stdout]  75 |             .find(|i| i.id == item_id)
[INFO] [stdout]     |                            ^^ no implementation for `u32 == &str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<&str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `str`
[INFO] [stdout]    --> src/game/inventory.rs:70:65
[INFO] [stdout]     |
[INFO] [stdout]  70 |         let index = character.inventory.iter().position(|id| id == item_id)
[INFO] [stdout]     |                                                                 ^^ no implementation for `u32 == str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: required for `&u32` to implement `PartialEq<&str>`
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u32` with `&str`
[INFO] [stdout]    --> src/game/inventory.rs:75:28
[INFO] [stdout]     |
[INFO] [stdout]  75 |             .find(|i| i.id == item_id)
[INFO] [stdout]     |                            ^^ no implementation for `u32 == &str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<&str>` is not implemented for `u32`
[INFO] [stdout] help: `u32` implements trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2174:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartialEq`
[INFO] [stdout]    ::: /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/cmp.rs:2186:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.151/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `PartialEq<serde_json::Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `impl_partial_eq_for_primitive` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Consumable` found for enum `ItemType` in the current scope
[INFO] [stdout]   --> src/game/inventory.rs:78:60
[INFO] [stdout]    |
[INFO] [stdout] 78 |         if item.item_type != crate::types::item::ItemType::Consumable {
[INFO] [stdout]    |                                                            ^^^^^^^^^^ variant, associated function, or constant not found in `ItemType`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/item.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ItemType {
[INFO] [stdout]    | ----------------- variant, associated function, or constant `Consumable` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `Consumable` found for enum `ItemType` in the current scope
[INFO] [stdout]   --> src/game/inventory.rs:78:60
[INFO] [stdout]    |
[INFO] [stdout] 78 |         if item.item_type != crate::types::item::ItemType::Consumable {
[INFO] [stdout]    |                                                            ^^^^^^^^^^ variant, associated function, or constant not found in `ItemType`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/item.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ItemType {
[INFO] [stdout]    | ----------------- variant, associated function, or constant `Consumable` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let heal_amount = item.stats.health_bonus;
[INFO] [stdout]    |                                ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `stats` on type `&types::item::Item`
[INFO] [stdout]   --> src/game/inventory.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let heal_amount = item.stats.health_bonus;
[INFO] [stdout]    |                                ^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `name`, `item_type`, `weight`, `value`, `effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/quest.rs:97:49
[INFO] [stdout]    |
[INFO] [stdout] 97 |             game_state.character.inventory.push(item_id);
[INFO] [stdout]    |                                            ---- ^^^^^^^ expected `u32`, found `String`
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/vec/mod.rs:997:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/game/quest.rs:97:49
[INFO] [stdout]    |
[INFO] [stdout] 97 |             game_state.character.inventory.push(item_id);
[INFO] [stdout]    |                                            ---- ^^^^^^^ expected `u32`, found `String`
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/alloc/src/vec/mod.rs:997:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `Room` has no field named `items`
[INFO] [stdout]   --> src/game/game_manager.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     items: Vec::new(),
[INFO] [stdout]    |                     ^^^^^ `Room` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `room_number`, `loot`, `npcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `Room` has no field named `items`
[INFO] [stdout]   --> src/game/game_manager.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     items: Vec::new(),
[INFO] [stdout]    |                     ^^^^^ `Room` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `room_number`, `loot`, `npcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/game/game_manager.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |             Ok(result)
[INFO] [stdout]     |             -- ^^^^^^ expected `ExplorationResult`, found `ExplorationOutcome`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the type constructed contains `ExplorationOutcome` due to the type of the argument passed
[INFO] [stdout]    --> src/game/game_manager.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             Ok(result)
[INFO] [stdout]     |             ^^^------^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/result.rs:562:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/game/game_manager.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |             Ok(result)
[INFO] [stdout]     |             -- ^^^^^^ expected `ExplorationResult`, found `ExplorationOutcome`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the type constructed contains `ExplorationOutcome` due to the type of the argument passed
[INFO] [stdout]    --> src/game/game_manager.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             Ok(result)
[INFO] [stdout]     |             ^^^------^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/result.rs:562:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `distribute_experience` found for struct `LevelingEngine` in the current scope
[INFO] [stdout]    --> src/game/game_manager.rs:170:63
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let leveled_up = self.leveling_engine.distribute_experience(&mut self.state.character, xp)?;
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^ method not found in `LevelingEngine`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/leveling.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct LevelingEngine;
[INFO] [stdout]     | ------------------------- method `distribute_experience` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `distribute_experience` found for struct `LevelingEngine` in the current scope
[INFO] [stdout]    --> src/game/game_manager.rs:170:63
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let leveled_up = self.leveling_engine.distribute_experience(&mut self.state.character, xp)?;
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^ method not found in `LevelingEngine`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/leveling.rs:4:1
[INFO] [stdout]     |
[INFO] [stdout]   4 | pub struct LevelingEngine;
[INFO] [stdout]     | ------------------------- method `distribute_experience` not found for this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/game/game_manager.rs:178:16
[INFO] [stdout]     |
[INFO] [stdout] 178 |             Ok(logs)
[INFO] [stdout]     |             -- ^^^^ expected `Vec<CombatLogEntry>`, found `CombatResult`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<CombatLogEntry>`
[INFO] [stdout]                found struct `CombatResult`
[INFO] [stdout] help: the type constructed contains `CombatResult` due to the type of the argument passed
[INFO] [stdout]    --> src/game/game_manager.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             Ok(logs)
[INFO] [stdout]     |             ^^^----^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/result.rs:562:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/game/game_manager.rs:178:16
[INFO] [stdout]     |
[INFO] [stdout] 178 |             Ok(logs)
[INFO] [stdout]     |             -- ^^^^ expected `Vec<CombatLogEntry>`, found `CombatResult`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<CombatLogEntry>`
[INFO] [stdout]                found struct `CombatResult`
[INFO] [stdout] help: the type constructed contains `CombatResult` due to the type of the argument passed
[INFO] [stdout]    --> src/game/game_manager.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |             Ok(logs)
[INFO] [stdout]     |             ^^^----^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/core/src/result.rs:562:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `create_quest` found for struct `QuestEngine` in the current scope
[INFO] [stdout]    --> src/game/game_manager.rs:191:39
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let quest = self.quest_engine.create_quest(title, description, quest_type, required_level);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/quest.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct QuestEngine {
[INFO] [stdout]     | ---------------------- method `create_quest` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `accept_quest` with a similar name, but with different arguments
[INFO] [stdout]    --> src/game/quest.rs:50:5
[INFO] [stdout]     |
[INFO] [stdout]  50 |     pub fn accept_quest(&mut self, game_state: &mut GameState, quest_id: i32) -> GameResult<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `create_quest` found for struct `QuestEngine` in the current scope
[INFO] [stdout]    --> src/game/game_manager.rs:191:39
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let quest = self.quest_engine.create_quest(title, description, quest_type, required_level);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/game/quest.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct QuestEngine {
[INFO] [stdout]     | ---------------------- method `create_quest` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `accept_quest` with a similar name, but with different arguments
[INFO] [stdout]    --> src/game/quest.rs:50:5
[INFO] [stdout]     |
[INFO] [stdout]  50 |     pub fn accept_quest(&mut self, game_state: &mut GameState, quest_id: i32) -> GameResult<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `abilities` in initializer of `Character`
[INFO] [stdout]    --> src/storage/sqlite.rs:127:16
[INFO] [stdout]     |
[INFO] [stdout] 127 |             Ok(Character {
[INFO] [stdout]     |                ^^^^^^^^^ missing `abilities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `abilities` in initializer of `Character`
[INFO] [stdout]    --> src/storage/sqlite.rs:127:16
[INFO] [stdout]     |
[INFO] [stdout] 127 |             Ok(Character {
[INFO] [stdout]     |                ^^^^^^^^^ missing `abilities`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `items` on type `&Room`
[INFO] [stdout]    --> src/storage/sqlite.rs:244:45
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 serde_json::to_string(&room.items)?,
[INFO] [stdout]     |                                             ^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `room_number`, `name`, `description`, `room_type` ... and 9 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `items` on type `&Room`
[INFO] [stdout]    --> src/storage/sqlite.rs:244:45
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 serde_json::to_string(&room.items)?,
[INFO] [stdout]     |                                             ^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `id`, `room_number`, `name`, `description`, `room_type` ... and 9 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `Room` has no field named `items`
[INFO] [stdout]    --> src/storage/sqlite.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 |                 items: serde_json::from_str(&row.get::<_, String>(6)?).unwrap_or_default(),
[INFO] [stdout]     |                 ^^^^^ `Room` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `room_number`, `loot`, `npcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `Room` has no field named `items`
[INFO] [stdout]    --> src/storage/sqlite.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 |                 items: serde_json::from_str(&row.get::<_, String>(6)?).unwrap_or_default(),
[INFO] [stdout]     |                 ^^^^^ `Room` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `room_number`, `loot`, `npcs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_id`
[INFO] [stdout]   --> src/game/combat.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (attacker_is_player, attacker_name, target_id, target_name) = {
[INFO] [stdout]    |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_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: `target_id`
[INFO] [stdout]   --> src/game/combat.rs:75:49
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (attacker_is_player, attacker_name, target_id, target_name) = {
[INFO] [stdout]    |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_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: `target_name`
[INFO] [stdout]   --> src/game/combat.rs:75:60
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (attacker_is_player, attacker_name, target_id, target_name) = {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_name`
[INFO] [stdout]   --> src/game/combat.rs:75:60
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (attacker_is_player, attacker_name, target_id, target_name) = {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.state` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/game/game_manager.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         self.state.get_room_mut(&self.state.current_room_id)
[INFO] [stdout]     |         ^^^^^^^^^^^------------^---------------------------^
[INFO] [stdout]     |         |          |            |
[INFO] [stdout]     |         |          |            immutable borrow occurs here
[INFO] [stdout]     |         |          immutable borrow later used by call
[INFO] [stdout]     |         mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.state` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/game/game_manager.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         self.state.get_room_mut(&self.state.current_room_id)
[INFO] [stdout]     |         ^^^^^^^^^^^------------^---------------------------^
[INFO] [stdout]     |         |          |            |
[INFO] [stdout]     |         |          |            immutable borrow occurs here
[INFO] [stdout]     |         |          immutable borrow later used by call
[INFO] [stdout]     |         mutable borrow occurs here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0015, E0063, E0277, E0308, E0425, E0502, E0560, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0015, E0063, E0277, E0308, E0425, E0502, E0560, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `app` (lib) due to 24 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `app` (lib test) due to 24 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4", kill_on_drop: false }`
[INFO] [stdout] 7131ec4f4a771d219828a51c4f386103cc1b1fdc2c03f54d344fd05dc85b64c4
