[INFO] cloning repository https://github.com/oliverwstein/pokemon-adventure
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oliverwstein/pokemon-adventure" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliverwstein%2Fpokemon-adventure", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliverwstein%2Fpokemon-adventure'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5fd5a83c28e71d36c583769b275195a58cb906cf
[INFO] checking oliverwstein/pokemon-adventure against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliverwstein%2Fpokemon-adventure" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oliverwstein/pokemon-adventure
[INFO] finished tweaking git repo https://github.com/oliverwstein/pokemon-adventure
[INFO] tweaked toml for git repo https://github.com/oliverwstein/pokemon-adventure written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oliverwstein/pokemon-adventure on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oliverwstein/pokemon-adventure 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6796fcc5a87f6090f56335b34af879b404f84852c147320c59a40bb267805622
[INFO] running `Command { std: "docker" "start" "-a" "6796fcc5a87f6090f56335b34af879b404f84852c147320c59a40bb267805622", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6796fcc5a87f6090f56335b34af879b404f84852c147320c59a40bb267805622", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6796fcc5a87f6090f56335b34af879b404f84852c147320c59a40bb267805622", kill_on_drop: false }`
[INFO] [stdout] 6796fcc5a87f6090f56335b34af879b404f84852c147320c59a40bb267805622
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d48b996686ef7d3ca713d2f17c5a1a9f38cb6ffdf6e16e0830e29d9db74e9ce2
[INFO] running `Command { std: "docker" "start" "-a" "d48b996686ef7d3ca713d2f17c5a1a9f38cb6ffdf6e16e0830e29d9db74e9ce2", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking pokemon-adventure v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::species::Species`
[INFO] [stdout]  --> src/battle/turn_orchestrator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::species::Species;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2102:16
[INFO] [stdout]      |
[INFO] [stdout] 2102 |             if (type_adv_multiplier > 0.1) {
[INFO] [stdout]      |                ^                         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2102 -             if (type_adv_multiplier > 0.1) {
[INFO] [stdout] 2102 +             if type_adv_multiplier > 0.1 {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::species::Species`
[INFO] [stdout]  --> src/battle/turn_orchestrator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::species::Species;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2102:16
[INFO] [stdout]      |
[INFO] [stdout] 2102 |             if (type_adv_multiplier > 0.1) {
[INFO] [stdout]      |                ^                         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2102 -             if (type_adv_multiplier > 0.1) {
[INFO] [stdout] 2102 +             if type_adv_multiplier > 0.1 {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameState`
[INFO] [stdout]  --> src/battle/tests/test_critical_hits.rs:3:58
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::battle::state::{BattleEvent, BattleState, GameState, TurnRng};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlayerAction`
[INFO] [stdout]  --> src/battle/tests/test_critical_hits.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::player::{BattlePlayer, PlayerAction};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::battle::turn_orchestrator::execute_end_turn_phase`
[INFO] [stdout]  --> src/battle/tests/test_end_of_turn.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::battle::turn_orchestrator::execute_end_turn_phase;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/battle/tests/test_status_moves.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatType`
[INFO] [stdout]  --> src/battle/tests/test_damage_effects.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::player::{BattlePlayer, StatType};
[INFO] [stdout]   |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GameState`
[INFO] [stdout]  --> src/battle/tests/test_special_moves.rs:3:58
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::battle::state::{BattleEvent, BattleState, GameState, TurnRng};
[INFO] [stdout]   |                                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/battle/tests/test_special_moves.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collect_player_actions`
[INFO] [stdout]  --> src/battle/tests/test_nightmare.rs:4:44
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::battle::turn_orchestrator::{collect_player_actions, resolve_turn};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::battle::state::EventBus`
[INFO] [stdout]  --> src/battle/tests/test_team_condition_expiry.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::battle::state::EventBus;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `execute_end_turn_phase`
[INFO] [stdout]  --> src/battle/tests/test_team_condition_expiry.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::battle::turn_orchestrator::{execute_end_turn_phase, resolve_turn};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `defender`
[INFO] [stdout]    --> src/battle/stats.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     defender: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_defender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_condition`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:1586:51
[INFO] [stdout]      |
[INFO] [stdout] 1586 |             crate::move_data::MoveEffect::Rampage(end_condition) => {
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_changed`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2643:33
[INFO] [stdout]      |
[INFO] [stdout] 2643 |             let (status_damage, status_changed) = pokemon.deal_status_damage();
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_changed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2632:5
[INFO] [stdout]      |
[INFO] [stdout] 2632 |     rng: &mut TurnRng,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_hp`
[INFO] [stdout]    --> src/pokemon.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |         curr_hp: Option<u16>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameState` is never used
[INFO] [stdout]  --> src/battle/state.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum GameState {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BattleEvent` is never used
[INFO] [stdout]   --> src/battle/state.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum BattleEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActionFailureReason` is never used
[INFO] [stdout]    --> src/battle/state.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum ActionFailureReason {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventBus` is never constructed
[INFO] [stdout]    --> src/battle/state.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct EventBus {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `events`, and `clear` are never used
[INFO] [stdout]    --> src/battle/state.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl EventBus {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 161 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn push(&mut self, event: BattleEvent) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn events(&self) -> &[BattleEvent] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TurnRng` is never constructed
[INFO] [stdout]    --> src/battle/state.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct TurnRng {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_for_test`, `new_random`, `next_outcome`, and `peek_outcome` are never used
[INFO] [stdout]    --> src/battle/state.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl TurnRng {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 185 |     pub fn new_for_test(outcomes: Vec<u8>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn new_random() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn next_outcome(&mut self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn peek_outcome(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BattleState` is never constructed
[INFO] [stdout]    --> src/battle/state.rs:215:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct BattleState {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/battle/state.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl BattleState {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 224 |     pub fn new(id: String, player1: BattlePlayer, player2: BattlePlayer) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `effective_attack` is never used
[INFO] [stdout]  --> src/battle/stats.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn effective_attack(pokemon: &PokemonInst, player: &BattlePlayer, move_: Move) -> u16 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `effective_defense` is never used
[INFO] [stdout]   --> src/battle/stats.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn effective_defense(pokemon: &PokemonInst, player: &BattlePlayer, move_: Move) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `effective_speed` is never used
[INFO] [stdout]    --> src/battle/stats.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn effective_speed(pokemon: &PokemonInst, player: &BattlePlayer) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_is_critical_hit` is never used
[INFO] [stdout]    --> src/battle/stats.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn move_is_critical_hit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_hits` is never used
[INFO] [stdout]    --> src/battle/stats.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub fn move_hits(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_accuracy_stage_multiplier` is never used
[INFO] [stdout]    --> src/battle/stats.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn apply_accuracy_stage_multiplier(stage: i8) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_stat_stage_multiplier` is never used
[INFO] [stdout]    --> src/battle/stats.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn apply_stat_stage_multiplier(base_stat: u16, stage: i8) -> u16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_type_effectiveness` is never used
[INFO] [stdout]    --> src/battle/stats.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub fn get_type_effectiveness(attack_type: PokemonType, defense_types: &[PokemonType]) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_attack_damage` is never used
[INFO] [stdout]    --> src/battle/stats.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn calculate_attack_damage(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_special_attack_damage` is never used
[INFO] [stdout]    --> src/battle/stats.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub fn calculate_special_attack_damage(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BattleAction` is never used
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum BattleAction {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActionStack` is never constructed
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct ActionStack {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_back`, `push_front`, `pop_front`, and `is_empty` are never used
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActionStack {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn push_back(&mut self, action: BattleAction) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn push_front(&mut self, action: BattleAction) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn pop_front(&mut self) -> Option<BattleAction> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_forced_action` is never used
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn check_for_forced_action(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_player_actions` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn collect_player_actions(battle_state: &mut BattleState) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_deterministic_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn generate_deterministic_action(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_replacement_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn generate_replacement_action(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_player_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub fn set_player_action(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ready_for_turn_resolution` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn ready_for_turn_resolution(battle_state: &BattleState) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_turn` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn resolve_turn(battle_state: &mut BattleState, mut rng: TurnRng) -> EventBus {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_turn` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:319:4
[INFO] [stdout]     |
[INFO] [stdout] 319 | fn initialize_turn(battle_state: &mut BattleState, bus: &mut EventBus) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_initial_action_stack` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:327:4
[INFO] [stdout]     |
[INFO] [stdout] 327 | fn build_initial_action_stack(battle_state: &BattleState) -> ActionStack {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_player_action_to_battle_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:344:4
[INFO] [stdout]     |
[INFO] [stdout] 344 | fn convert_player_action_to_battle_action(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_battle_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:400:8
[INFO] [stdout]     |
[INFO] [stdout] 400 | pub fn execute_battle_action(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_forfeit` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:609:4
[INFO] [stdout]     |
[INFO] [stdout] 609 | fn execute_forfeit(player_index: usize, battle_state: &mut BattleState, bus: &mut EventBus) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_switch` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:624:4
[INFO] [stdout]     |
[INFO] [stdout] 624 | fn execute_switch(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_action_preventing_conditions` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:654:4
[INFO] [stdout]     |
[INFO] [stdout] 654 | fn check_action_preventing_conditions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move_effects` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:824:4
[INFO] [stdout]     |
[INFO] [stdout] 824 | fn apply_move_effects(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_on_damage_effects` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:1342:4
[INFO] [stdout]      |
[INFO] [stdout] 1342 | fn apply_on_damage_effects(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_special_move` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:1423:4
[INFO] [stdout]      |
[INFO] [stdout] 1423 | fn perform_special_move(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_attack_hit` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2028:8
[INFO] [stdout]      |
[INFO] [stdout] 2028 | pub fn execute_attack_hit(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_action_order` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2394:8
[INFO] [stdout]      |
[INFO] [stdout] 2394 | pub fn determine_action_order(battle_state: &BattleState) -> Vec<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActionPriority` is never constructed
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2431:8
[INFO] [stdout]      |
[INFO] [stdout] 2431 | struct ActionPriority {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_action_priority` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2437:4
[INFO] [stdout]      |
[INFO] [stdout] 2437 | fn calculate_action_priority(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_player_speed` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2520:4
[INFO] [stdout]      |
[INFO] [stdout] 2520 | fn get_player_speed(player_index: usize, battle_state: &BattleState) -> u16 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_condition_damage` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2530:4
[INFO] [stdout]      |
[INFO] [stdout] 2530 | fn apply_condition_damage(battle_state: &mut BattleState, bus: &mut EventBus) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_end_turn_phase` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2629:8
[INFO] [stdout]      |
[INFO] [stdout] 2629 | pub fn execute_end_turn_phase(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finalize_turn` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2683:4
[INFO] [stdout]      |
[INFO] [stdout] 2683 | fn finalize_turn(battle_state: &mut BattleState, bus: &mut EventBus) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_pending_replacements` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2712:4
[INFO] [stdout]      |
[INFO] [stdout] 2712 | fn check_for_pending_replacements(battle_state: &mut BattleState) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_non_fainted_pokemon` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2745:4
[INFO] [stdout]      |
[INFO] [stdout] 2745 | fn has_non_fainted_pokemon(player: &crate::player::BattlePlayer) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_win_conditions` is never used
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2756:4
[INFO] [stdout]      |
[INFO] [stdout] 2756 | fn check_win_conditions(battle_state: &mut BattleState, bus: &mut EventBus) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_move_data` is never used
[INFO] [stdout]    --> src/move_data.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl MoveData {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn get_move_data(move_: Move, move_map: &HashMap<Move, MoveData>) -> Option<&MoveData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PlayerAction` is never used
[INFO] [stdout]  --> src/player.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum PlayerAction {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/player.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl BattlePlayer {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn active_pokemon(&self) -> Option<&PokemonInst> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn active_pokemon_mut(&mut self) -> Option<&mut PokemonInst> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn has_condition(&self, condition: &PokemonCondition) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn add_condition(&mut self, condition: PokemonCondition) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn remove_condition(&mut self, condition: &PokemonCondition) -> Option<PokemonCondition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn get_condition(&self, condition: &PokemonCondition) -> Option<&PokemonCondition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn get_condition_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn has_team_condition(&self, condition: &TeamCondition) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn add_team_condition(&mut self, condition: TeamCondition, turns_remaining: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn remove_team_condition(&mut self, condition: &TeamCondition) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn get_team_condition_turns(&self, condition: &TeamCondition) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn tick_team_conditions(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn has_stat_stage(&self, stat: StatType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn tick_active_conditions(&mut self) -> Vec<PokemonCondition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn get_ante(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn add_ante(&mut self, amount: u32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `type_effectiveness` is never used
[INFO] [stdout]    --> src/pokemon.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl PokemonType {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn type_effectiveness(attacking: PokemonType, defending: PokemonType) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UseMoveError` is never used
[INFO] [stdout]    --> src/pokemon.rs:328:10
[INFO] [stdout]     |
[INFO] [stdout] 328 | pub enum UseMoveError {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `learns_at_level` and `can_learn_move` are never used
[INFO] [stdout]    --> src/pokemon.rs:413:12
[INFO] [stdout]     |
[INFO] [stdout] 412 | impl Learnset {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 413 |     pub fn learns_at_level(&self, level: u8) -> Option<&Vec<Move>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn can_learn_move(&self, move_: Move) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load_by_name` is never used
[INFO] [stdout]    --> src/pokemon.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 433 | impl PokemonSpecies {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn load_by_name(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `max_pp`, `use_move`, and `restore_pp` are never used
[INFO] [stdout]    --> src/pokemon.rs:589:12
[INFO] [stdout]     |
[INFO] [stdout] 580 | impl MoveInstance {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn max_pp(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub fn use_move(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 604 |     pub fn restore_pp(&mut self, amount: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/pokemon.rs:671:12
[INFO] [stdout]     |
[INFO] [stdout] 610 | impl PokemonInst {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub fn new_for_test(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 747 |     pub fn use_move(&mut self, move_to_use: Move) -> Result<(), UseMoveError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 763 |     pub fn get_species_data(&self) -> Option<PokemonSpecies> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 768 |     pub fn get_current_types(&self, player: &crate::player::BattlePlayer) -> Vec<PokemonType> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn is_fainted(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 802 |     pub fn current_hp(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 812 |     pub fn set_hp(&mut self, hp: u16) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 823 |     pub fn restore_fully(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn take_damage(&mut self, damage: u16) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |     pub fn heal(&mut self, heal_amount: u16) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 850 |     pub fn revive(&mut self, hp_amount: u16) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 861 |     pub fn update_status_progress(&mut self) -> (bool, bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 893 |     pub fn deal_status_damage(&mut self) -> (u16, bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `defender`
[INFO] [stdout]    --> src/battle/stats.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     defender: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_defender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacker`
[INFO] [stdout]    --> src/battle/stats.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     attacker: &PokemonInst,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_condition`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:1586:51
[INFO] [stdout]      |
[INFO] [stdout] 1586 |             crate::move_data::MoveEffect::Rampage(end_condition) => {
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_condition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_changed`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2643:33
[INFO] [stdout]      |
[INFO] [stdout] 2643 |             let (status_damage, status_changed) = pokemon.deal_status_damage();
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_changed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]     --> src/battle/turn_orchestrator.rs:2632:5
[INFO] [stdout]      |
[INFO] [stdout] 2632 |     rng: &mut TurnRng,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_fainting.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let mut player1 = BattlePlayer {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_fainting.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let mut player1 = BattlePlayer {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_changed`
[INFO] [stdout]    --> src/battle/tests/test_end_of_turn.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let (damage, status_changed) = pokemon.deal_status_damage();
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_changed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_status_moves.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pokemon1 = create_test_pokemon(Species::Metapod, vec![Move::Harden, Move::Tackle]);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_attacker_hp`
[INFO] [stdout]    --> src/battle/tests/test_damage_effects.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let initial_attacker_hp = attacker.current_hp();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_attacker_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_attacker_hp`
[INFO] [stdout]    --> src/battle/tests/test_damage_effects.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let final_attacker_hp = attacker_in_battle.current_hp();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_attacker_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_healing`
[INFO] [stdout]    --> src/battle/tests/test_damage_effects.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let expected_healing = damage_dealt / 2; // Mega Drain has 50% drain
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_healing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_p2_hp`
[INFO] [stdout]    --> src/battle/tests/test_condition_damage.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let initial_p2_hp = player2.active_pokemon().unwrap().current_hp();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_p2_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus`
[INFO] [stdout]   --> src/battle/tests/test_special_moves.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let event_bus = resolve_turn(&mut battle_state, test_rng);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus2`
[INFO] [stdout]   --> src/battle/tests/test_special_moves.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let event_bus2 = resolve_turn(&mut battle_state, test_rng2);
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let event_bus = resolve_turn(&mut battle_state, test_rng);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let event_bus = resolve_turn(&mut battle_state, test_rng);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let event_bus = resolve_turn(&mut battle_state, test_rng);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_hp_p1`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 |         let initial_hp_p1 = battle_state.players[0]
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_hp_p1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_hp_p2`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let initial_hp_p2 = battle_state.players[1]
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_hp_p2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_hp_p2`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let final_hp_p2 = battle_state.players[1]
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_hp_p2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_hp`
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let initial_hp = battle_state.players[1]
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_special_moves.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |         let mut battle_state = BattleState::new("test_battle".to_string(), player1, player2);
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_hp_p2`
[INFO] [stdout]     --> src/battle/tests/test_special_moves.rs:1214:13
[INFO] [stdout]      |
[INFO] [stdout] 1214 |         let initial_hp_p2 = battle_state.players[1]
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_hp_p2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `heal_events`
[INFO] [stdout]    --> src/battle/tests/test_heal.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let heal_events: Vec<_> = event_bus
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_heal_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_hp`
[INFO] [stdout]    --> src/battle/tests/test_reckless.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let final_hp = battle_state.players[0]
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_hp`
[INFO] [stdout]    --> src/battle/tests/test_reckless.rs:441:13
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let final_hp = battle_state.players[0]
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/battle/tests/test_team_condition_expiry.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut player1 = BattlePlayer::new(
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_team_condition_expiry.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut player1 = BattlePlayer::new(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/battle/tests/test_team_condition_expiry.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut player1 = BattlePlayer::new(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_bus1`
[INFO] [stdout]    --> src/battle/tests/test_mist.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let event_bus1 = resolve_turn(&mut battle_state, test_rng1);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_bus1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_hp`
[INFO] [stdout]    --> src/pokemon.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |         curr_hp: Option<u16>,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_hp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/battle/state.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl EventBus {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_random` and `peek_outcome` are never used
[INFO] [stdout]    --> src/battle/state.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl TurnRng {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn new_random() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn peek_outcome(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UseItem` is never constructed
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum BattleAction {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     UseItem {
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BattleAction` 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: method `is_empty` is never used
[INFO] [stdout]   --> src/battle/turn_orchestrator.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActionStack {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_player_action` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub fn set_player_action(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ready_for_turn_resolution` is never used
[INFO] [stdout]    --> src/battle/turn_orchestrator.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn ready_for_turn_resolution(battle_state: &BattleState) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `get_move_data` is never used
[INFO] [stdout]    --> src/move_data.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl MoveData {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn get_move_data(move_: Move, move_map: &HashMap<Move, MoveData>) -> Option<&MoveData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_condition_mut`, `remove_team_condition`, and `has_stat_stage` are never used
[INFO] [stdout]    --> src/player.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl BattlePlayer {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn get_condition_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn remove_team_condition(&mut self, condition: &TeamCondition) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn has_stat_stage(&self, stat: StatType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `learns_at_level` and `can_learn_move` are never used
[INFO] [stdout]    --> src/pokemon.rs:413:12
[INFO] [stdout]     |
[INFO] [stdout] 412 | impl Learnset {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 413 |     pub fn learns_at_level(&self, level: u8) -> Option<&Vec<Move>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn can_learn_move(&self, move_: Move) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load_by_name` is never used
[INFO] [stdout]    --> src/pokemon.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 433 | impl PokemonSpecies {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn load_by_name(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `max_pp` and `restore_pp` are never used
[INFO] [stdout]    --> src/pokemon.rs:589:12
[INFO] [stdout]     |
[INFO] [stdout] 580 | impl MoveInstance {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn max_pp(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 604 |     pub fn restore_pp(&mut self, amount: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `restore_fully` is never used
[INFO] [stdout]    --> src/pokemon.rs:823:12
[INFO] [stdout]     |
[INFO] [stdout] 610 | impl PokemonInst {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 823 |     pub fn restore_fully(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.69s
[INFO] running `Command { std: "docker" "inspect" "d48b996686ef7d3ca713d2f17c5a1a9f38cb6ffdf6e16e0830e29d9db74e9ce2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d48b996686ef7d3ca713d2f17c5a1a9f38cb6ffdf6e16e0830e29d9db74e9ce2", kill_on_drop: false }`
[INFO] [stdout] d48b996686ef7d3ca713d2f17c5a1a9f38cb6ffdf6e16e0830e29d9db74e9ce2
