[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] a1278f79f60d014ccb9b3a3b92e933f72eadc2e4
[INFO] checking sidhantas/GameboyAdvance against try#a3a874232ae0a7586b5fbe7483c5a42e157bd62a for pr-151109
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/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-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sidhantas/GameboyAdvance on toolchain a3a874232ae0a7586b5fbe7483c5a42e157bd62a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3a874232ae0a7586b5fbe7483c5a42e157bd62a" "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" "+a3a874232ae0a7586b5fbe7483c5a42e157bd62a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ctrlc v3.4.4
[INFO] [stderr]   Downloaded rstest_macros v0.23.0
[INFO] [stderr]   Downloaded rstest v0.23.0
[INFO] [stderr]   Downloaded sdl2 v0.37.0
[INFO] [stderr]   Downloaded sdl2-sys v0.37.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a3a874232ae0a7586b5fbe7483c5a42e157bd62a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 657d80af9a1fa746dd3a6d46dbfca7ca3c255b2149b56f0ce119b63d52cb70f4
[INFO] running `Command { std: "docker" "start" "-a" "657d80af9a1fa746dd3a6d46dbfca7ca3c255b2149b56f0ce119b63d52cb70f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "657d80af9a1fa746dd3a6d46dbfca7ca3c255b2149b56f0ce119b63d52cb70f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "657d80af9a1fa746dd3a6d46dbfca7ca3c255b2149b56f0ce119b63d52cb70f4", kill_on_drop: false }`
[INFO] [stdout] 657d80af9a1fa746dd3a6d46dbfca7ca3c255b2149b56f0ce119b63d52cb70f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+a3a874232ae0a7586b5fbe7483c5a42e157bd62a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eadf66f4cd3bde8c150abc908da4335b9ec850da161f266e84541ac7f4b2888b
[INFO] running `Command { std: "docker" "start" "-a" "eadf66f4cd3bde8c150abc908da4335b9ec850da161f266e84541ac7f4b2888b", kill_on_drop: false }`
[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 cfg-if v1.0.0
[INFO] [stderr]     Checking memchr v2.7.4
[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]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling hashbrown v0.15.1
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling winnow v0.6.20
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]     Checking pin-project-lite v0.2.15
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]     Checking unicode-width v0.1.13
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]    Compiling indexmap v2.6.0
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.87
[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]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]     Checking ctrlc v3.4.4
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stderr]     Checking regex-automata v0.4.8
[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: `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 import: `self`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::bits::{self, 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, SignedAndHwDtLoadOpcodes, SignedAndHwDtOpc...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 | ...   },
[INFO] [stdout] 10 | ...   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:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | ...   self,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 10 | ...   alu::{
[INFO] [stdout] 11 | ...       ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr, ThumbArithmeticImmInstruction, ThumbBx, ThumbFullAdder, Th...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:19:91
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::{arm::{data_transfer_instructions::{SdtInstruction, SignedAndHwDtInstruction}, instructions::ARMDecodedInstruction, multi...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumb::alu::ThumbFullAdder`
[INFO] [stdout]   --> src/debugger/debugger.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condvar`, `MutexGuard`, and `Ordering::Relaxed`
[INFO] [stdout]  --> src/graphics/display.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |         atomic::{AtomicBool, Ordering::Relaxed},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         mpsc::Receiver,
[INFO] [stdout] 7 |         Arc, Condvar, Mutex, MutexGuard,
[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: `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`, `OBJPalleteData`, and `wrappers::tile::Tile`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{rgb555_to_rgb24, OBJPalleteData},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{PPUModes, HBLANK_FLAG, HDRAW, PPU},
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 10 |         wrappers::tile::Tile,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         oam::{OBJMode, Oam},
[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:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     memory::{CPUCallbacks, GBAMemory, MemoryError},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 7 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[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: 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: `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 import: `self`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::bits::{self, 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:354:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |     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:878:9
[INFO] [stdout]     |
[INFO] [stdout] 878 |     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:883:33
[INFO] [stdout]     |
[INFO] [stdout] 883 |             instruction_table::{Execute, Operand},
[INFO] [stdout]     |                                 ^^^^^^^  ^^^^^^^
[INFO] [stdout] 884 |             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:1108:57
[INFO] [stdout]      |
[INFO] [stdout] 1108 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1109 |         gba::GBA,
[INFO] [stdout] 1110 |         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:1249:57
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1250 |         gba::GBA,
[INFO] [stdout] 1251 |         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:1336:57
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1337 |         gba::GBA,
[INFO] [stdout] 1338 |         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:1412:57
[INFO] [stdout]      |
[INFO] [stdout] 1412 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1413 |         gba::GBA,
[INFO] [stdout] 1414 |         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:1472:42
[INFO] [stdout]      |
[INFO] [stdout] 1472 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1473 |         gba::GBA,
[INFO] [stdout] 1474 |         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:1516:42
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1517 |         gba::GBA,
[INFO] [stdout] 1518 |         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, SignedAndHwDtLoadOpcodes, SignedAndHwDtOpc...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 | ...   },
[INFO] [stdout] 10 | ...   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:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | ...   self,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 10 | ...   alu::{
[INFO] [stdout] 11 | ...       ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr, ThumbArithmeticImmInstruction, ThumbBx, ThumbFullAdder, Th...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:19:91
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::{arm::{data_transfer_instructions::{SdtInstruction, SignedAndHwDtInstruction}, instructions::ARMDecodedInstruction, multi...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumb::alu::ThumbFullAdder`
[INFO] [stdout]   --> src/debugger/debugger.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condvar`, `MutexGuard`, and `Ordering::Relaxed`
[INFO] [stdout]  --> src/graphics/display.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |         atomic::{AtomicBool, Ordering::Relaxed},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         mpsc::Receiver,
[INFO] [stdout] 7 |         Arc, Condvar, Mutex, MutexGuard,
[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: `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`, `OBJPalleteData`, and `wrappers::tile::Tile`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{rgb555_to_rgb24, OBJPalleteData},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{PPUModes, HBLANK_FLAG, HDRAW, PPU},
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 10 |         wrappers::tile::Tile,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         oam::{OBJMode, Oam},
[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: `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:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     memory::{CPUCallbacks, GBAMemory, MemoryError},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 7 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[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: unused variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub 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: `dma_num`
[INFO] [stdout]   --> src/gba.rs:82:35
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 CPUCallbacks::DMA(dma_num) => {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dispcnt`
[INFO] [stdout]   --> src/graphics/ppu_modes/hblank.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn update_oam_objects(&mut self, memory: &mut GBAMemory, dispcnt: Dispcnt) {
[INFO] [stdout]    |                                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispcnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dma_cnt_h`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let dma_cnt_h = DmaCNTH(memory.io_load(dma_io_address_start + 10));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_cnt_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::destination_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::destination_address_control` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::source_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::source_address_control` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DMATransferType` is more private than the item `DmaCNTH::dma_transfer_type`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::dma_transfer_type` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DMATransferType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub 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]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `instruction_count` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     instruction_count: usize,
[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: method `get_status` is never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 378 |     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:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub 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:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub 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:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn is_undefined(instruction: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_special_effects_enabled` is never read
[INFO] [stdout]   --> src/graphics/layers.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DisplayContext {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VCOUNTER_FLAG` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(super) const VCOUNTER_FLAG: u16 = 1 << 2;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(super) 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:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(super) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | 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:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_MIRROR_MASK` is never used
[INFO] [stdout]    --> src/memory/memory.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 | const OAM_MIRROR_MASK: usize = 0x3FF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_region` is never read
[INFO] [stdout]    --> src/memory/memory.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct GBAMemory {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     active_region: u32,
[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 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: fields `source`, `destination`, and `word_count` are never read
[INFO] [stdout]  --> src/memory/wrappers/dma.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DMAControl {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 5 |     source: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     destination: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     word_count: usize
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum SourceAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_bit` is never used
[INFO] [stdout]   --> src/utils/bits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn reset_bit(&mut self, bit: u8);
[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 variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub 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 import: `Mutex`
[INFO] [stdout]  --> tests/test_thumb_long_branch.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::{Arc, Mutex};
[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: `CANVAS_AREA`
[INFO] [stdout]  --> tests/test_thumb_long_branch.rs:5:40
[INFO] [stdout]   |
[INFO] [stdout] 5 |     graphics::display::{DisplayBuffer, CANVAS_AREA},
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 4 arguments but 3 arguments were supplied
[INFO] [stdout]   --> tests/test_thumb_long_branch.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut gba = GBA::new(bios.clone(), bios.clone(), Arc::new(DisplayBuffer::new()));
[INFO] [stdout]    |                   ^^^^^^^^------------------------------------------------------------ argument #4 of type `std::sync::mpsc::Sender<PPUToDisplayCommands>` is missing
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/gba.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut gba = GBA::new(bios.clone(), bios.clone(), Arc::new(DisplayBuffer::new()), /* std::sync::mpsc::Sender<PPUToDisplayCommands> */);
[INFO] [stdout]    |                                                                                      +++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gameboy_advance` (test "test_thumb_long_branch") due to 1 previous error; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `std::sync::mpsc::sync_channel`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::mpsc::sync_channel;
[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: `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] 
[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 import: `self`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::bits::{self, 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, SignedAndHwDtLoadOpcodes, SignedAndHwDtOpc...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 | ...   },
[INFO] [stdout] 10 | ...   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:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | ...   self,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 10 | ...   alu::{
[INFO] [stdout] 11 | ...       ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr, ThumbArithmeticImmInstruction, ThumbBx, ThumbFullAdder, Th...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:19:91
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::{arm::{data_transfer_instructions::{SdtInstruction, SignedAndHwDtInstruction}, instructions::ARMDecodedInstruction, multi...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumb::alu::ThumbFullAdder`
[INFO] [stdout]   --> src/debugger/debugger.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condvar`, `MutexGuard`, and `Ordering::Relaxed`
[INFO] [stdout]  --> src/graphics/display.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |         atomic::{AtomicBool, Ordering::Relaxed},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         mpsc::Receiver,
[INFO] [stdout] 7 |         Arc, Condvar, Mutex, MutexGuard,
[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: `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`, `OBJPalleteData`, and `wrappers::tile::Tile`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{rgb555_to_rgb24, OBJPalleteData},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{PPUModes, HBLANK_FLAG, HDRAW, PPU},
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 10 |         wrappers::tile::Tile,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         oam::{OBJMode, Oam},
[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:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     memory::{CPUCallbacks, GBAMemory, MemoryError},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 7 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[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: 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: `dma_num`
[INFO] [stdout]   --> src/gba.rs:82:35
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 CPUCallbacks::DMA(dma_num) => {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dispcnt`
[INFO] [stdout]   --> src/graphics/ppu_modes/hblank.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn update_oam_objects(&mut self, memory: &mut GBAMemory, dispcnt: Dispcnt) {
[INFO] [stdout]    |                                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispcnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dma_cnt_h`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let dma_cnt_h = DmaCNTH(memory.io_load(dma_io_address_start + 10));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_cnt_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::sync_channel`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::mpsc::sync_channel;
[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: `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] 
[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 import: `self`
[INFO] [stdout]  --> src/arm7tdmi/cpsr.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::bits::{self, 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:354:17
[INFO] [stdout]     |
[INFO] [stdout] 354 |     use crate::{gba::GBA, memory::memory::GBAMemory};
[INFO] [stdout]     |                 ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::destination_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::destination_address_control` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[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: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::source_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::source_address_control` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[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: type `DMATransferType` is more private than the item `DmaCNTH::dma_transfer_type`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::dma_transfer_type` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DMATransferType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rstest::rstest`
[INFO] [stdout]    --> src/arm7tdmi/thumb/alu.rs:878:9
[INFO] [stdout]     |
[INFO] [stdout] 878 |     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:883:33
[INFO] [stdout]     |
[INFO] [stdout] 883 |             instruction_table::{Execute, Operand},
[INFO] [stdout]     |                                 ^^^^^^^  ^^^^^^^
[INFO] [stdout] 884 |             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:1108:57
[INFO] [stdout]      |
[INFO] [stdout] 1108 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1109 |         gba::GBA,
[INFO] [stdout] 1110 |         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:1249:57
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1250 |         gba::GBA,
[INFO] [stdout] 1251 |         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:1336:57
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1337 |         gba::GBA,
[INFO] [stdout] 1338 |         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:1412:57
[INFO] [stdout]      |
[INFO] [stdout] 1412 |         arm7tdmi::cpu::{FlagsRegister, InstructionMode, CPU},
[INFO] [stdout]      |                                                         ^^^
[INFO] [stdout] 1413 |         gba::GBA,
[INFO] [stdout] 1414 |         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:1472:42
[INFO] [stdout]      |
[INFO] [stdout] 1472 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1473 |         gba::GBA,
[INFO] [stdout] 1474 |         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:1516:42
[INFO] [stdout]      |
[INFO] [stdout] 1516 |         arm7tdmi::cpu::{InstructionMode, CPU},
[INFO] [stdout]      |                                          ^^^
[INFO] [stdout] 1517 |         gba::GBA,
[INFO] [stdout] 1518 |         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, SignedAndHwDtLoadOpcodes, SignedAndHwDtOpc...
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 | ...   },
[INFO] [stdout] 10 | ...   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:9:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | ...   self,
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 10 | ...   alu::{
[INFO] [stdout] 11 | ...       ThumbALUInstruction, ThumbALUOperation, ThumbAddToSp, ThumbAdr, ThumbArithmeticImmInstruction, ThumbBx, ThumbFullAdder, Th...
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instructions::ARMDecodedInstruction`
[INFO] [stdout]   --> src/arm7tdmi/instruction_table.rs:19:91
[INFO] [stdout]    |
[INFO] [stdout] 19 | use super::{arm::{data_transfer_instructions::{SdtInstruction, SignedAndHwDtInstruction}, instructions::ARMDecodedInstruction, multi...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumb::alu::ThumbFullAdder`
[INFO] [stdout]   --> src/debugger/debugger.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         thumb::alu::ThumbFullAdder,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condvar`, `MutexGuard`, and `Ordering::Relaxed`
[INFO] [stdout]  --> src/graphics/display.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |         atomic::{AtomicBool, Ordering::Relaxed},
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         mpsc::Receiver,
[INFO] [stdout] 7 |         Arc, Condvar, Mutex, MutexGuard,
[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: `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: field `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub 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]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `instruction_count` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     instruction_count: usize,
[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: method `get_status` is never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 378 |     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:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub 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:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn is_branch_and_link_instruction(instruction: ARMByteCode) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_special_effects_enabled` is never read
[INFO] [stdout]   --> src/graphics/layers.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DisplayContext {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VCOUNTER_FLAG` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(super) const VCOUNTER_FLAG: u16 = 1 << 2;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(super) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | 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:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_MIRROR_MASK` is never used
[INFO] [stdout]    --> src/memory/memory.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 | const OAM_MIRROR_MASK: usize = 0x3FF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_region` is never read
[INFO] [stdout]    --> src/memory/memory.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct GBAMemory {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     active_region: u32,
[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 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: fields `source`, `destination`, and `word_count` are never read
[INFO] [stdout]  --> src/memory/wrappers/dma.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DMAControl {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 5 |     source: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     destination: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     word_count: usize
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum SourceAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_bit` is never used
[INFO] [stdout]   --> src/utils/bits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn reset_bit(&mut self, bit: u8);
[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 imports: `HBLANK_FLAG`, `OBJMode`, `OBJPalleteData`, and `wrappers::tile::Tile`
[INFO] [stdout]   --> src/graphics/ppu_modes/hdraw.rs:8:36
[INFO] [stdout]    |
[INFO] [stdout]  8 |         pallete::{rgb555_to_rgb24, OBJPalleteData},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]  9 |         ppu::{PPUModes, HBLANK_FLAG, HDRAW, PPU},
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 10 |         wrappers::tile::Tile,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         oam::{OBJMode, Oam},
[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: `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:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     memory::{CPUCallbacks, GBAMemory, MemoryError},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 7 |     memory_block::{MemoryBlock, SimpleMemoryBlock},
[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: unused variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub 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: `dma_num`
[INFO] [stdout]   --> src/gba.rs:82:35
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 CPUCallbacks::DMA(dma_num) => {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dispcnt`
[INFO] [stdout]   --> src/graphics/ppu_modes/hblank.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn update_oam_objects(&mut self, memory: &mut GBAMemory, dispcnt: Dispcnt) {
[INFO] [stdout]    |                                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispcnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dma_cnt_h`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let dma_cnt_h = DmaCNTH(memory.io_load(dma_io_address_start + 10));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_cnt_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::destination_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::destination_address_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::source_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::source_address_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DMATransferType` is more private than the item `DmaCNTH::dma_transfer_type`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::dma_transfer_type` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DMATransferType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stmia_execution`, `ldmia_execution`, and `stmdb_execution` are never used
[INFO] [stdout]    --> src/arm7tdmi/arm/data_transfer_instructions.rs:633:12
[INFO] [stdout]     |
[INFO] [stdout] 632 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 633 |     pub fn stmia_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn ldmia_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     pub fn stmdb_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ARMExecutable` is never used
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type ARMExecutable = fn(&mut CPU, ARMByteCode, memory: &mut GBAMemory) -> CYCLES;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ARMDecodedInstruction` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn arm_nop(&mut self, _instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn arm_multiply(&mut self, instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn arm_multiply_accumulate(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn arm_multiply_long(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn arm_not_implemented(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub 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 `executed_instruction` and `instruction_count` are never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct CPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub executed_instruction: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     instruction_count: usize,
[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:71:16
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub static mut INSTRUCTION_COUNT: usize = 0;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_status` is never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 378 |     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:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub 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:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub 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:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub 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:332:16
[INFO] [stdout]     |
[INFO] [stdout] 331 |     impl CPU {
[INFO] [stdout]     |     -------- method in this implementation
[INFO] [stdout] 332 |         pub fn decode_multiply(&self, instruction: ARMByteCode) -> ARMDecodedInstruction {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/debugger/breakpoints.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TriggeredWatchpoints {
[INFO] [stdout]    |          -------------------- variant in this enum
[INFO] [stdout] 14 |     Address(usize),
[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 `ready_to_render` is never read
[INFO] [stdout]   --> src/graphics/display.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DisplayBuffer {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 22 |     pub buffer: Mutex<[u32; CANVAS_AREA]>,
[INFO] [stdout] 23 |     pub 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:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DisplayContext {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VCOUNTER_FLAG` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(super) const VCOUNTER_FLAG: u16 = 1 << 2;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(super) 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:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(super) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dma_0_address`, `dma_1_address`, `dma_2_address`, and `dma_3_address` are never read
[INFO] [stdout]    --> src/memory/io_handlers.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 529 | pub struct IOBlock {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub dma_0_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 534 |     pub dma_1_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 535 |     pub dma_2_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 536 |     pub dma_3_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | 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:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DMA` is never constructed
[INFO] [stdout]   --> src/memory/memory.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum CPUCallbacks {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     DMA(usize),
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUCallbacks` 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:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum MemoryError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 83 |     NoIODefinition(usize),
[INFO] [stdout] 84 |     ReadError(usize),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 85 |     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: constant `OAM_MIRROR_MASK` is never used
[INFO] [stdout]    --> src/memory/memory.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 | const OAM_MIRROR_MASK: usize = 0x3FF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_region` is never read
[INFO] [stdout]    --> src/memory/memory.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct GBAMemory {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     active_region: 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:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Oam {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn obj_mosaic(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn horizontal_flip(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub 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 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:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BGCnt {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub 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:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct BldY<'a>(pub &'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:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl<'a> BldY<'a> {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 75 |     pub 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:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Dispcnt {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn display_frame_select(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn h_blank_interval_free(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn one_dimensional_character_mapping(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn forced_blank(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub 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:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct EnabledBackgrounds {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WININ` is never constructed
[INFO] [stdout]  --> src/memory/wrappers/window.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct WININ(pub u16);
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/window.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl WININ {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  6 |     pub fn window_0_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn window_0_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn window_0_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn window_0_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn window_0_obj_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn window_0_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn window_1_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn window_1_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn window_1_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn window_1_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn window_1_obj_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn window_1_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `destination`, and `word_count` are never read
[INFO] [stdout]  --> src/memory/wrappers/dma.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DMAControl {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 5 |     source: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     destination: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     word_count: usize
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DmaCNTH` is never constructed
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DmaCNTH(u16);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DestinationAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum SourceAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DMATransferType` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl DmaCNTH {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn dma_repeat(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn gamepak_drq(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn irq_at_end(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn dma_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_dma_transfer` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn handle_dma_transfer(dma_num: usize, memory: &mut GBAMemory) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_cycles_from_region` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn update_cycles_from_region(dma_start_address: usize, dma_destination_address: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_start_addresses` is never used
[INFO] [stdout]    --> src/memory/wrappers/dma.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_start_addresses(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_bit` is never used
[INFO] [stdout]   --> src/utils/bits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn reset_bit(&mut self, bit: u8);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vec` is never used
[INFO] [stdout]   --> src/utils/utils.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn print_vec<T: Display>(vec: &Vec<T>) -> String {
[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 variable: `name`
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:31:48
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub 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: `dma_num`
[INFO] [stdout]   --> src/gba.rs:82:35
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 CPUCallbacks::DMA(dma_num) => {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dispcnt`
[INFO] [stdout]   --> src/graphics/ppu_modes/hblank.rs:51:66
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn update_oam_objects(&mut self, memory: &mut GBAMemory, dispcnt: Dispcnt) {
[INFO] [stdout]    |                                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispcnt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dma_cnt_h`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let dma_cnt_h = DmaCNTH(memory.io_load(dma_io_address_start + 10));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dma_cnt_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::destination_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::destination_address_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DestinationAddressControlMode` is more private than the item `DmaCNTH::source_address_control`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::source_address_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DestinationAddressControlMode` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DMATransferType` is more private than the item `DmaCNTH::dma_transfer_type`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DmaCNTH::dma_transfer_type` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DMATransferType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stmia_execution`, `ldmia_execution`, and `stmdb_execution` are never used
[INFO] [stdout]    --> src/arm7tdmi/arm/data_transfer_instructions.rs:633:12
[INFO] [stdout]     |
[INFO] [stdout] 632 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 633 |     pub fn stmia_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn ldmia_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     pub fn stmdb_execution(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ARMExecutable` is never used
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type ARMExecutable = fn(&mut CPU, ARMByteCode, memory: &mut GBAMemory) -> CYCLES;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ARMDecodedInstruction` is never constructed
[INFO] [stdout]   --> src/arm7tdmi/arm/instructions.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn arm_nop(&mut self, _instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn arm_multiply(&mut self, instruction: ARMByteCode, _memory: &mut GBAMemory) -> CYCLES {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn arm_multiply_accumulate(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn arm_multiply_long(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn arm_not_implemented(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Status {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub 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 `executed_instruction` and `instruction_count` are never read
[INFO] [stdout]   --> src/arm7tdmi/cpu.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct CPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub executed_instruction: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     instruction_count: usize,
[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:71:16
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub static mut INSTRUCTION_COUNT: usize = 0;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_status` is never used
[INFO] [stdout]    --> src/arm7tdmi/cpu.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 378 |     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:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub 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:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub 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:332:16
[INFO] [stdout]     |
[INFO] [stdout] 331 |     impl CPU {
[INFO] [stdout]     |     -------- method in this implementation
[INFO] [stdout] 332 |         pub fn decode_multiply(&self, instruction: ARMByteCode) -> ARMDecodedInstruction {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/debugger/breakpoints.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TriggeredWatchpoints {
[INFO] [stdout]    |          -------------------- variant in this enum
[INFO] [stdout] 14 |     Address(usize),
[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 `ready_to_render` is never read
[INFO] [stdout]   --> src/graphics/display.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DisplayBuffer {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 22 |     pub buffer: Mutex<[u32; CANVAS_AREA]>,
[INFO] [stdout] 23 |     pub 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:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DisplayContext {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub 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:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Layers {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_top_bg_pixel(&self) -> BGPixel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VCOUNTER_FLAG` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(super) const VCOUNTER_FLAG: u16 = 1 << 2;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HBLANK_ENABLE` is never used
[INFO] [stdout]   --> src/graphics/ppu.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(super) const HBLANK_ENABLE: u16 = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dma_0_address`, `dma_1_address`, `dma_2_address`, and `dma_3_address` are never read
[INFO] [stdout]    --> src/memory/io_handlers.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 529 | pub struct IOBlock {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub dma_0_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 534 |     pub dma_1_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 535 |     pub dma_2_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 536 |     pub dma_3_address: DMAControl,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IORAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/memory.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | 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:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const OAM_SIZE: usize = 0x400;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DMA` is never constructed
[INFO] [stdout]   --> src/memory/memory.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum CPUCallbacks {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     DMA(usize),
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CPUCallbacks` 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:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum MemoryError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 83 |     NoIODefinition(usize),
[INFO] [stdout] 84 |     ReadError(usize),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 85 |     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: constant `OAM_MIRROR_MASK` is never used
[INFO] [stdout]    --> src/memory/memory.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 | const OAM_MIRROR_MASK: usize = 0x3FF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active_region` is never read
[INFO] [stdout]    --> src/memory/memory.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct GBAMemory {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     active_region: 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:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Oam {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn obj_mosaic(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn horizontal_flip(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub 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 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:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BGCnt {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub 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:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct BldY<'a>(pub &'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:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl<'a> BldY<'a> {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 75 |     pub 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:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Dispcnt {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn display_frame_select(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn h_blank_interval_free(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn one_dimensional_character_mapping(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub 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:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct WININ(pub u16);
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/window.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl WININ {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  6 |     pub fn window_0_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn window_0_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn window_0_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn window_0_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn window_0_obj_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn window_0_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn window_1_bg0_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn window_1_bg1_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn window_1_bg2_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn window_1_bg3_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn window_1_obj_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn window_1_color_special_effects_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `destination`, and `word_count` are never read
[INFO] [stdout]  --> src/memory/wrappers/dma.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DMAControl {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 5 |     source: usize,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     destination: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 7 |     word_count: usize
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DmaCNTH` is never constructed
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DmaCNTH(u16);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DestinationAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum DestinationAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceAddressControlMode` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum SourceAddressControlMode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DMATransferType` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum DMATransferType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl DmaCNTH {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 32 |     pub fn destination_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn source_address_control(&self) -> DestinationAddressControlMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn dma_repeat(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn dma_transfer_type(&self) -> DMATransferType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn gamepak_drq(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn irq_at_end(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn dma_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_dma_transfer` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn handle_dma_transfer(dma_num: usize, memory: &mut GBAMemory) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_cycles_from_region` is never used
[INFO] [stdout]   --> src/memory/wrappers/dma.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn update_cycles_from_region(dma_start_address: usize, dma_destination_address: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_start_addresses` is never used
[INFO] [stdout]    --> src/memory/wrappers/dma.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn get_start_addresses(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_bit` is never used
[INFO] [stdout]   --> src/utils/bits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Bits: PrimInt + Shr<u8> + BitAnd + Eq {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn reset_bit(&mut self, bit: u8);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vec` is never used
[INFO] [stdout]   --> src/utils/utils.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn print_vec<T: Display>(vec: &Vec<T>) -> String {
[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] running `Command { std: "docker" "inspect" "eadf66f4cd3bde8c150abc908da4335b9ec850da161f266e84541ac7f4b2888b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eadf66f4cd3bde8c150abc908da4335b9ec850da161f266e84541ac7f4b2888b", kill_on_drop: false }`
[INFO] [stdout] eadf66f4cd3bde8c150abc908da4335b9ec850da161f266e84541ac7f4b2888b
