[INFO] cloning repository https://github.com/sidhantas/GameboyAdvance
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sidhantas/GameboyAdvance" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8462969fc2d014e9c870b60843a0b1bed359a02b
[INFO] checking sidhantas/GameboyAdvance against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance" "/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/sidhantas/GameboyAdvance
[INFO] finished tweaking git repo https://github.com/sidhantas/GameboyAdvance
[INFO] tweaked toml for git repo https://github.com/sidhantas/GameboyAdvance written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sidhantas/GameboyAdvance on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sidhantas/GameboyAdvance 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `gameboy_advance` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-2-tc1/source/target/.../gameboy_advance
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `gameboy-advance`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 - name = "gameboy_advance"
[INFO] [stderr] 13 + name = "gameboy-advance"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `gameboy-advance`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 ~ lto = true
[INFO] [stderr] 23 + [[bin]]
[INFO] [stderr] 24 + name = "gameboy-advance"
[INFO] [stderr] 25 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `gameboy_advance` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.3
[INFO] [stderr]   Downloaded version-compare v0.1.1
[INFO] [stderr]   Downloaded futures-macro v0.3.31
[INFO] [stderr]   Downloaded toml_datetime v0.6.8
[INFO] [stderr]   Downloaded futures-sink v0.3.31
[INFO] [stderr]   Downloaded futures-io v0.3.31
[INFO] [stderr]   Downloaded ctrlc v3.4.4
[INFO] [stderr]   Downloaded futures-core v0.3.31
[INFO] [stderr]   Downloaded futures-task v0.3.31
[INFO] [stderr]   Downloaded proc-macro-crate v3.2.0
[INFO] [stderr]   Downloaded autocfg v1.3.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded semver v1.0.23
[INFO] [stderr]   Downloaded quote v1.0.37
[INFO] [stderr]   Downloaded futures-timer v3.0.3
[INFO] [stderr]   Downloaded pin-project-lite v0.2.15
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.2
[INFO] [stderr]   Downloaded redox_syscall v0.5.3
[INFO] [stderr]   Downloaded lock_api v0.4.12
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded parking_lot_core v0.9.10
[INFO] [stderr]   Downloaded futures-executor v0.3.31
[INFO] [stderr]   Downloaded getopts v0.2.21
[INFO] [stderr]   Downloaded log v0.4.22
[INFO] [stderr]   Downloaded parking_lot v0.12.3
[INFO] [stderr]   Downloaded rstest v0.23.0
[INFO] [stderr]   Downloaded signal-hook v0.3.17
[INFO] [stderr]   Downloaded smallvec v1.13.2
[INFO] [stderr]   Downloaded unicode-ident v1.0.13
[INFO] [stderr]   Downloaded relative-path v1.9.3
[INFO] [stderr]   Downloaded futures v0.3.31
[INFO] [stderr]   Downloaded futures-channel v0.3.31
[INFO] [stderr]   Downloaded bitflags v2.6.0
[INFO] [stderr]   Downloaded rstest_macros v0.23.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.89
[INFO] [stderr]   Downloaded indexmap v2.6.0
[INFO] [stderr]   Downloaded memchr v2.7.4
[INFO] [stderr]   Downloaded crossterm v0.25.0
[INFO] [stderr]   Downloaded toml_edit v0.22.22
[INFO] [stderr]   Downloaded tui v0.19.0
[INFO] [stderr]   Downloaded mio v0.8.11
[INFO] [stderr]   Downloaded crossterm v0.27.0
[INFO] [stderr]   Downloaded hashbrown v0.15.1
[INFO] [stderr]   Downloaded futures-util v0.3.31
[INFO] [stderr]   Downloaded winnow v0.6.20
[INFO] [stderr]   Downloaded aho-corasick v1.1.3
[INFO] [stderr]   Downloaded sdl2 v0.37.0
[INFO] [stderr]   Downloaded syn v2.0.87
[INFO] [stderr]   Downloaded regex v1.11.1
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] [stderr]   Downloaded unicode-width v0.1.13
[INFO] [stderr]   Downloaded regex-syntax v0.8.5
[INFO] [stderr]   Downloaded regex-automata v0.4.8
[INFO] [stderr]   Downloaded libc v0.2.155
[INFO] [stderr]   Downloaded sdl2-sys v0.37.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491
[INFO] running `Command { std: "docker" "start" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491", 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" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491", 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" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `gameboy_advance` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../gameboy_advance
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `gameboy-advance`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 - name = "gameboy_advance"
[INFO] [stderr] 13 + name = "gameboy-advance"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `gameboy-advance`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 ~ lto = true
[INFO] [stderr] 23 + [[bin]]
[INFO] [stderr] 24 + name = "gameboy-advance"
[INFO] [stderr] 25 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `gameboy_advance` (manifest) generated 1 warning
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling hashbrown v0.15.1
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling winnow v0.6.20
[INFO] [stderr]     Checking pin-project-lite v0.2.15
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling indexmap v2.6.0
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]     Checking ctrlc v3.4.4
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling proc-macro-crate v3.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking rstest v0.23.0
[INFO] [stderr]     Checking gameboy_advance v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `iter::Enumerate`
[INFO] [stdout]  --> src/arm7tdmi/arm/data_transfer_instructions.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, iter::Enumerate, mem::size_of};
[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: `utils::print_vec`
[INFO] [stdout]   --> src/arm7tdmi/arm/data_transfer_instructions.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         utils::print_vec,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/arm7tdmi/arm/instructions.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Arguments, Write};
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InstructionMode`, `LINK_REGISTER`, `REGISTER`, `interrupts::Exceptions`, and `sign_extend`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:5:30
[INFO] [stdout]    |
[INFO] [stdout]  5 |         cpu::{FlagsRegister, InstructionMode, CPU, LINK_REGISTER},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^       ^^^^^^^^^^^^^
[INFO] [stdout]  6 |         interrupts::Exceptions,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     types::{ARMByteCode, CYCLES, REGISTER},
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 10 |     utils::bits::{sign_extend, Bits},
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WORD`
[INFO] [stdout]  --> src/arm7tdmi/arm/swap_instruction.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 |     types::{CYCLES, REGISTER, WORD},
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cpu::CPU` and `instruction_table::Instruction`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{arm7tdmi::{cpu::CPU, instruction_table::Instruction}, utils::bits::Bits};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/arm7tdmi/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `instruction_table::Instruction` and `utils::bits::Bits`
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 |     arm7tdmi::{cpsr::PSR, instruction_table::Instruction},
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     utils::bits::Bits,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]  --> src/arm7tdmi/decoder.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use instructions::ARMDecodedInstruction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::bits::Bits`
[INFO] [stdout]  --> src/arm7tdmi/interrupts.rs:1:55
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{memory::memory::GBAMemory, types::CYCLES, utils::bits::Bits};
[INFO] [stdout]   |                                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arm::alu::ArithmeticInstruction`, `sign_extend`, and `thumb`
[INFO] [stdout]   --> src/arm7tdmi/thumb/alu.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout]  5 |         arm::alu::ArithmeticInstruction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  8 |         thumb,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         bits::{sign_extend, Bits},
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Signed`
[INFO] [stdout]  --> src/arm7tdmi/thumb/data_transfer_instructions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num_traits::Signed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LINK_REGISTER` and `SignedAndHwDtInstruction`
[INFO] [stdout]   --> src/arm7tdmi/thumb/data_transfer_instructions.rs:8:67
[INFO] [stdout]    |
[INFO] [stdout]  8 |             BlockDTOpcodes, LoadOpcodes, RegisterList, SdtOpcode, SignedAndHwDtInstruction,
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         cpu::{CPU, LINK_REGISTER, PC_REGISTER, STACK_POINTER},
[INFO] [stdout]    |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/arm7tdmi/instruction_table.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::Block`
[INFO] [stdout]  --> src/arm7tdmi/instruction_table.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tui::widgets::Block;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThumbALUInstruction` and `self`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             self,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 15 |             alu::{
[INFO] [stdout] 16 |                 ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         instructions::ARMDecodedInstruction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DecodeARMInstructionToString`, `DecodeThumbInstructionToString`, `Instruction`, `condition_code_as_str`, `thumb::alu::ThumbFullAdder`, and `utils::bits::Bits`
[INFO] [stdout]   --> src/debugger/debugger.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             DecodeARMInstructionToString, DecodeThumbInstructionToString, Instruction, condition_code_as_str, instruction_to_string
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |         },
[INFO] [stdout] 33 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     utils::bits::Bits,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic::catch_unwind`
[INFO] [stdout]  --> src/debugger/terminal_debugger.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     panic::catch_unwind,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BinaryHeap`
[INFO] [stdout]  --> src/gba.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::BinaryHeap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debugger::terminal_debugger::breaker`
[INFO] [stdout]  --> src/gba.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::debugger::terminal_debugger::breaker;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PPUModes`
[INFO] [stdout]   --> src/gba.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::graphics::ppu::{PPUModes, PPU};
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rect::Rect`
[INFO] [stdout]   --> src/graphics/display.rs:12:51
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::{event::Event, pixels::PixelFormatEnum, rect::Rect, render::Texture, surface::Surface};
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dispcnt::Dispcnt`
[INFO] [stdout]  --> src/graphics/layers.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     wrappers::{bgcnt::BGCnt, dispcnt::Dispcnt},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DISPSTAT` and `VCOUNT`
[INFO] [stdout]  --> src/graphics/ppu.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::memory::io_handlers::{DISPSTAT, VCOUNT};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cmp::Reverse`, `collections::BinaryHeap`, and `fmt::Display`
[INFO] [stdout]  --> src/graphics/ppu_modes/hdraw.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Reverse, collections::BinaryHeap, fmt::Display, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HBLANK_FLAG`, `OBJMode`, and `OBJPalleteData`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:19
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{OBJPalleteData, rgb555_to_rgb24},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{HBLANK_FLAG, HDRAW, PPU, PPUModes},
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |         oam::{OBJMode, Oam},
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VBLANK_FLAG`
[INFO] [stdout]  --> src/graphics/ppu_modes/vblank.rs:1:52
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{graphics::ppu::{PPU, PPUModes, VBLANK, VBLANK_FLAG, VDRAW}, memory::memory::{CPUEvent, CPUEventType, GBAMemory}};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dispcnt::Dispcnt`
[INFO] [stdout]  --> src/graphics/wrappers/tile.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         dispcnt::Dispcnt,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GBAMemory` and `SimpleMemoryBlock`
[INFO] [stdout]   --> src/memory/io_handlers.rs:17:28
[INFO] [stdout]    |
[INFO] [stdout] 17 |     memory::{CPUEventType, GBAMemory, MemoryError},
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 18 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/memory/io_handlers.rs:826:44
[INFO] [stdout]     |
[INFO] [stdout] 826 |                 self.writeu16(offset, dbg!((value & 0xFFFF)) as u16);
[INFO] [stdout]     |                                            ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -                 self.writeu16(offset, dbg!((value & 0xFFFF)) as u16);
[INFO] [stdout] 826 +                 self.writeu16(offset, dbg!( value & 0xFFFF) as u16);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/memory/io_handlers.rs:827:48
[INFO] [stdout]     |
[INFO] [stdout] 827 |                 self.writeu16(offset + 2, dbg!((value >> 16)) as u16);
[INFO] [stdout]     |                                                ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 827 -                 self.writeu16(offset + 2, dbg!((value >> 16)) as u16);
[INFO] [stdout] 827 +                 self.writeu16(offset + 2, dbg!( value >> 16) as u16);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HBLANK_FLAG` and `io_handlers::DISPSTAT`
[INFO] [stdout]  --> src/memory/memory.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |         ppu::{HBLANK_FLAG, HDRAW, VDRAW},
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 5 |     }, memory::{io_handlers::DISPSTAT, wrappers::dma::DMAControl}, types::{BYTE, CYCLES, HWORD, WORD}
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `io_handlers::IOBlock` and `oam_memory::OAMBlock`
[INFO] [stdout]  --> src/memory/memory_block.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{io_handlers::IOBlock, oam_memory::OAMBlock};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oam::NUM_OAM_ENTRIES`
[INFO] [stdout]  --> src/memory/oam_memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     oam::NUM_OAM_ENTRIES,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::size_of`
[INFO] [stdout]  --> src/utils/bits.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     mem::size_of,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Unsigned`
[INFO] [stdout]  --> src/utils/bits.rs:6:36
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_traits::{Bounded, PrimInt, Unsigned};
[INFO] [stdout]   |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/utils/utils.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sync::{atomic::AtomicBool, Arc, Mutex},
[INFO] [stdout]   |                                ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::sys::Atom`
[INFO] [stdout]  --> src/utils/utils.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sdl2::sys::Atom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DecodeThumbInstructionToString`, `ThumbALUInstruction`, `ThumbArithmeticInstruction`, `ThumbFullAdderOperations`, `ThumbFullAdder`, `ThumbLogicalInstruction`, and `ThumbShiftInstruction`
[INFO] [stdout]  --> src/utils/instruction_to_string.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |         instruction_table::{DecodeThumbInstructionToString, Operand},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |         thumb::alu::{
[INFO] [stdout] 8 |             ThumbALUInstruction, ThumbArithmeticInstruction, ThumbFullAdder,
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 9 |             ThumbFullAdderOperations, ThumbLogicalInstruction, ThumbShiftInstruction,
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::u16`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/memory/io_handlers.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::u16;
[INFO] [stdout]   |          ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]   --> src/memory/memory.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/memory/memory_block.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem::size_of, usize};
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::Enumerate`
[INFO] [stdout]  --> src/arm7tdmi/arm/data_transfer_instructions.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, iter::Enumerate, mem::size_of};
[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: `utils::print_vec`
[INFO] [stdout]   --> src/arm7tdmi/arm/data_transfer_instructions.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |         utils::print_vec,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/arm7tdmi/arm/instructions.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Arguments, Write};
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InstructionMode`, `LINK_REGISTER`, `REGISTER`, `interrupts::Exceptions`, and `sign_extend`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:5:30
[INFO] [stdout]    |
[INFO] [stdout]  5 |         cpu::{FlagsRegister, InstructionMode, CPU, LINK_REGISTER},
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^       ^^^^^^^^^^^^^
[INFO] [stdout]  6 |         interrupts::Exceptions,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     types::{ARMByteCode, CYCLES, REGISTER},
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 10 |     utils::bits::{sign_extend, Bits},
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WORD`
[INFO] [stdout]  --> src/arm7tdmi/arm/swap_instruction.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 |     types::{CYCLES, REGISTER, WORD},
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cpu::CPU` and `instruction_table::Instruction`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{arm7tdmi::{cpu::CPU, instruction_table::Instruction}, utils::bits::Bits};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/arm7tdmi/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `instruction_table::Instruction` and `utils::bits::Bits`
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 |     arm7tdmi::{cpsr::PSR, instruction_table::Instruction},
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     utils::bits::Bits,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]  --> src/arm7tdmi/decoder.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use instructions::ARMDecodedInstruction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gba::GBA` and `memory::memory::GBAMemory`
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:357:17
[INFO] [stdout]     |
[INFO] [stdout] 357 |     use crate::{gba::GBA, memory::memory::GBAMemory};
[INFO] [stdout]     |                 ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::bits::Bits`
[INFO] [stdout]  --> src/arm7tdmi/interrupts.rs:1:55
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{memory::memory::GBAMemory, types::CYCLES, utils::bits::Bits};
[INFO] [stdout]   |                                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `arm::alu::ArithmeticInstruction`, `sign_extend`, and `thumb`
[INFO] [stdout]   --> src/arm7tdmi/thumb/alu.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout]  5 |         arm::alu::ArithmeticInstruction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  8 |         thumb,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         bits::{sign_extend, Bits},
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rstest::rstest`
[INFO] [stdout]    --> src/arm7tdmi/thumb/alu.rs:883:9
[INFO] [stdout]     |
[INFO] [stdout] 883 |     use rstest::rstest;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Execute`, `Operand`, `ThumbFullAdderOperations`, and `ThumbFullAdder`
[INFO] [stdout]    --> src/arm7tdmi/thumb/alu.rs:888:33
[INFO] [stdout]     |
[INFO] [stdout] 888 |             instruction_table::{Execute, Operand},
[INFO] [stdout]     |                                 ^^^^^^^  ^^^^^^^
[INFO] [stdout] 889 |             thumb::alu::{ThumbFullAdder, ThumbFullAdderOperations},
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1113:57
[INFO] [stdout]      |
[INFO] [stdout] 1113 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1114 |         gba::GBA,
[INFO] [stdout] 1115 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1254:57
[INFO] [stdout]      |
[INFO] [stdout] 1254 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1255 |         gba::GBA,
[INFO] [stdout] 1256 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1341:57
[INFO] [stdout]      |
[INFO] [stdout] 1341 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1342 |         gba::GBA,
[INFO] [stdout] 1343 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1417:57
[INFO] [stdout]      |
[INFO] [stdout] 1417 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1418 |         gba::GBA,
[INFO] [stdout] 1419 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1477:42
[INFO] [stdout]      |
[INFO] [stdout] 1477 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1478 |         gba::GBA,
[INFO] [stdout] 1479 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CPU` and `memory::memory::GBAMemory`
[INFO] [stdout]     --> src/arm7tdmi/thumb/alu.rs:1521:42
[INFO] [stdout]      |
[INFO] [stdout] 1521 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1522 |         gba::GBA,
[INFO] [stdout] 1523 |         memory::memory::GBAMemory,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Signed`
[INFO] [stdout]  --> src/arm7tdmi/thumb/data_transfer_instructions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num_traits::Signed;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LINK_REGISTER` and `SignedAndHwDtInstruction`
[INFO] [stdout]   --> src/arm7tdmi/thumb/data_transfer_instructions.rs:8:67
[INFO] [stdout]    |
[INFO] [stdout]  8 |             BlockDTOpcodes, LoadOpcodes, RegisterList, SdtOpcode, SignedAndHwDtInstruction,
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |         cpu::{CPU, LINK_REGISTER, PC_REGISTER, STACK_POINTER},
[INFO] [stdout]    |                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/arm7tdmi/instruction_table.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::Block`
[INFO] [stdout]  --> src/arm7tdmi/instruction_table.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tui::widgets::Block;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThumbALUInstruction` and `self`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |             self,
[INFO] [stdout]    |             ^^^^
[INFO] [stdout] 15 |             alu::{
[INFO] [stdout] 16 |                 ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         instructions::ARMDecodedInstruction,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DecodeARMInstructionToString`, `DecodeThumbInstructionToString`, `Instruction`, `condition_code_as_str`, `thumb::alu::ThumbFullAdder`, and `utils::bits::Bits`
[INFO] [stdout]   --> src/debugger/debugger.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             DecodeARMInstructionToString, DecodeThumbInstructionToString, Instruction, condition_code_as_str, instruction_to_string
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |         },
[INFO] [stdout] 33 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     utils::bits::Bits,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic::catch_unwind`
[INFO] [stdout]  --> src/debugger/terminal_debugger.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     panic::catch_unwind,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BinaryHeap`
[INFO] [stdout]  --> src/gba.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::BinaryHeap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debugger::terminal_debugger::breaker`
[INFO] [stdout]  --> src/gba.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::debugger::terminal_debugger::breaker;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PPUModes`
[INFO] [stdout]   --> src/gba.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::graphics::ppu::{PPUModes, PPU};
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rect::Rect`
[INFO] [stdout]   --> src/graphics/display.rs:12:51
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::{event::Event, pixels::PixelFormatEnum, rect::Rect, render::Texture, surface::Surface};
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dispcnt::Dispcnt`
[INFO] [stdout]  --> src/graphics/layers.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     wrappers::{bgcnt::BGCnt, dispcnt::Dispcnt},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DISPSTAT` and `VCOUNT`
[INFO] [stdout]  --> src/graphics/ppu.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::memory::io_handlers::{DISPSTAT, VCOUNT};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cmp::Reverse`, `collections::BinaryHeap`, and `fmt::Display`
[INFO] [stdout]  --> src/graphics/ppu_modes/hdraw.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Reverse, collections::BinaryHeap, fmt::Display, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HBLANK_FLAG`, `OBJMode`, and `OBJPalleteData`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:19
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{OBJPalleteData, rgb555_to_rgb24},
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{HBLANK_FLAG, HDRAW, PPU, PPUModes},
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |         oam::{OBJMode, Oam},
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VBLANK_FLAG`
[INFO] [stdout]  --> src/graphics/ppu_modes/vblank.rs:1:52
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{graphics::ppu::{PPU, PPUModes, VBLANK, VBLANK_FLAG, VDRAW}, memory::memory::{CPUEvent, CPUEventType, GBAMemory}};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dispcnt::Dispcnt`
[INFO] [stdout]  --> src/graphics/wrappers/tile.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |         dispcnt::Dispcnt,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CPUEventType`
[INFO] [stdout]   --> src/io/timers.rs:85:32
[INFO] [stdout]    |
[INFO] [stdout] 85 |             memory::{CPUEvent, CPUEventType, GBAMemory},
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `memory::GBAMemory`, `memory_block::MemoryBlock`, and `oam::Oam`
[INFO] [stdout]   --> src/memory/affine_parameters.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |     use crate::memory::{memory::GBAMemory, memory_block::MemoryBlock, oam::Oam};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::AffineParameters`
[INFO] [stdout]   --> src/memory/affine_parameters.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     use super::AffineParameters;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GBAMemory` and `SimpleMemoryBlock`
[INFO] [stdout]   --> src/memory/io_handlers.rs:17:28
[INFO] [stdout]    |
[INFO] [stdout] 17 |     memory::{CPUEventType, GBAMemory, MemoryError},
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 18 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/memory/io_handlers.rs:826:44
[INFO] [stdout]     |
[INFO] [stdout] 826 |                 self.writeu16(offset, dbg!((value & 0xFFFF)) as u16);
[INFO] [stdout]     |                                            ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -                 self.writeu16(offset, dbg!((value & 0xFFFF)) as u16);
[INFO] [stdout] 826 +                 self.writeu16(offset, dbg!( value & 0xFFFF) as u16);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/memory/io_handlers.rs:827:48
[INFO] [stdout]     |
[INFO] [stdout] 827 |                 self.writeu16(offset + 2, dbg!((value >> 16)) as u16);
[INFO] [stdout]     |                                                ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 827 -                 self.writeu16(offset + 2, dbg!((value >> 16)) as u16);
[INFO] [stdout] 827 +                 self.writeu16(offset + 2, dbg!( value >> 16) as u16);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HBLANK_FLAG` and `io_handlers::DISPSTAT`
[INFO] [stdout]  --> src/memory/memory.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |         ppu::{HBLANK_FLAG, HDRAW, VDRAW},
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 5 |     }, memory::{io_handlers::DISPSTAT, wrappers::dma::DMAControl}, types::{BYTE, CYCLES, HWORD, WORD}
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `io_handlers::IOBlock` and `oam_memory::OAMBlock`
[INFO] [stdout]  --> src/memory/memory_block.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{io_handlers::IOBlock, oam_memory::OAMBlock};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oam::NUM_OAM_ENTRIES`
[INFO] [stdout]  --> src/memory/oam_memory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     oam::NUM_OAM_ENTRIES,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::size_of`
[INFO] [stdout]  --> src/utils/bits.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     mem::size_of,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Unsigned`
[INFO] [stdout]  --> src/utils/bits.rs:6:36
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num_traits::{Bounded, PrimInt, Unsigned};
[INFO] [stdout]   |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/utils/utils.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sync::{atomic::AtomicBool, Arc, Mutex},
[INFO] [stdout]   |                                ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::sys::Atom`
[INFO] [stdout]  --> src/utils/utils.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sdl2::sys::Atom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DecodeThumbInstructionToString`, `ThumbALUInstruction`, `ThumbArithmeticInstruction`, `ThumbFullAdderOperations`, `ThumbFullAdder`, `ThumbLogicalInstruction`, and `ThumbShiftInstruction`
[INFO] [stdout]  --> src/utils/instruction_to_string.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |         instruction_table::{DecodeThumbInstructionToString, Operand},
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |         thumb::alu::{
[INFO] [stdout] 8 |             ThumbALUInstruction, ThumbArithmeticInstruction, ThumbFullAdder,
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 9 |             ThumbFullAdderOperations, ThumbLogicalInstruction, ThumbShiftInstruction,
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::u16`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/memory/io_handlers.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::u16;
[INFO] [stdout]   |          ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]   --> src/memory/memory.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/memory/memory_block.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{mem::size_of, usize};
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::memory_block::MemoryBlock`
[INFO] [stdout]   --> src/gba.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::memory::memory_block::MemoryBlock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:55
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(crate) fn set_executed_instruction(&mut self, name: Arguments<'_>) {
[INFO] [stdout]    |                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         memory: &mut GBAMemory,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         instruction: ARMByteCode,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         memory: &mut GBAMemory,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         memory: &mut GBAMemory,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/thumb/jumps_and_calls.rs:101:37
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn execute(self, cpu: &mut CPU, memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address1`
[INFO] [stdout]   --> src/debugger/breakpoints.rs:36:46
[INFO] [stdout]    |
[INFO] [stdout] 36 |             BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address),
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `region`
[INFO] [stdout]   --> src/debugger/terminal_debugger.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 |                         let region = gba.cpu.get_register(PC_REGISTER as u32) >> 24;
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_region`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/debugger/terminal_debugger.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 Commands::Break(address) => todo!(),
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_command`
[INFO] [stdout]    --> src/debugger/terminal_debugger.rs:132:43
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn parse_command(command_string: &String, last_command: &Option<Commands>) -> Option<Commands> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ARMExecutable` is never used
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) type ARMExecutable = fn(&mut CPU, ARMByteCode, memory: &mut GBAMemory) -> CYCLES;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ARMDecodedInstruction` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct ARMDecodedInstruction {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `arm_nop`, `arm_multiply`, `arm_multiply_accumulate`, `arm_multiply_long`, and `arm_not_implemented` are never used
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:36:19
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub(crate) fn arm_nop(&mut self, _instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub(crate) fn arm_multiply(&mut self, instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub(crate) fn arm_multiply_accumulate(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub(crate) fn arm_multiply_long(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn arm_not_implemented(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INVALID` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) enum CPUMode {
[INFO] [stdout]    |                 ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     INVALID(u32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUMode` 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 `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub(crate) cycles: u64,
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Status` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instruction_count` and `show_executed_instructions` are never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(crate) struct CPU {
[INFO] [stdout]    |                   --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     instruction_count: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 71 |     pub(crate) show_executed_instructions: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INSTRUCTION_COUNT` is never used
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) static mut INSTRUCTION_COUNT: usize = 0;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `get_status` are never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:103:19
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn get_status(&self) -> Status {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_multiply_long_instruction` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:197:19
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub(crate) fn is_multiply_long_instruction(instruction: ARMByteCode) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_branch_and_link_instruction` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:206:19
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub(crate) fn is_branch_and_link_instruction(instruction: ARMByteCode) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_undefined` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:222:19
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub(crate) fn is_undefined(instruction: u32) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `decode_multiply` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:335:23
[INFO] [stdout]     |
[INFO] [stdout] 334 |     impl CPU {
[INFO] [stdout]     |     -------- method in this implementation
[INFO] [stdout] 335 |         pub(crate) fn decode_multiply(&self, instruction: ARMByteCode) -> ARMDecodedInstruction {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reset` and `Undefined` are never constructed
[INFO] [stdout]  --> src/arm7tdmi/interrupts.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum Exceptions {
[INFO] [stdout]   |                 ---------- variants in this enum
[INFO] [stdout] 7 |     Reset,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     Undefined,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Exceptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Break`, `WatchRegister`, and `WatchAddress` are never constructed
[INFO] [stdout]  --> src/debugger/breakpoints.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum BreakType {
[INFO] [stdout]   |                 --------- variants in this enum
[INFO] [stdout] 7 |     Break(u32),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     WatchRegister(REGISTER, u32),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 9 |     WatchAddress(usize, usize),
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BreakType` 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: variants `Address` and `Error` are never constructed
[INFO] [stdout]   --> src/debugger/breakpoints.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) enum TriggeredWatchpoints {
[INFO] [stdout]    |                 -------------------- variants in this enum
[INFO] [stdout] 14 |     Address(usize),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 15 |     Error(MemoryError),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TriggeredWatchpoints` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `break_type` is never read
[INFO] [stdout]   --> src/debugger/breakpoints.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) struct Breakpoint {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] 20 |     pub(crate) break_type: BreakType,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/debugger/breakpoints.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Breakpoint {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 24 |     pub(crate) fn new(break_type: BreakType) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Debugger` is never constructed
[INFO] [stdout]   --> src/debugger/debugger.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) struct Debugger {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/debugger/debugger.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl Debugger {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 58 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_debugger` is never used
[INFO] [stdout]   --> src/debugger/debugger.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub(crate) fn start_debugger(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ppu` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn draw_ppu(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_cpu` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn draw_cpu(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_control_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:362:4
[INFO] [stdout]     |
[INFO] [stdout] 362 | fn handle_control_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_terminal_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn handle_terminal_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_normal_mode_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn handle_normal_mode_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_registers` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn draw_registers(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_cpsr` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:484:4
[INFO] [stdout]     |
[INFO] [stdout] 484 | fn draw_cpsr(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_memory` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:593:4
[INFO] [stdout]     |
[INFO] [stdout] 593 | fn draw_memory(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_terminal` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:679:4
[INFO] [stdout]     |
[INFO] [stdout] 679 | fn draw_terminal(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TerminalCommandErrors` is never used
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) enum TerminalCommandErrors {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalCommand` is never constructed
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) struct TerminalCommand {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalHistoryEntry` is never constructed
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) struct TerminalHistoryEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINAL_COMMANDS` is never used
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const TERMINAL_COMMANDS: [TerminalCommand; 14] = [
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn find_command(command: &str) -> Result<&TerminalCommand, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_command` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:148:15
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub(crate) fn parse_command(debugger: &mut Debugger) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `continue_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn continue_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn next_handler(debugger: &mut Debugger, args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quit_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn quit_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn set_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn delete_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn list_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_watchpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn set_watchpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_watch_address_range_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:371:4
[INFO] [stdout]     |
[INFO] [stdout] 371 | fn set_watch_address_range_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_mem_start` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:396:4
[INFO] [stdout]     |
[INFO] [stdout] 396 | fn set_mem_start(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dissassemble_oam` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn dissassemble_oam(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_to_obj_tile` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:458:4
[INFO] [stdout]     |
[INFO] [stdout] 458 | fn go_to_obj_tile(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_borders` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn send_borders(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_gba` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:483:4
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn reset_gba(debugger: &mut Debugger, _args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_decode` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:489:4
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn show_decode(debugger: &mut Debugger, _args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/gba.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl GBA {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ready_to_render` is never read
[INFO] [stdout]   --> src/graphics/display.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct DisplayBuffer {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] 22 |     pub(crate) buffer: Mutex<[u32; CANVAS_AREA]>,
[INFO] [stdout] 23 |     pub(crate) ready_to_render: AtomicBool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_special_effects_enabled` is never read
[INFO] [stdout]   --> src/graphics/layers.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct DisplayContext {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) color_special_effects_enabled: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_top_bg_pixel` is never used
[INFO] [stdout]    --> src/graphics/layers.rs:114:19
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const VBLANK_ENABLE: u16 = 1 << 3;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usable_cycles` is never read
[INFO] [stdout]   --> src/graphics/ppu.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) struct PPU {
[INFO] [stdout]    |                   --- field in this struct
[INFO] [stdout] 43 |     usable_cycles: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PPU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl PPU {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const IORAM_SIZE: usize = 0x3FF;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Break` and `StartDMA` are never constructed
[INFO] [stdout]   --> src/memory/memory.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) enum CPUEventType {
[INFO] [stdout]    |                 ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     Break(usize),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 77 |     DMA(usize, DMAControl),
[INFO] [stdout] 78 |     StartDMA(usize),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUEventType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadError` and `WriteError` are never constructed
[INFO] [stdout]    --> src/memory/memory.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub(crate) enum MemoryError {
[INFO] [stdout]     |                 ----------- variants in this enum
[INFO] [stdout] 125 |     NoIODefinition(usize),
[INFO] [stdout] 126 |     ReadError(usize),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 127 |     WriteError(usize, u32),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active_region`, `triggered_breakpoints`, and `breakpoints` are never read
[INFO] [stdout]    --> src/memory/memory.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub(crate) struct GBAMemory {
[INFO] [stdout]     |                   --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 158 |     active_region: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub(crate) triggered_breakpoints: Rc<RefCell<Vec<TriggeredWatchpoints>>>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 |     pub(crate) breakpoints: Option<Vec<Breakpoint>>,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_ram`, `read_raw`, and `readu32_double` are never used
[INFO] [stdout]    --> src/memory/memory.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl GBAMemory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub(crate) fn clear_ram(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub(crate) fn read_raw(&self, address: usize) -> u8 {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub(crate) fn readu32_double(&self, address: usize) -> (MemoryFetch<u32>, MemoryFetch<u32>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `obj_mosaic`, `horizontal_flip`, and `vertical_flip` are never used
[INFO] [stdout]    --> src/memory/oam.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Oam {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub(crate) fn obj_mosaic(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub(crate) fn horizontal_flip(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub(crate) fn vertical_flip(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_objects` is never read
[INFO] [stdout]   --> src/memory/oam_memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct OAMBlock {
[INFO] [stdout]    |                   -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     active_objects: Vec<Oam>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mosaic` is never used
[INFO] [stdout]   --> src/memory/wrappers/bgcnt.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BGCnt {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) fn mosaic(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BldY` is never constructed
[INFO] [stdout]  --> src/memory/wrappers/blending.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct BldY<'a>(pub(crate) &'a u16);
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evy_coefficient` is never used
[INFO] [stdout]   --> src/memory/wrappers/blending.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl<'a> BldY<'a> {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 75 |     pub(crate) fn evy_coefficient(&self) -> u16 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `display_frame_select`, `h_blank_interval_free`, `one_dimensional_character_mapping`, `forced_blank`, and `enabled_backgrounds` are never used
[INFO] [stdout]   --> src/memory/wrappers/dispcnt.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Dispcnt {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub(crate) fn display_frame_select(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(crate) fn h_blank_interval_free(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub(crate) fn one_dimensional_character_mapping(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(crate) fn forced_blank(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn enabled_backgrounds(&self) -> EnabledBackgrounds {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnabledBackgrounds` is never constructed
[INFO] [stdout]   --> src/memory/wrappers/dispcnt.rs:69:19
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub(crate) struct EnabledBackgrounds {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WININ` is never constructed
[INFO] [stdout]  --> src/memory/wrappers/window.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) struct WININ(pub(crate) u16);
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/window.rs:6:19
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl WININ {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  6 |     pub(crate) fn window_0_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub(crate) fn window_0_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(crate) fn window_0_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(crate) fn window_0_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) fn window_0_obj_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(crate) fn window_0_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn window_1_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn window_1_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub(crate) fn window_1_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) fn window_1_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn window_1_obj_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub(crate) fn window_1_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `gamepak_drq` is never used
[INFO] [stdout]    --> src/memory/wrappers/dma.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl DmaCNTH {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub(crate) fn gamepak_drq(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `twos_complement` is never used
[INFO] [stdout]   --> src/utils/bits.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |                  ---- method in this trait
[INFO] [stdout] 46 |     fn twos_complement(self) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vec` is never used
[INFO] [stdout]   --> src/utils/utils.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) fn print_vec<T: Display>(vec: &Vec<T>) -> String {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParsingError` is never constructed
[INFO] [stdout]   --> src/utils/utils.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct ParsingError;
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex` is never used
[INFO] [stdout]   --> src/utils/utils.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_hex<T: Num>(str: &str) -> Result<T, ParsingError> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_parse_num` is never used
[INFO] [stdout]   --> src/utils/utils.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) fn try_parse_num<T: Num + FromStr>(str: &str) -> Result<T, ParsingError> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_parse_reg` is never used
[INFO] [stdout]   --> src/utils/utils.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) fn try_parse_reg<T: Num + FromStr>(reg: &str) -> Result<T, ParsingError> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_option_register` is never used
[INFO] [stdout]   --> src/utils/instruction_to_string.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn print_option_register(register: &Option<REGISTER>) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::memory_block::MemoryBlock`
[INFO] [stdout]   --> src/gba.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::memory::memory_block::MemoryBlock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:55
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(crate) fn set_executed_instruction(&mut self, name: Arguments<'_>) {
[INFO] [stdout]    |                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         memory: &mut GBAMemory,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         instruction: ARMByteCode,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         memory: &mut GBAMemory,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         memory: &mut GBAMemory,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memory`
[INFO] [stdout]    --> src/arm7tdmi/thumb/jumps_and_calls.rs:101:37
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn execute(self, cpu: &mut CPU, memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address1`
[INFO] [stdout]   --> src/debugger/breakpoints.rs:36:46
[INFO] [stdout]    |
[INFO] [stdout] 36 |             BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address),
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `region`
[INFO] [stdout]   --> src/debugger/terminal_debugger.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 |                         let region = gba.cpu.get_register(PC_REGISTER as u32) >> 24;
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_region`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/debugger/terminal_debugger.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 Commands::Break(address) => todo!(),
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_command`
[INFO] [stdout]    --> src/debugger/terminal_debugger.rs:132:43
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn parse_command(command_string: &String, last_command: &Option<Commands>) -> Option<Commands> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ARMExecutable` is never used
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) type ARMExecutable = fn(&mut CPU, ARMByteCode, memory: &mut GBAMemory) -> CYCLES;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ARMDecodedInstruction` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct ARMDecodedInstruction {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `arm_nop`, `arm_multiply`, `arm_multiply_accumulate`, `arm_multiply_long`, and `arm_not_implemented` are never used
[INFO] [stdout]    --> src/arm7tdmi/arm/instructions.rs:36:19
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub(crate) fn arm_nop(&mut self, _instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub(crate) fn arm_multiply(&mut self, instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub(crate) fn arm_multiply_accumulate(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub(crate) fn arm_multiply_long(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn arm_not_implemented(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INVALID` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) enum CPUMode {
[INFO] [stdout]    |                 ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     INVALID(u32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUMode` 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 `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub(crate) cycles: u64,
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Status` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instruction_count` and `show_executed_instructions` are never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(crate) struct CPU {
[INFO] [stdout]    |                   --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     instruction_count: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 71 |     pub(crate) show_executed_instructions: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INSTRUCTION_COUNT` is never used
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) static mut INSTRUCTION_COUNT: usize = 0;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `get_status` are never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:103:19
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn get_status(&self) -> Status {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_multiply_long_instruction` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:197:19
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub(crate) fn is_multiply_long_instruction(instruction: ARMByteCode) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_branch_and_link_instruction` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:206:19
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub(crate) fn is_branch_and_link_instruction(instruction: ARMByteCode) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `decode_multiply` is never used
[INFO] [stdout]    --> src/arm7tdmi/decoder.rs:335:23
[INFO] [stdout]     |
[INFO] [stdout] 334 |     impl CPU {
[INFO] [stdout]     |     -------- method in this implementation
[INFO] [stdout] 335 |         pub(crate) fn decode_multiply(&self, instruction: ARMByteCode) -> ARMDecodedInstruction {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reset` and `Undefined` are never constructed
[INFO] [stdout]  --> src/arm7tdmi/interrupts.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum Exceptions {
[INFO] [stdout]   |                 ---------- variants in this enum
[INFO] [stdout] 7 |     Reset,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     Undefined,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Exceptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Break`, `WatchRegister`, and `WatchAddress` are never constructed
[INFO] [stdout]  --> src/debugger/breakpoints.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum BreakType {
[INFO] [stdout]   |                 --------- variants in this enum
[INFO] [stdout] 7 |     Break(u32),
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     WatchRegister(REGISTER, u32),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 9 |     WatchAddress(usize, usize),
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BreakType` 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: variants `Address` and `Error` are never constructed
[INFO] [stdout]   --> src/debugger/breakpoints.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) enum TriggeredWatchpoints {
[INFO] [stdout]    |                 -------------------- variants in this enum
[INFO] [stdout] 14 |     Address(usize),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 15 |     Error(MemoryError),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TriggeredWatchpoints` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `break_type` is never read
[INFO] [stdout]   --> src/debugger/breakpoints.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) struct Breakpoint {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] 20 |     pub(crate) break_type: BreakType,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Breakpoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/debugger/breakpoints.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Breakpoint {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 24 |     pub(crate) fn new(break_type: BreakType) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Debugger` is never constructed
[INFO] [stdout]   --> src/debugger/debugger.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) struct Debugger {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/debugger/debugger.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl Debugger {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 58 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_debugger` is never used
[INFO] [stdout]   --> src/debugger/debugger.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub(crate) fn start_debugger(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ppu` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn draw_ppu(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_cpu` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn draw_cpu(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_control_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:362:4
[INFO] [stdout]     |
[INFO] [stdout] 362 | fn handle_control_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_terminal_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn handle_terminal_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_normal_mode_events` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn handle_normal_mode_events(debugger: &mut Debugger, event: KeyEvent) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_registers` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn draw_registers(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_cpsr` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:484:4
[INFO] [stdout]     |
[INFO] [stdout] 484 | fn draw_cpsr(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_memory` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:593:4
[INFO] [stdout]     |
[INFO] [stdout] 593 | fn draw_memory(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_terminal` is never used
[INFO] [stdout]    --> src/debugger/debugger.rs:679:4
[INFO] [stdout]     |
[INFO] [stdout] 679 | fn draw_terminal(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TerminalCommandErrors` is never used
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) enum TerminalCommandErrors {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalCommand` is never constructed
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) struct TerminalCommand {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerminalHistoryEntry` is never constructed
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) struct TerminalHistoryEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINAL_COMMANDS` is never used
[INFO] [stdout]   --> src/debugger/terminal_commands.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const TERMINAL_COMMANDS: [TerminalCommand; 14] = [
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_command` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn find_command(command: &str) -> Result<&TerminalCommand, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_command` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:148:15
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub(crate) fn parse_command(debugger: &mut Debugger) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `continue_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn continue_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn next_handler(debugger: &mut Debugger, args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quit_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn quit_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn set_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn delete_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_breakpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn list_breakpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_watchpoint_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn set_watchpoint_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_watch_address_range_handler` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:371:4
[INFO] [stdout]     |
[INFO] [stdout] 371 | fn set_watch_address_range_handler(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_mem_start` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:396:4
[INFO] [stdout]     |
[INFO] [stdout] 396 | fn set_mem_start(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dissassemble_oam` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:410:4
[INFO] [stdout]     |
[INFO] [stdout] 410 | fn dissassemble_oam(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_to_obj_tile` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:458:4
[INFO] [stdout]     |
[INFO] [stdout] 458 | fn go_to_obj_tile(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_borders` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn send_borders(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_gba` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:483:4
[INFO] [stdout]     |
[INFO] [stdout] 483 | fn reset_gba(debugger: &mut Debugger, _args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_decode` is never used
[INFO] [stdout]    --> src/debugger/terminal_commands.rs:489:4
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn show_decode(debugger: &mut Debugger, _args: Vec<&str>) -> Result<String, TerminalCommandErrors> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/gba.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl GBA {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ready_to_render` is never read
[INFO] [stdout]   --> src/graphics/display.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct DisplayBuffer {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] 22 |     pub(crate) buffer: Mutex<[u32; CANVAS_AREA]>,
[INFO] [stdout] 23 |     pub(crate) ready_to_render: AtomicBool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_special_effects_enabled` is never read
[INFO] [stdout]   --> src/graphics/layers.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct DisplayContext {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) color_special_effects_enabled: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_top_bg_pixel` is never used
[INFO] [stdout]    --> src/graphics/layers.rs:114:19
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub(crate) fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usable_cycles` is never read
[INFO] [stdout]   --> src/graphics/ppu.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) struct PPU {
[INFO] [stdout]    |                   --- field in this struct
[INFO] [stdout] 43 |     usable_cycles: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PPU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl PPU {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub(crate) fn reset(&mut self) {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const IORAM_SIZE: usize = 0x3FF;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Break` and `StartDMA` are never constructed
[INFO] [stdout]   --> src/memory/memory.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) enum CPUEventType {
[INFO] [stdout]    |                 ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     Break(usize),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 77 |     DMA(usize, DMAControl),
[INFO] [stdout] 78 |     StartDMA(usize),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUEventType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadError` and `WriteError` are never constructed
[INFO] [stdout]    --> src/memory/memory.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub(crate) enum MemoryError {
[INFO] [stdout]     |                 ----------- variants in this enum
[INFO] [stdout] 125 |     NoIODefinition(usize),
[INFO] [stdout] 126 |     ReadError(usize),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 127 |     WriteError(usize, u32),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `active_region`, `triggered_breakpoints`, and `breakpoints` are never read
[INFO] [stdout]    --> src/memory/memory.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub(crate) struct GBAMemory {
[INFO] [stdout]     |                   --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 158 |     active_region: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub(crate) triggered_breakpoints: Rc<RefCell<Vec<TriggeredWatchpoints>>>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 163 |     pub(crate) breakpoints: Option<Vec<Breakpoint>>,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_ram`, `read_raw`, and `readu32_double` are never used
[INFO] [stdout]    --> src/memory/memory.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl GBAMemory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub(crate) fn clear_ram(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub(crate) fn read_raw(&self, address: usize) -> u8 {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub(crate) fn readu32_double(&self, address: usize) -> (MemoryFetch<u32>, MemoryFetch<u32>) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `obj_mosaic`, `horizontal_flip`, and `vertical_flip` are never used
[INFO] [stdout]    --> src/memory/oam.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Oam {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub(crate) fn obj_mosaic(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub(crate) fn horizontal_flip(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub(crate) fn vertical_flip(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_objects` is never read
[INFO] [stdout]   --> src/memory/oam_memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct OAMBlock {
[INFO] [stdout]    |                   -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     active_objects: Vec<Oam>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mosaic` is never used
[INFO] [stdout]   --> src/memory/wrappers/bgcnt.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BGCnt {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) fn mosaic(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BldY` is never constructed
[INFO] [stdout]  --> src/memory/wrappers/blending.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct BldY<'a>(pub(crate) &'a u16);
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evy_coefficient` is never used
[INFO] [stdout]   --> src/memory/wrappers/blending.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl<'a> BldY<'a> {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 75 |     pub(crate) fn evy_coefficient(&self) -> u16 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `display_frame_select`, `h_blank_interval_free`, `one_dimensional_character_mapping`, and `forced_blank` are never used
[INFO] [stdout]   --> src/memory/wrappers/dispcnt.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Dispcnt {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub(crate) fn display_frame_select(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(crate) fn h_blank_interval_free(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub(crate) fn one_dimensional_character_mapping(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(crate) fn forced_blank(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WININ` is never constructed
[INFO] [stdout]  --> src/memory/wrappers/window.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) struct WININ(pub(crate) u16);
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/window.rs:6:19
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl WININ {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  6 |     pub(crate) fn window_0_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub(crate) fn window_0_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub(crate) fn window_0_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub(crate) fn window_0_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) fn window_0_obj_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(crate) fn window_0_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn window_1_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn window_1_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub(crate) fn window_1_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) fn window_1_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn window_1_obj_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub(crate) fn window_1_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `gamepak_drq` is never used
[INFO] [stdout]    --> src/memory/wrappers/dma.rs:109:19
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl DmaCNTH {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub(crate) fn gamepak_drq(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `twos_complement` is never used
[INFO] [stdout]   --> src/utils/bits.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |                  ---- method in this trait
[INFO] [stdout] 46 |     fn twos_complement(self) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vec` is never used
[INFO] [stdout]   --> src/utils/utils.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) fn print_vec<T: Display>(vec: &Vec<T>) -> String {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_parse_num` is never used
[INFO] [stdout]   --> src/utils/utils.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) fn try_parse_num<T: Num + FromStr>(str: &str) -> Result<T, ParsingError> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_parse_reg` is never used
[INFO] [stdout]   --> src/utils/utils.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) fn try_parse_reg<T: Num + FromStr>(reg: &str) -> Result<T, ParsingError> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_option_register` is never used
[INFO] [stdout]   --> src/utils/instruction_to_string.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn print_option_register(register: &Option<REGISTER>) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `ctrlc`
[INFO] [stderr]  --> Cargo.toml:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | ctrlc = "3.4.4"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `ctrlc`
[INFO] [stderr] warning: `gameboy_advance` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.53s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.28.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491", kill_on_drop: false }`
[INFO] [stdout] 50cc57b7be78e4412873f529f0f4ae909068ec31be599f04d5e77b713274d491
