[INFO] cloning repository https://github.com/pluswing/famicon_emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pluswing/famicon_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpluswing%2Ffamicon_emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpluswing%2Ffamicon_emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5da452130e67163604fb79c5e0833daef2141c1b
[INFO] checking pluswing/famicon_emulator against try#54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47 for pr-153041
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpluswing%2Ffamicon_emulator" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pluswing/famicon_emulator
[INFO] finished tweaking git repo https://github.com/pluswing/famicon_emulator
[INFO] tweaked toml for git repo https://github.com/pluswing/famicon_emulator written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pluswing/famicon_emulator on toolchain 54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pluswing/famicon_emulator 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" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded is-terminal v0.4.7
[INFO] [stderr]   Downloaded bitflags v2.1.0
[INFO] [stderr]   Downloaded log v0.4.18
[INFO] [stderr]   Downloaded sdl2 v0.35.2
[INFO] [stderr]   Downloaded regex v1.8.3
[INFO] [stderr]   Downloaded regex-syntax v0.7.2
[INFO] [stderr]   Downloaded rustix v0.37.19
[INFO] [stderr]   Downloaded libc v0.2.144
[INFO] [stderr]   Downloaded linux-raw-sys v0.3.8
[INFO] [stderr]   Downloaded sdl2-sys v0.35.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2e45696315ff9cb1d4b1df5139c4d6fa406c7602a521a9b79c45f6ff7bee4e5a
[INFO] running `Command { std: "docker" "start" "-a" "2e45696315ff9cb1d4b1df5139c4d6fa406c7602a521a9b79c45f6ff7bee4e5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e45696315ff9cb1d4b1df5139c4d6fa406c7602a521a9b79c45f6ff7bee4e5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e45696315ff9cb1d4b1df5139c4d6fa406c7602a521a9b79c45f6ff7bee4e5a", kill_on_drop: false }`
[INFO] [stdout] 2e45696315ff9cb1d4b1df5139c4d6fa406c7602a521a9b79c45f6ff7bee4e5a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54bb9bb1bbe87f59b5a2e9afea4c8cedcf5e0b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 575863bd1fc58fc2ffba6430ed7ef383f6ade5d7b9a0bdcc61e2e99b1f1e43f3
[INFO] running `Command { std: "docker" "start" "-a" "575863bd1fc58fc2ffba6430ed7ef383f6ade5d7b9a0bdcc61e2e99b1f1e43f3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling rustix v0.37.19
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling log v0.4.18
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]     Checking aho-corasick v1.0.1
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking regex-syntax v0.7.2
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking bitflags v2.1.0
[INFO] [stderr]     Checking regex v1.8.3
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking famicon_emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]   --> src/sound_test.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let (sender, receiver) = channel::<TriangleNote>();
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]   --> src/sound_test.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let (sender, receiver) = channel::<TriangleNote>();
[INFO] [stdout]    |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `info`, and `trace`
[INFO] [stdout]  --> src/apu.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info, trace};
[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 imports: `Level`, `info`, and `log_enabled`
[INFO] [stdout]  --> src/bus.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, log_enabled, trace, warn, Level};
[INFO] [stdout]   |                         ^^^^  ^^^^^^^^^^^               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/cpu.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info, trace};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `Read`, and `self`
[INFO] [stdout]  --> src/mapper.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufReader, Read, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/mapper.rs:500:26
[INFO] [stdout]     |
[INFO] [stdout] 500 |         self.rom.prg_rom[(addr as usize - 0x8000)]
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 500 -         self.rom.prg_rom[(addr as usize - 0x8000)]
[INFO] [stdout] 500 +         self.rom.prg_rom[addr as usize - 0x8000 ]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::Mutex`
[INFO] [stdout]  --> src/opscodes.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, sync::Mutex};
[INFO] [stdout]   |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/ppu.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, info, trace};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::palette`
[INFO] [stdout]  --> src/ppu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::palette;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self` and `sprite_palette`
[INFO] [stdout]  --> src/ppu.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::render::{self, render, sprite_palette};
[INFO] [stdout]   |                     ^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `info`
[INFO] [stdout]  --> src/render.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info};
[INFO] [stdout]   |           ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alter_ego_rom` and `test_rom`
[INFO] [stdout]   --> src/main.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use cartridge::test::{alter_ego_rom, mario_rom, test_rom};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `show_tile`
[INFO] [stdout]   --> src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | use frame::{show_tile, Frame};
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `trace`
[INFO] [stdout]   --> src/main.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, info, log_enabled, trace, Level};
[INFO] [stdout]    |           ^^^^^                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mapper0`, `Mapper1`, and `Mapper2`
[INFO] [stdout]   --> src/main.rs:24:37
[INFO] [stdout]    |
[INFO] [stdout] 24 | use mapper::{create_mapper, Mapper, Mapper0, Mapper1, Mapper2};
[INFO] [stdout]    |                                     ^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `info`, and `trace`
[INFO] [stdout]  --> src/apu.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info, trace};
[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 imports: `Level`, `info`, and `log_enabled`
[INFO] [stdout]  --> src/bus.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, error, info, log_enabled, trace, warn, Level};
[INFO] [stdout]   |                         ^^^^  ^^^^^^^^^^^               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/cpu.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info, trace};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufReader`, `Read`, and `self`
[INFO] [stdout]  --> src/mapper.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufReader, Read, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/mapper.rs:500:26
[INFO] [stdout]     |
[INFO] [stdout] 500 |         self.rom.prg_rom[(addr as usize - 0x8000)]
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 500 -         self.rom.prg_rom[(addr as usize - 0x8000)]
[INFO] [stdout] 500 +         self.rom.prg_rom[addr as usize - 0x8000 ]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::Mutex`
[INFO] [stdout]  --> src/opscodes.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, sync::Mutex};
[INFO] [stdout]   |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/ppu.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, info, trace};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::palette`
[INFO] [stdout]  --> src/ppu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::palette;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self` and `sprite_palette`
[INFO] [stdout]  --> src/ppu.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::render::{self, render, sprite_palette};
[INFO] [stdout]   |                     ^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `info`
[INFO] [stdout]  --> src/render.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, info};
[INFO] [stdout]   |           ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alter_ego_rom` and `test_rom`
[INFO] [stdout]   --> src/main.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | use cartridge::test::{alter_ego_rom, mario_rom, test_rom};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `show_tile`
[INFO] [stdout]   --> src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 | use frame::{show_tile, Frame};
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `trace`
[INFO] [stdout]   --> src/main.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, info, log_enabled, trace, Level};
[INFO] [stdout]    |           ^^^^^                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mapper0`, `Mapper1`, and `Mapper2`
[INFO] [stdout]   --> src/main.rs:24:37
[INFO] [stdout]    |
[INFO] [stdout] 24 | use mapper::{create_mapper, Mapper, Mapper0, Mapper1, Mapper2};
[INFO] [stdout]    |                                     ^^^^^^^  ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 3 arguments, but it takes 1 argument
[INFO] [stdout]     --> src/cpu.rs:1171:23
[INFO] [stdout]      |
[INFO] [stdout] 1171 |         let mut bus = Bus::new(test_rom(), move |ppu: &NesPPU| {});
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^-------------------^^^^
[INFO] [stdout]      |                       |                    |
[INFO] [stdout]      |                       |                    takes 1 argument
[INFO] [stdout]      |                       expected closure that takes 3 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/cpu.rs:1171:32
[INFO] [stdout]      |
[INFO] [stdout] 1171 |         let mut bus = Bus::new(test_rom(), move |ppu: &NesPPU| {});
[INFO] [stdout]      |                       -------- ^^^^^^^^^^ expected `NesAPU`, found `Rom`
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/bus.rs:22:12
[INFO] [stdout]      |
[INFO] [stdout]   22 |     pub fn new<'call, F>(apu: NesAPU, gameloop_callback: F) -> Bus<'call>
[INFO] [stdout]      |            ^^^           -----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 3 arguments, but it takes 1 argument
[INFO] [stdout]     --> src/cpu.rs:1205:23
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         let mut bus = Bus::new(test_rom(), move |ppu: &NesPPU| {});
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^-------------------^^^^
[INFO] [stdout]      |                       |                    |
[INFO] [stdout]      |                       |                    takes 1 argument
[INFO] [stdout]      |                       expected closure that takes 3 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/cpu.rs:1205:32
[INFO] [stdout]      |
[INFO] [stdout] 1205 |         let mut bus = Bus::new(test_rom(), move |ppu: &NesPPU| {});
[INFO] [stdout]      |                       -------- ^^^^^^^^^^ expected `NesAPU`, found `Rom`
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/bus.rs:22:12
[INFO] [stdout]      |
[INFO] [stdout]   22 |     pub fn new<'call, F>(apu: NesAPU, gameloop_callback: F) -> Bus<'call>
[INFO] [stdout]      |            ^^^           -----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mapper::Mapper`
[INFO] [stdout]  --> src/bus.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::mapper::Mapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mapper::Mapper`
[INFO] [stdout]  --> src/ppu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mapper::Mapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mapper::Mapper`
[INFO] [stdout]  --> src/bus.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::mapper::Mapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mapper::Mapper`
[INFO] [stdout]  --> src/ppu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mapper::Mapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/cpu.rs:228:32
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn load_and_run(&mut self, program: Vec<u8>) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:328:27
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn anc(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:331:27
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn arr(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:334:27
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn asr(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:337:27
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn lxa(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:340:27
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn sha(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:363:27
[INFO] [stdout]     |
[INFO] [stdout] 363 |     pub fn jam(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:461:27
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn txs(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:465:27
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn tsx(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:470:27
[INFO] [stdout]     |
[INFO] [stdout] 470 |     pub fn tya(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:475:27
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn tay(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:480:27
[INFO] [stdout]     |
[INFO] [stdout] 480 |     pub fn txa(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:485:27
[INFO] [stdout]     |
[INFO] [stdout] 485 |     pub fn tax(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:505:27
[INFO] [stdout]     |
[INFO] [stdout] 505 |     pub fn rti(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |     pub fn plp(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:515:27
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn php(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:519:27
[INFO] [stdout]     |
[INFO] [stdout] 519 |     pub fn pla(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:524:27
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn pha(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:528:27
[INFO] [stdout]     |
[INFO] [stdout] 528 |     pub fn nop(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:553:27
[INFO] [stdout]     |
[INFO] [stdout] 553 |     pub fn rts(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:600:27
[INFO] [stdout]     |
[INFO] [stdout] 600 |     pub fn iny(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:605:27
[INFO] [stdout]     |
[INFO] [stdout] 605 |     pub fn inx(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:617:27
[INFO] [stdout]     |
[INFO] [stdout] 617 |     pub fn dey(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:622:27
[INFO] [stdout]     |
[INFO] [stdout] 622 |     pub fn dex(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:658:27
[INFO] [stdout]     |
[INFO] [stdout] 658 |     pub fn clv(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:662:27
[INFO] [stdout]     |
[INFO] [stdout] 662 |     pub fn sei(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:666:27
[INFO] [stdout]     |
[INFO] [stdout] 666 |     pub fn cli(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:670:27
[INFO] [stdout]     |
[INFO] [stdout] 670 |     pub fn sed(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:674:27
[INFO] [stdout]     |
[INFO] [stdout] 674 |     pub fn cld(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:678:27
[INFO] [stdout]     |
[INFO] [stdout] 678 |     pub fn sec(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:682:27
[INFO] [stdout]     |
[INFO] [stdout] 682 |     pub fn clc(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:721:27
[INFO] [stdout]     |
[INFO] [stdout] 721 |     pub fn brk(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/cpu.rs:228:32
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn load_and_run(&mut self, program: Vec<u8>) {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:328:27
[INFO] [stdout]     |
[INFO] [stdout] 328 |     pub fn anc(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:331:27
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub fn arr(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:334:27
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn asr(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:337:27
[INFO] [stdout]     |
[INFO] [stdout] 337 |     pub fn lxa(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:340:27
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn sha(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:363:27
[INFO] [stdout]     |
[INFO] [stdout] 363 |     pub fn jam(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:461:27
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn txs(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:465:27
[INFO] [stdout]     |
[INFO] [stdout] 465 |     pub fn tsx(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:470:27
[INFO] [stdout]     |
[INFO] [stdout] 470 |     pub fn tya(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:475:27
[INFO] [stdout]     |
[INFO] [stdout] 475 |     pub fn tay(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:480:27
[INFO] [stdout]     |
[INFO] [stdout] 480 |     pub fn txa(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:485:27
[INFO] [stdout]     |
[INFO] [stdout] 485 |     pub fn tax(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:505:27
[INFO] [stdout]     |
[INFO] [stdout] 505 |     pub fn rti(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |     pub fn plp(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:515:27
[INFO] [stdout]     |
[INFO] [stdout] 515 |     pub fn php(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:519:27
[INFO] [stdout]     |
[INFO] [stdout] 519 |     pub fn pla(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:524:27
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub fn pha(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:528:27
[INFO] [stdout]     |
[INFO] [stdout] 528 |     pub fn nop(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:553:27
[INFO] [stdout]     |
[INFO] [stdout] 553 |     pub fn rts(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:600:27
[INFO] [stdout]     |
[INFO] [stdout] 600 |     pub fn iny(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:605:27
[INFO] [stdout]     |
[INFO] [stdout] 605 |     pub fn inx(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:617:27
[INFO] [stdout]     |
[INFO] [stdout] 617 |     pub fn dey(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:622:27
[INFO] [stdout]     |
[INFO] [stdout] 622 |     pub fn dex(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:658:27
[INFO] [stdout]     |
[INFO] [stdout] 658 |     pub fn clv(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:662:27
[INFO] [stdout]     |
[INFO] [stdout] 662 |     pub fn sei(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:666:27
[INFO] [stdout]     |
[INFO] [stdout] 666 |     pub fn cli(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:670:27
[INFO] [stdout]     |
[INFO] [stdout] 670 |     pub fn sed(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:674:27
[INFO] [stdout]     |
[INFO] [stdout] 674 |     pub fn cld(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:678:27
[INFO] [stdout]     |
[INFO] [stdout] 678 |     pub fn sec(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:682:27
[INFO] [stdout]     |
[INFO] [stdout] 682 |     pub fn clc(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/cpu.rs:721:27
[INFO] [stdout]     |
[INFO] [stdout] 721 |     pub fn brk(&mut self, mode: &AddressingMode) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn write(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn write(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:61:33
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper.rs:61:44
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:62:28
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/mapper.rs:65:32
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:74:33
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/mapper.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]   --> src/mapper.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]   --> src/mapper.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:229:32
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:231:33
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/mapper.rs:231:44
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:233:28
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:233:45
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:396:28
[INFO] [stdout]     |
[INFO] [stdout] 396 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:396:45
[INFO] [stdout]     |
[INFO] [stdout] 396 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |     fn write(&mut self, addr: u16, data: u8) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:430:33
[INFO] [stdout]     |
[INFO] [stdout] 430 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mapper.rs:430:44
[INFO] [stdout]     |
[INFO] [stdout] 430 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:434:32
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:459:28
[INFO] [stdout]     |
[INFO] [stdout] 459 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:459:45
[INFO] [stdout]     |
[INFO] [stdout] 459 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:486:25
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn write(&mut self, addr: u16, data: u8) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:493:33
[INFO] [stdout]     |
[INFO] [stdout] 493 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mapper.rs:493:44
[INFO] [stdout]     |
[INFO] [stdout] 493 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:494:28
[INFO] [stdout]     |
[INFO] [stdout] 494 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:497:32
[INFO] [stdout]     |
[INFO] [stdout] 497 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:511:28
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:511:45
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn write(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn write(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:61:33
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper.rs:61:44
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:62:28
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/mapper.rs:65:32
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/mapper.rs:74:33
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/mapper.rs:74:44
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]   --> src/mapper.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]   --> src/mapper.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:229:32
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:231:33
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/mapper.rs:231:44
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn write_chr_rom(&mut self, addr: u16, value: u8) {}
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:233:28
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:233:45
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:396:28
[INFO] [stdout]     |
[INFO] [stdout] 396 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:396:45
[INFO] [stdout]     |
[INFO] [stdout] 396 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |     fn write(&mut self, addr: u16, data: u8) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:430:33
[INFO] [stdout]     |
[INFO] [stdout] 430 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mapper.rs:430:44
[INFO] [stdout]     |
[INFO] [stdout] 430 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:431:28
[INFO] [stdout]     |
[INFO] [stdout] 431 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:434:32
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:459:28
[INFO] [stdout]     |
[INFO] [stdout] 459 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ppu.rs:374:25
[INFO] [stdout]     |
[INFO] [stdout] 374 |             'ololo: for x in (0..=7).rev() {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:459:45
[INFO] [stdout]     |
[INFO] [stdout] 459 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:486:25
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn write(&mut self, addr: u16, data: u8) {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:493:33
[INFO] [stdout]     |
[INFO] [stdout] 493 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/mapper.rs:493:44
[INFO] [stdout]     |
[INFO] [stdout] 493 |     fn write_prg_ram(&mut self, addr: u16, data: u8) {}
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/mapper.rs:494:28
[INFO] [stdout]     |
[INFO] [stdout] 494 |     fn read_prg_ram(&self, addr: u16) -> u8 {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]    --> src/mapper.rs:497:32
[INFO] [stdout]     |
[INFO] [stdout] 497 |     fn load_prg_ram(&mut self, raw: &Vec<u8>) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scanline`
[INFO] [stdout]    --> src/mapper.rs:511:28
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scanline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_background`
[INFO] [stdout]    --> src/mapper.rs:511:45
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn scanline(&mut self, scanline: usize, show_background: bool) {}
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_background`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ppu.rs:374:25
[INFO] [stdout]     |
[INFO] [stdout] 374 |             'ololo: for x in (0..=7).rev() {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ppu`
[INFO] [stdout]    --> src/main.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |         move |ppu: &NesPPU, joypad1: &mut Joypad, frame: &Frame| {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_ppu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let rom = load_rom("rom/Dragon Quest (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let rom = load_rom("rom/Yoshi no Tamago (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let rom = load_rom("rom/Super Mario Bros. 3 (Japan) (Rev 1).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let rom = load_rom("rom/Rockman 2 - Dr. Wily no Nazo (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let rom = mario_rom();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let rom = load_rom("rom/Final Fantasy III (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let rom = load_rom("rom/Dragon Quest II - Akuryou no Kamigami (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let rom = load_rom("rom/Dragon Quest III - Soshite Densetsu e... (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let rom = load_rom("rom/Dragon Quest IV - Michibikareshi Monotachi (Japan) (Rev 1).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ppu`
[INFO] [stdout]    --> src/main.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |         move |ppu: &NesPPU, joypad1: &mut Joypad, frame: &Frame| {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_ppu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let rom = load_rom("rom/Dragon Quest (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let rom = load_rom("rom/Yoshi no Tamago (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let rom = load_rom("rom/Super Mario Bros. 3 (Japan) (Rev 1).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let rom = load_rom("rom/Rockman 2 - Dr. Wily no Nazo (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let rom = mario_rom();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let rom = load_rom("rom/Final Fantasy III (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let rom = load_rom("rom/Dragon Quest II - Akuryou no Kamigami (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let rom = load_rom("rom/Dragon Quest III - Soshite Densetsu e... (Japan).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom`
[INFO] [stdout]   --> src/main.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let rom = load_rom("rom/Dragon Quest IV - Michibikareshi Monotachi (Japan) (Rev 1).nes");
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0593.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]    --> src/apu/dmc.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self.delta_counter = self.delta_counter;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_user_input` is never used
[INFO] [stdout]    --> src/main.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn handle_user_input(cpu: &mut CPU, event_pump: &mut EventPump) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color` is never used
[INFO] [stdout]    --> src/main.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn color(byte: u8) -> Color {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_screen_state` is never used
[INFO] [stdout]    --> src/main.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn read_screen_state(cpu: &mut CPU, frame: &mut [u8; 32 * 3 * 32]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ch1_device`, `ch2_device`, `ch3_device`, `ch4_device`, and `ch5_device` are never read
[INFO] [stdout]   --> src/apu.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct NesAPU {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     ch1_device: AudioDevice<SquareWave>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     ch2_device: AudioDevice<SquareWave>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     ch3_device: AudioDevice<TriangleWave>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     ch4_device: AudioDevice<NoiseWave>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     ch5_device: AudioDevice<DmcWave>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `joypad2` is never read
[INFO] [stdout]   --> src/bus.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Bus<'call> {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     joypad2: Joypad,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PPU_REGISTERS` is never used
[INFO] [stdout]   --> src/bus.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | const PPU_REGISTERS: u16 = 0x2000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snake_rom` is never used
[INFO] [stdout]   --> src/cartridge.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn snake_rom() -> Rom {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rom` is never used
[INFO] [stdout]   --> src/cartridge.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn test_rom() -> Rom {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alter_ego_rom` is never used
[INFO] [stdout]   --> src/cartridge.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn alter_ego_rom() -> Rom {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NoneAddressing` is never constructed
[INFO] [stdout]   --> src/cpu.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum AddressingMode {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     NoneAddressing,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AddressingMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `code` is never read
[INFO] [stdout]   --> src/cpu.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct OpCode {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 37 |     pub code: u8,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mem_write_u16`, `load_and_run`, `load`, and `run` are never used
[INFO] [stdout]    --> src/cpu.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl<'a> CPU<'a> {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn mem_write_u16(&mut self, pos: u16, data: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn load_and_run(&mut self, program: Vec<u8>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn load(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tile` is never used
[INFO] [stdout]   --> src/frame.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn show_tile(chr_rom: &Vec<u8>, bank: usize, tile_n: usize) -> Frame {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/apu/dmc.rs:148:41
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   self.data = MAPPER.read_prg_rom(self.sample_addr);
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/bus.rs:117:41
[INFO] [stdout]     |
[INFO] [stdout] 117 |             0x6000..=0x7FFF => unsafe { MAPPER.read_prg_ram(addr) },
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/bus.rs:118:47
[INFO] [stdout]     |
[INFO] [stdout] 118 |             PRG_ROM..=PRG_ROM_END => unsafe { MAPPER.read_prg_rom(addr) },
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/bus.rs:198:41
[INFO] [stdout]     |
[INFO] [stdout] 198 |             0x6000..=0x7FFF => unsafe { MAPPER.write_prg_ram(addr, data) },
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/bus.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 unsafe { MAPPER.write(addr, data) };
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/cpu.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 |             } else if unsafe { MAPPER.is_irq() } {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/ppu.rs:79:29
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 if unsafe { MAPPER.is_chr_ram() } {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/ppu.rs:81:25
[INFO] [stdout]    |
[INFO] [stdout] 81 |                         MAPPER.write_chr_rom(addr, value);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ppu.rs:258:55
[INFO] [stdout]     |
[INFO] [stdout] 258 |                     self.internal_data_buf = unsafe { MAPPER.read_chr_rom(addr) };
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ppu.rs:297:34
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let mirroring = unsafe { MAPPER.mirroring() };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/ppu.rs:323:17
[INFO] [stdout]     |
[INFO] [stdout] 323 | /                 MAPPER.scanline(
[INFO] [stdout] 324 | |                     self.scanline,
[INFO] [stdout] 325 | |                     self.mask.show_background() || self.mask.show_sprites(),
[INFO] [stdout] 326 | |                 );
[INFO] [stdout]     | |_________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/ppu.rs:365:32
[INFO] [stdout]     |
[INFO] [stdout] 365 |             tile[i] = unsafe { MAPPER.read_chr_rom(start + i as u16) }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/render.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mirroring = unsafe { MAPPER.mirroring() };
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/render.rs:159:28
[INFO] [stdout]     |
[INFO] [stdout] 159 |         tile[i] = unsafe { MAPPER.read_chr_rom(start + i as u16) }
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/render.rs:244:32
[INFO] [stdout]     |
[INFO] [stdout] 244 |             tile[i] = unsafe { MAPPER.read_chr_rom(start + i as u16) }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `famicon_emulator` (bin "main" test) due to 4 previous errors; 94 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "575863bd1fc58fc2ffba6430ed7ef383f6ade5d7b9a0bdcc61e2e99b1f1e43f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "575863bd1fc58fc2ffba6430ed7ef383f6ade5d7b9a0bdcc61e2e99b1f1e43f3", kill_on_drop: false }`
[INFO] [stdout] 575863bd1fc58fc2ffba6430ed7ef383f6ade5d7b9a0bdcc61e2e99b1f1e43f3
