[INFO] cloning repository https://github.com/Kris-Rubrecht17/gemulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kris-Rubrecht17/gemulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 83b384793f62241f2dcde89369299328cf973f95
[INFO] testing Kris-Rubrecht17/gemulator against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Kris-Rubrecht17/gemulator
[INFO] finished tweaking git repo https://github.com/Kris-Rubrecht17/gemulator
[INFO] tweaked toml for git repo https://github.com/Kris-Rubrecht17/gemulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kris-Rubrecht17/gemulator on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kris-Rubrecht17/gemulator 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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8d7239e31a49ccd9fcb431c90d58cc99032baa5313fce666a979588fd0a93dcc
[INFO] running `Command { std: "docker" "start" "-a" "8d7239e31a49ccd9fcb431c90d58cc99032baa5313fce666a979588fd0a93dcc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8d7239e31a49ccd9fcb431c90d58cc99032baa5313fce666a979588fd0a93dcc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d7239e31a49ccd9fcb431c90d58cc99032baa5313fce666a979588fd0a93dcc", kill_on_drop: false }`
[INFO] [stdout] 8d7239e31a49ccd9fcb431c90d58cc99032baa5313fce666a979588fd0a93dcc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 48e85a4dec46b07462fd9250e985a318812820204ec53c8e302120b8ce155e1a
[INFO] running `Command { std: "docker" "start" "-a" "48e85a4dec46b07462fd9250e985a318812820204ec53c8e302120b8ce155e1a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling gem_sdl v0.1.0 (/opt/rustwide/workdir/gem_sdl)
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling proc_macros v0.1.0 (/opt/rustwide/workdir/gem_gba/proc_macros)
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[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: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gem_gba v0.1.0 (/opt/rustwide/workdir/gem_gba)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeHeader` is never constructed
[INFO] [stdout]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn title_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_cart` is never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.33s
[INFO] running `Command { std: "docker" "inspect" "48e85a4dec46b07462fd9250e985a318812820204ec53c8e302120b8ce155e1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48e85a4dec46b07462fd9250e985a318812820204ec53c8e302120b8ce155e1a", kill_on_drop: false }`
[INFO] [stdout] 48e85a4dec46b07462fd9250e985a318812820204ec53c8e302120b8ce155e1a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4099ed69b1fad41a59b1ac1ee8a5cd353fd16fb72460e71fa1a0a5d409d16853
[INFO] running `Command { std: "docker" "start" "-a" "4099ed69b1fad41a59b1ac1ee8a5cd353fd16fb72460e71fa1a0a5d409d16853", kill_on_drop: false }`
[INFO] [stderr]    Compiling gem_sdl v0.1.0 (/opt/rustwide/workdir/gem_sdl)
[INFO] [stderr]    Compiling proc_macros v0.1.0 (/opt/rustwide/workdir/gem_gba/proc_macros)
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[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: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[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: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gem_gba v0.1.0 (/opt/rustwide/workdir/gem_gba)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeHeader` is never constructed
[INFO] [stdout]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn title_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_cart` is never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `logo`, `title_short`, `maker`, and `licensee` are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.43s
[INFO] running `Command { std: "docker" "inspect" "4099ed69b1fad41a59b1ac1ee8a5cd353fd16fb72460e71fa1a0a5d409d16853", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4099ed69b1fad41a59b1ac1ee8a5cd353fd16fb72460e71fa1a0a5d409d16853", kill_on_drop: false }`
[INFO] [stdout] 4099ed69b1fad41a59b1ac1ee8a5cd353fd16fb72460e71fa1a0a5d409d16853
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a7002e58b1fca083433661ad115c3b95a6e5ba55bd1146937f1d0fcf16784ba7
[INFO] running `Command { std: "docker" "start" "-a" "a7002e58b1fca083433661ad115c3b95a6e5ba55bd1146937f1d0fcf16784ba7", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Attribute`
[INFO] [stderr]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     Attribute,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToTokens`
[INFO] [stderr]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     ToTokens,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `parse_macro_input`
[INFO] [stderr]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     parse_macro_input,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `proc_macros` (lib) generated 3 warnings (run `cargo fix --lib -p proc_macros` to apply 3 suggestions)
[INFO] [stderr] warning: `proc_macros` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stderr]     |
[INFO] [stderr] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stderr]     |                                              ----^^^^^
[INFO] [stderr]     |                                              |
[INFO] [stderr]     |                                              help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stderr]     |
[INFO] [stderr] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stderr]     |
[INFO] [stderr] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stderr]     |
[INFO] [stderr] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stderr]     |
[INFO] [stderr] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stderr]     |
[INFO] [stderr] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stderr]     |
[INFO] [stderr] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stderr]     |
[INFO] [stderr] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stderr]     |
[INFO] [stderr] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stderr]     |
[INFO] [stderr] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stderr]     |
[INFO] [stderr] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stderr]     |
[INFO] [stderr] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stderr]     |
[INFO] [stderr] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stderr]     |
[INFO] [stderr] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stderr]     |
[INFO] [stderr] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stderr]     |
[INFO] [stderr] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stderr]     |
[INFO] [stderr] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stderr]     |
[INFO] [stderr] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stderr]     |
[INFO] [stderr] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stderr]     |
[INFO] [stderr] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stderr]     |
[INFO] [stderr] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stderr]     |
[INFO] [stderr] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stderr]     |
[INFO] [stderr] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stderr]     |
[INFO] [stderr] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stderr]     |
[INFO] [stderr] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stderr]     |
[INFO] [stderr] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stderr]     |
[INFO] [stderr] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stderr]     |
[INFO] [stderr] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stderr]     |
[INFO] [stderr] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stderr]     |
[INFO] [stderr] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stderr]     |
[INFO] [stderr] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stderr]     |
[INFO] [stderr] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stderr]     |
[INFO] [stderr] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stderr]     |
[INFO] [stderr] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stderr]     |
[INFO] [stderr] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stderr]     |
[INFO] [stderr] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stderr]     |
[INFO] [stderr] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stderr]     |
[INFO] [stderr] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stderr]     |
[INFO] [stderr] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stderr]     |
[INFO] [stderr] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stderr]     |
[INFO] [stderr] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stderr]     |
[INFO] [stderr] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stderr]     |
[INFO] [stderr] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stderr]     |
[INFO] [stderr] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stderr]     |
[INFO] [stderr] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cpu`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stderr]     |
[INFO] [stderr] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CircleBuffer` is never constructed
[INFO] [stderr]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct CircleBuffer {
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stderr]     |
[INFO] [stderr]  10 | impl CircleBuffer {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  23 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `GBAEventKind` is never used
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stderr]    |                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `global_cycles` is never read
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stderr]    |                   -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 93 |     pub(crate) global_cycles: u64,
[INFO] [stderr]    |                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `current_time` and `global_time` are never used
[INFO] [stderr]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stderr]     | ------------------------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Envelope` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub struct Envelope {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SquareControl` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct SquareControl {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Sweep` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct Sweep {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SquareChannel` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct SquareChannel {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: union `WaveData` is never used
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub union WaveData {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WaveChannel` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct WaveChannel {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stderr]     |
[INFO] [stderr]  91 | impl WaveChannel {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NoiseChannel` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct NoiseChannel {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StereoSample` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | pub struct StereoSample {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AudioBuffer` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub struct AudioBuffer {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl AudioBuffer {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn available(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `APU` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub struct APU {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CartridgeHeader` is never constructed
[INFO] [stderr]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stderr]    | ---------------------------------- methods in this implementation
[INFO] [stderr] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn title_str(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RomOnly` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_cart` is never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JOYP` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stderr]   |
[INFO] [stderr] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stderr]   |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIV` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stderr]   |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TIMA` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stderr]   |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TMA` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stderr]   |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR10` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR11` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR12` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR13` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR14` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR21` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR22` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR23` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR24` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR30` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR31` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR32` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR33` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR34` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR41` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR42` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR43` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR44` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR50` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR51` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR52` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stderr]    |
[INFO] [stderr] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_2` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_3` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_4` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_5` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_6` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_7` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stderr]    |
[INFO] [stderr] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_8` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stderr]    |
[INFO] [stderr] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_9` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_A` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_B` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_C` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_D` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_E` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_F` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stderr]    |
[INFO] [stderr] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STAT` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LYC` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DMA` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BGP` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stderr]    |
[INFO] [stderr] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OBP0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OBP1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stderr]    |
[INFO] [stderr] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KEY0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KEY1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stderr]    |
[INFO] [stderr] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VBK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BANK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stderr]    |
[INFO] [stderr] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA2` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stderr]    |
[INFO] [stderr] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA3` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA4` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stderr]    |
[INFO] [stderr] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA5` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RP` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub const RP: u16 = 0x56;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BCPS` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stderr]    |
[INFO] [stderr] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BCPD` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OCPS` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stderr]    |
[INFO] [stderr] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OCPD` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stderr]    |
[INFO] [stderr] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OPRI` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SVBK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSWX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stderr]    |
[INFO] [stderr] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSWY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stderr]    |
[INFO] [stderr] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSW` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNK75` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PCM12` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PCM34` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stderr]    |
[INFO] [stderr] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stderr]    |
[INFO] [stderr] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `af` is never used
[INFO] [stderr]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | impl SM83CPU {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn af(&self) -> u16 {
[INFO] [stderr]     |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `tma` is never read
[INFO] [stderr]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct Timer {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub tma: u8,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout] running 2 tests
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: methods `logo`, `title_short`, `maker`, and `licensee` are never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/header.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stderr]    | ---------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gem_gba` (lib) generated 154 warnings (run `cargo fix --lib -p gem_gba` to apply 48 suggestions)
[INFO] [stderr] warning: `gem_gba` (lib test) generated 151 warnings (150 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gem_gba-d572416d7a3e7a19)
[INFO] [stdout] test tests::instr_test_01_special ... FAILED
[INFO] [stdout] test gb::cartridge::header::cart_header_test::simple_header_test ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::instr_test_01_special stdout ----
[INFO] [stdout] Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] 
[INFO] [stdout] ---- gb::cartridge::header::cart_header_test::simple_header_test stdout ----
[INFO] [stdout] "/opt/rustwide/workdir/gem_gba/test_roms/cpu_instrs/individual/01-special.gb"
[INFO] [stdout] 
[INFO] [stdout] thread 'gb::cartridge::header::cart_header_test::simple_header_test' (25) panicked at gem_gba/src/gb/cartridge/header.rs:76:39:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x654c280473a2 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x654c280473a2 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x654c280473a2 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x654c280473a2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x654c2805748a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x654c2805748a - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x654c28015fa6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x654c28015fa6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x654c28026829 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x654c28026829 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x654c280266c1 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x654c27feac8e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x654c27feac8e - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x654c28026aa2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x654c28026aa2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x654c280268e8 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x654c28021e79 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x654c2800addd - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x654c2805e83c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x654c2805e0f2 - core::result::unwrap_failed::hf2d1f30a3ac850fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x654c27fcb75f - core::result::Result<T,E>::unwrap::h5586bcf74421e02e
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x654c27fcb75f - gem_gba::gb::cartridge::header::cart_header_test::simple_header_test::hca04c955dcb96db5
[INFO] [stdout]                                at /opt/rustwide/workdir/gem_gba/src/gb/cartridge/header.rs:76:39
[INFO] [stdout]   22:     0x654c27fcba07 - gem_gba::gb::cartridge::header::cart_header_test::simple_header_test::{{closure}}::h51d2d0b4e26fabf2
[INFO] [stdout]                                at /opt/rustwide/workdir/gem_gba/src/gb/cartridge/header.rs:71:28
[INFO] [stdout]   23:     0x654c27fc6c46 - core::ops::function::FnOnce::call_once::ha86c533c47353cc1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x654c27feaa4b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x654c27feaa4b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x654c27ffe45a - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x654c27ffe45a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x654c27ffe45a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x654c27ffe45a - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x654c27ffe45a - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x654c27ffe45a - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x654c27ffe45a - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x654c27fd88b4 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x654c27fd88b4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x654c27fdc252 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x654c27fdc252 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x654c27fdc252 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x654c27fdc252 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x654c27fdc252 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x654c27fdc252 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x654c27fdc252 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x654c2801d10f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x654c2801d10f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7a1315b0eaa4 - <unknown>
[INFO] [stdout]   45:     0x7a1315b9ba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     gb::cartridge::header::cart_header_test::simple_header_test
[INFO] [stdout]     tests::instr_test_01_special
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p gem_gba --lib`
[INFO] running `Command { std: "docker" "inspect" "a7002e58b1fca083433661ad115c3b95a6e5ba55bd1146937f1d0fcf16784ba7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7002e58b1fca083433661ad115c3b95a6e5ba55bd1146937f1d0fcf16784ba7", kill_on_drop: false }`
[INFO] [stdout] a7002e58b1fca083433661ad115c3b95a6e5ba55bd1146937f1d0fcf16784ba7
