[INFO] cloning repository https://github.com/fabiandarga/rusty-dungeon
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fabiandarga/rusty-dungeon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffabiandarga%2Frusty-dungeon", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffabiandarga%2Frusty-dungeon'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 97c296ba04aa9f8acc392cd02b6e84f5f2771851
[INFO] checking fabiandarga/rusty-dungeon against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffabiandarga%2Frusty-dungeon" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fabiandarga/rusty-dungeon
[INFO] finished tweaking git repo https://github.com/fabiandarga/rusty-dungeon
[INFO] tweaked toml for git repo https://github.com/fabiandarga/rusty-dungeon written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fabiandarga/rusty-dungeon on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fabiandarga/rusty-dungeon 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" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.21.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.8.0
[INFO] [stderr]   Downloaded strum_macros v0.21.1
[INFO] [stderr]   Downloaded tui v0.16.0
[INFO] [stderr]   Downloaded crossterm v0.20.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0
[INFO] running `Command { std: "docker" "start" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0", 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" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0", 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" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling serde_derive v1.0.127
[INFO] [stderr]    Compiling serde v1.0.127
[INFO] [stderr]    Compiling signal-hook v0.3.9
[INFO] [stderr]     Checking smallvec v1.6.1
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]     Checking instant v0.1.10
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]     Checking lock_api v0.4.4
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.66
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking strum v0.21.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking getrandom v0.2.3
[INFO] [stderr]     Checking parking_lot_core v0.8.3
[INFO] [stderr]     Checking mio v0.7.13
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.1
[INFO] [stderr]     Checking rand v0.8.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.26
[INFO] [stderr]    Compiling strum_macros v0.21.1
[INFO] [stderr]     Checking thiserror v1.0.26
[INFO] [stderr]     Checking crossterm v0.20.0
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking tui v0.16.0
[INFO] [stderr]     Checking rusty-dungeon v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `basic_melee_fighter::*`
[INFO] [stdout]  --> src/entities/enemies/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use basic_melee_fighter::*;
[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: `basic_melee_fighter::*`
[INFO] [stdout]  --> src/entities/enemies/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use basic_melee_fighter::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `template` is never read
[INFO] [stdout]  --> src/models/enemy.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub template: String,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Enemy` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/models/enemy.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Enemy {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 20 |     pub fn new(id: u16, name: &str) -> Enemy {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Actor` is never used
[INFO] [stdout]  --> src/models/actor.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Actor {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_damage` is never used
[INFO] [stdout]   --> src/models/actor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ActorValues {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 25 |     pub fn apply_damage(&mut self, dmg: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text` and `enemies` are never read
[INFO] [stdout]  --> src/models/encounter.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Encounter {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 6 |     pub id: u16,
[INFO] [stdout] 7 |     pub text: String,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub enemies: Vec<EnemyDeclaration>
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Encounter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/models/encounter.rs:18:29
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct EnemyDeclaration(u16, EnemyAmount);
[INFO] [stdout]    |            ---------------- ^^^  ^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `EnemyDeclaration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/models/encounter.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Amount(u8),
[INFO] [stdout]    |     ------ ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnemyAmount` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Amount(u8),
[INFO] [stdout] 22 +     Amount(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/models/encounter.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Range(u8, u8),
[INFO] [stdout]    |     ----- ^^  ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnemyAmount` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Range(u8, u8),
[INFO] [stdout] 23 +     Range((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AttackFunction` is never used
[INFO] [stdout]  --> src/models/attack_methods.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type AttackFunction = dyn Fn(&mut ActorValues, &mut ActorValues) -> BattleEvent;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Skill` is never constructed
[INFO] [stdout]    --> src/models/models.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum BadResultType {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 141 |     Damage,
[INFO] [stdout] 142 |     Skill,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BadResultType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `special_effect` is never read
[INFO] [stdout]  --> src/models/attack_options.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AttackDescription {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub special_effect: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AttackDescription` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `target`, and `effect` are never read
[INFO] [stdout]   --> src/models/battle_events.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct BattleEvent {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     pub title: String,
[INFO] [stdout] 15 |     pub source: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 16 |     pub target: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub effect: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BattleEvent` 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: fields `encounters` and `enemies` are never read
[INFO] [stdout]   --> src/data/game_data.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct GameData {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     encounters: Vec<Rc<Encounter>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     enemies: Vec<Rc<Enemy>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_enemy_by_id` and `find_encounter_by_id` are never used
[INFO] [stdout]   --> src/data/game_data.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GameData {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn find_enemy_by_id(&self, enemy_id: u16) -> Result<Rc<Enemy>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn find_encounter_by_id(&self, encounter_id: u16) -> Result<Rc<Encounter>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `battle_handler` is never read
[INFO] [stdout]   --> src/game_handler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct GameHandler {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     battle_handler: Arc<Mutex<BattleHandler>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_battle_handler` is never used
[INFO] [stdout]   --> src/game_handler.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl GameHandler {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_battle_handler(&self) -> Arc<Mutex<BattleHandler>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `actors`, `sorted_actors`, and `current_actor_index` are never read
[INFO] [stdout]   --> src/battle_handler.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BattleHandler {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout]  8 |     actors: Vec<Arc<Mutex<ActorValues>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  9 |     sorted_actors: Vec<Arc<Mutex<ActorValues>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     current_actor_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_enemy`, `add_player`, `calc_initiative`, `get_actor_values_by_order`, `get_current_actor`, and `increase_actor_index` are never used
[INFO] [stdout]   --> src/battle_handler.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl BattleHandler {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn add_enemy(mut self, enemy: &Enemy) -> BattleHandler {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn add_player(mut self, player: &Character) -> BattleHandler {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn calc_initiative(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn get_actor_values_by_order(&self) -> Vec<Arc<Mutex<ActorValues>>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn get_current_actor(&self) -> Option<Arc<Mutex<ActorValues>>>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn increase_actor_index(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/views/components/message_block.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MessageBlock<'a> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     title: Text<'a>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageBlock` 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 `battle_handler` is never read
[INFO] [stdout]   --> src/views/dungeon/battle_view.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct BattleView {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     battle_handler: BattleHandler,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BasicMeleeFighter` is never constructed
[INFO] [stdout]  --> src/entities/enemies/basic_melee_fighter.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct BasicMeleeFighter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `melee_attack` is never used
[INFO] [stdout]   --> src/entities/enemies/basic_melee_fighter.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn melee_attack(user: &mut ActorValues, target: &mut ActorValues) -> BattleEvent {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `selectAttack` should have a snake case name
[INFO] [stdout]  --> src/models/actor.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn selectAttack(&self) -> Box<AttackFunction>;
[INFO] [stdout]   |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `select_attack`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn build_result_widget(&self, last_rewards: &Vec<Reward>) -> Paragraph {
[INFO] [stdout]     |                            ^^^^^ the lifetime is elided here     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn build_result_widget(&self, last_rewards: &Vec<Reward>) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:137:29
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn build_failure_widget(&self, last_bad_results: &Vec<BadResult>) -> Paragraph {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn build_failure_widget(&self, last_bad_results: &Vec<BadResult>) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn build_confirm_widget(&self) -> Paragraph {
[INFO] [stdout]     |                             ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn build_confirm_widget(&self) -> Paragraph<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_title(&self, title: &str) -> Paragraph {
[INFO] [stdout]     |                    ^^^^^                  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_title(&self, title: &str) -> Paragraph<'_> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn build_body(&self, text: &str) -> Paragraph {
[INFO] [stdout]     |                   ^^^^^                 ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn build_body(&self, text: &str) -> Paragraph<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:198:28
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn build_choice_widget(&self, choices: &[Choice]) -> Paragraph {
[INFO] [stdout]     |                            ^^^^^                         ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn build_choice_widget(&self, choices: &[Choice]) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn build_block(&self) -> Block {
[INFO] [stdout]     |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/menu_view.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn build_block(&self) -> Block {
[INFO] [stdout]    |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn build_overview(&self, xp: u16, hp: u16, hp_max: u16) -> Paragraph {
[INFO] [stdout]    |                       ^^^^^ the lifetime is elided here        ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn build_overview(&self, xp: u16, hp: u16, hp_max: u16) -> Paragraph<'_> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:58:28
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn build_skill_section(&self, skill_list: &[Rc<Skill>]) -> Paragraph {
[INFO] [stdout]    |                            ^^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn build_skill_section(&self, skill_list: &[Rc<Skill>]) -> Paragraph<'_> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:76:20
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn build_block(&self) -> Block {
[INFO] [stdout]    |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/items_view.rs:94:24
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build_item_list(&self, item_list: &Vec<Rc<Item>>) -> List {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here    ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build_item_list(&self, item_list: &Vec<Rc<Item>>) -> List<'_> {
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn build_item_detail(&self,  item_list: &Vec<Rc<Item>>) -> Table {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn build_item_detail(&self,  item_list: &Vec<Rc<Item>>) -> Table<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn build_equipped_items(&self, item_list: &Vec<Rc<Item>>) -> Table {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here    ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn build_equipped_items(&self, item_list: &Vec<Rc<Item>>) -> Table<'_> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:183:23
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_item_row(&self, item: &Item) -> Row {
[INFO] [stdout]     |                       ^^^^^                  ^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_item_row(&self, item: &Item) -> Row<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:110:21
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn render_image(&self) -> Paragraph {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn render_image(&self) -> Paragraph<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:139:26
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn build_battle_menu(&self) -> List {
[INFO] [stdout]     |                          ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn build_battle_menu(&self) -> List<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:148:29
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn build_battle_options(&self, options: &Vec<AttackOption>) -> (Paragraph, Paragraph, Paragraph, Paragraph) {
[INFO] [stdout]     |                             ^^^^^                                   ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |                                       |          |          |
[INFO] [stdout]     |                             |                                       |          |          the same lifetime is hidden here
[INFO] [stdout]     |                             |                                       |          the same lifetime is hidden here
[INFO] [stdout]     |                             the lifetime is elided here             the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn build_battle_options(&self, options: &Vec<AttackOption>) -> (Paragraph<'_>, Paragraph<'_>, Paragraph<'_>, Paragraph<'_>) {
[INFO] [stdout]     |                                                                              ++++           ++++           ++++           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn build_battle_tile(&self, key: &str, option: &AttackOption) -> Paragraph {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here           ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn build_battle_tile(&self, key: &str, option: &AttackOption) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/dungeon/battle/battle_history.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get_entry(&self, event: &BattleEvent) -> Spans {
[INFO] [stdout]    |                  ^^^^^                          ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get_entry(&self, event: &BattleEvent) -> Spans<'_> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/dungeon/battle/battle_history.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_text_content(&self) -> Vec<Spans> {
[INFO] [stdout]    |                         ^^^^^         ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_text_content(&self) -> Vec<Spans<'_>> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `template` is never read
[INFO] [stdout]  --> src/models/enemy.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub template: String,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Enemy` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Actor` is never used
[INFO] [stdout]  --> src/models/actor.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Actor {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_damage` is never used
[INFO] [stdout]   --> src/models/actor.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ActorValues {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 25 |     pub fn apply_damage(&mut self, dmg: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text` and `enemies` are never read
[INFO] [stdout]  --> src/models/encounter.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Encounter {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 6 |     pub id: u16,
[INFO] [stdout] 7 |     pub text: String,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub enemies: Vec<EnemyDeclaration>
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Encounter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/models/encounter.rs:18:29
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct EnemyDeclaration(u16, EnemyAmount);
[INFO] [stdout]    |            ---------------- ^^^  ^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `EnemyDeclaration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/models/encounter.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Amount(u8),
[INFO] [stdout]    |     ------ ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnemyAmount` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Amount(u8),
[INFO] [stdout] 22 +     Amount(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/models/encounter.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Range(u8, u8),
[INFO] [stdout]    |     ----- ^^  ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EnemyAmount` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Range(u8, u8),
[INFO] [stdout] 23 +     Range((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AttackFunction` is never used
[INFO] [stdout]  --> src/models/attack_methods.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type AttackFunction = dyn Fn(&mut ActorValues, &mut ActorValues) -> BattleEvent;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Skill` is never constructed
[INFO] [stdout]    --> src/models/models.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub enum BadResultType {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 141 |     Damage,
[INFO] [stdout] 142 |     Skill,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BadResultType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `special_effect` is never read
[INFO] [stdout]  --> src/models/attack_options.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AttackDescription {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub special_effect: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AttackDescription` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `target`, and `effect` are never read
[INFO] [stdout]   --> src/models/battle_events.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct BattleEvent {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     pub title: String,
[INFO] [stdout] 15 |     pub source: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 16 |     pub target: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub effect: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BattleEvent` 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: fields `encounters` and `enemies` are never read
[INFO] [stdout]   --> src/data/game_data.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct GameData {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     encounters: Vec<Rc<Encounter>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     enemies: Vec<Rc<Enemy>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_enemy_by_id` and `find_encounter_by_id` are never used
[INFO] [stdout]   --> src/data/game_data.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GameData {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn find_enemy_by_id(&self, enemy_id: u16) -> Result<Rc<Enemy>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn find_encounter_by_id(&self, encounter_id: u16) -> Result<Rc<Encounter>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `battle_handler` is never read
[INFO] [stdout]   --> src/game_handler.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct GameHandler {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     battle_handler: Arc<Mutex<BattleHandler>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_battle_handler` is never used
[INFO] [stdout]   --> src/game_handler.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl GameHandler {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_battle_handler(&self) -> Arc<Mutex<BattleHandler>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_actor_index` is never read
[INFO] [stdout]   --> src/battle_handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct BattleHandler {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     current_actor_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_current_actor` and `increase_actor_index` are never used
[INFO] [stdout]   --> src/battle_handler.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl BattleHandler {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn get_current_actor(&self) -> Option<Arc<Mutex<ActorValues>>>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn increase_actor_index(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/views/components/message_block.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MessageBlock<'a> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     title: Text<'a>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageBlock` 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 `battle_handler` is never read
[INFO] [stdout]   --> src/views/dungeon/battle_view.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct BattleView {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     battle_handler: BattleHandler,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BasicMeleeFighter` is never constructed
[INFO] [stdout]  --> src/entities/enemies/basic_melee_fighter.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct BasicMeleeFighter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `melee_attack` is never used
[INFO] [stdout]   --> src/entities/enemies/basic_melee_fighter.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn melee_attack(user: &mut ActorValues, target: &mut ActorValues) -> BattleEvent {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `selectAttack` should have a snake case name
[INFO] [stdout]  --> src/models/actor.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn selectAttack(&self) -> Box<AttackFunction>;
[INFO] [stdout]   |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `select_attack`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn build_result_widget(&self, last_rewards: &Vec<Reward>) -> Paragraph {
[INFO] [stdout]     |                            ^^^^^ the lifetime is elided here     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn build_result_widget(&self, last_rewards: &Vec<Reward>) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:137:29
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn build_failure_widget(&self, last_bad_results: &Vec<BadResult>) -> Paragraph {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here            ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn build_failure_widget(&self, last_bad_results: &Vec<BadResult>) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn build_confirm_widget(&self) -> Paragraph {
[INFO] [stdout]     |                             ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn build_confirm_widget(&self) -> Paragraph<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_title(&self, title: &str) -> Paragraph {
[INFO] [stdout]     |                    ^^^^^                  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_title(&self, title: &str) -> Paragraph<'_> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:191:19
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn build_body(&self, text: &str) -> Paragraph {
[INFO] [stdout]     |                   ^^^^^                 ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn build_body(&self, text: &str) -> Paragraph<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:198:28
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn build_choice_widget(&self, choices: &[Choice]) -> Paragraph {
[INFO] [stdout]     |                            ^^^^^                         ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn build_choice_widget(&self, choices: &[Choice]) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon_view.rs:224:20
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn build_block(&self) -> Block {
[INFO] [stdout]     |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]     |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/menu_view.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn build_block(&self) -> Block {
[INFO] [stdout]    |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn build_overview(&self, xp: u16, hp: u16, hp_max: u16) -> Paragraph {
[INFO] [stdout]    |                       ^^^^^ the lifetime is elided here        ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn build_overview(&self, xp: u16, hp: u16, hp_max: u16) -> Paragraph<'_> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:58:28
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn build_skill_section(&self, skill_list: &[Rc<Skill>]) -> Paragraph {
[INFO] [stdout]    |                            ^^^^^ the lifetime is elided here   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn build_skill_section(&self, skill_list: &[Rc<Skill>]) -> Paragraph<'_> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/character_view.rs:76:20
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn build_block(&self) -> Block {
[INFO] [stdout]    |                    ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn build_block(&self) -> Block<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/items_view.rs:94:24
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build_item_list(&self, item_list: &Vec<Rc<Item>>) -> List {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here    ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build_item_list(&self, item_list: &Vec<Rc<Item>>) -> List<'_> {
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn build_item_detail(&self,  item_list: &Vec<Rc<Item>>) -> Table {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn build_item_detail(&self,  item_list: &Vec<Rc<Item>>) -> Table<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn build_equipped_items(&self, item_list: &Vec<Rc<Item>>) -> Table {
[INFO] [stdout]     |                             ^^^^^ the lifetime is elided here    ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn build_equipped_items(&self, item_list: &Vec<Rc<Item>>) -> Table<'_> {
[INFO] [stdout]     |                                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/items_view.rs:183:23
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_item_row(&self, item: &Item) -> Row {
[INFO] [stdout]     |                       ^^^^^                  ^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn build_item_row(&self, item: &Item) -> Row<'_> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:110:21
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn render_image(&self) -> Paragraph {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn render_image(&self) -> Paragraph<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:139:26
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn build_battle_menu(&self) -> List {
[INFO] [stdout]     |                          ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn build_battle_menu(&self) -> List<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:148:29
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn build_battle_options(&self, options: &Vec<AttackOption>) -> (Paragraph, Paragraph, Paragraph, Paragraph) {
[INFO] [stdout]     |                             ^^^^^                                   ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |                                       |          |          |
[INFO] [stdout]     |                             |                                       |          |          the same lifetime is hidden here
[INFO] [stdout]     |                             |                                       |          the same lifetime is hidden here
[INFO] [stdout]     |                             the lifetime is elided here             the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn build_battle_options(&self, options: &Vec<AttackOption>) -> (Paragraph<'_>, Paragraph<'_>, Paragraph<'_>, Paragraph<'_>) {
[INFO] [stdout]     |                                                                              ++++           ++++           ++++           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/views/dungeon/battle_view.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn build_battle_tile(&self, key: &str, option: &AttackOption) -> Paragraph {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here           ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn build_battle_tile(&self, key: &str, option: &AttackOption) -> Paragraph<'_> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/dungeon/battle/battle_history.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get_entry(&self, event: &BattleEvent) -> Spans {
[INFO] [stdout]    |                  ^^^^^                          ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get_entry(&self, event: &BattleEvent) -> Spans<'_> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/views/dungeon/battle/battle_history.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_text_content(&self) -> Vec<Spans> {
[INFO] [stdout]    |                         ^^^^^         ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_text_content(&self) -> Vec<Spans<'_>> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.51s
[INFO] running `Command { std: "docker" "inspect" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0", kill_on_drop: false }`
[INFO] [stdout] 4999123eb981b3b4b0bf533c551b40cd0d86bf4208dcc576a024a6b69c6263c0
