[INFO] cloning repository https://github.com/wenhaozhao/gb_simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wenhaozhao/gb_simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8314221c2e08428d92253b3d002ca0291ca5dd4f
[INFO] testing wenhaozhao/gb_simulator against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wenhaozhao/gb_simulator
[INFO] finished tweaking git repo https://github.com/wenhaozhao/gb_simulator
[INFO] tweaked toml for git repo https://github.com/wenhaozhao/gb_simulator written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wenhaozhao/gb_simulator on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wenhaozhao/gb_simulator 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded errno v0.3.5
[INFO] [stderr]   Downloaded serde_derive v1.0.189
[INFO] [stderr]   Downloaded proc-macro2 v1.0.68
[INFO] [stderr]   Downloaded serde v1.0.189
[INFO] [stderr]   Downloaded minifb v0.25.0
[INFO] [stderr]   Downloaded rustix v0.38.20
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f93d47b758dbe334a5024e7b96a3a59f1d352fd6f97300d50cfc3dd2f28b003d
[INFO] running `Command { std: "docker" "start" "-a" "f93d47b758dbe334a5024e7b96a3a59f1d352fd6f97300d50cfc3dd2f28b003d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f93d47b758dbe334a5024e7b96a3a59f1d352fd6f97300d50cfc3dd2f28b003d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f93d47b758dbe334a5024e7b96a3a59f1d352fd6f97300d50cfc3dd2f28b003d", kill_on_drop: false }`
[INFO] [stdout] f93d47b758dbe334a5024e7b96a3a59f1d352fd6f97300d50cfc3dd2f28b003d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c5d08b8b651aa12db799bdb4a507e139695a262b6eafa175b0aa399b72405986
[INFO] running `Command { std: "docker" "start" "-a" "c5d08b8b651aa12db799bdb4a507e139695a262b6eafa175b0aa399b72405986", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.68
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling xml-rs v0.8.19
[INFO] [stderr]    Compiling once_cell v1.18.0
[INFO] [stderr]    Compiling libloading v0.8.1
[INFO] [stderr]    Compiling smallvec v1.11.1
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling dlib v0.5.2
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling bitflags v2.4.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling linux-raw-sys v0.4.10
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]    Compiling nix v0.24.3
[INFO] [stderr]    Compiling minifb v0.25.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling tempfile v3.8.0
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling wayland-commons v0.29.5
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling wayland-cursor v0.29.5
[INFO] [stderr]    Compiling gb_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[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: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[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] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout]  27 |             0x00..=0x07 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  43 |             0x08..=0x0F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  59 |             0x10..=0x17 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |             0x18..=0x1F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ ...and 7 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FPS` is never used
[INFO] [stdout]   --> src/lib.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const FPS: u64 = 60;
[INFO] [stdout]    |       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCPU` is never used
[INFO] [stdout]  --> src/cpu/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CPU` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CPUInfo` is never constructed
[INFO] [stdout]   --> src/cpu/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CPUInfo {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREQ` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FREQ: u64 = 0x0040_0000;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LR35902` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LR35902 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl LR35902 {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `imm_u8`, `imm_u16`, `actual_run`, `actual_run_0`, and `opcode_run` are never used
[INFO] [stdout]    --> src/cpu/lr35902/mod.rs:53:8
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl LR35902 {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout]  53 |     fn imm_u8(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn imm_u16(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn actual_run(&mut self, opcode: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn actual_run_0(&mut self, opcode: u16) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn opcode_run(&mut self, opcode: u16) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registers` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Registers {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Register` is never used
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Register {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Registers {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_u16(&self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn set_u16(&mut self, reg: Register, val: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_and_incr_by_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_and_incr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn incr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn incr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn get_and_decr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn decr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn decr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn get_u8(&self, reg: Register) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn set_u8(&mut self, reg: Register, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:290:10
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub enum Flag {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_flag` and `set_flag` are never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 310 | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 311 |     pub fn get_flag(&self, flag: Flag) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn set_flag(&mut self, flag: Flag, val: bool) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CB_PREFIXED` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CB_PREFIXED: u16 = 0xCB00;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `alu_rlc`, `alu_rl`, `alu_rrc`, and `alu_rr` are never used
[INFO] [stdout]   --> src/cpu/lr35902/opcode/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LR35902 {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 11 |     fn alu_rlc(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn alu_rl(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn alu_rrc(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn alu_rr(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OPCODE_CYCLES` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:24:12
[INFO] [stdout]      |
[INFO] [stdout]   23 | impl LR35902 {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout]   24 |     pub fn unprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  869 |     fn alu_daa(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  893 |     fn alu_jr_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  899 |     fn alu_ret(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  904 |     fn alu_pop(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  912 |     fn alu_push(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  920 |     fn alu_call(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  926 |     fn alu_incr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  936 |     fn alu_incr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  946 |     fn alu_decr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  956 |     fn alu_decr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     fn alu_add_hl(&mut self, opcode: u8, val: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  976 |     fn alu_add(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  987 |     fn alu_add_sp_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  999 |     fn alu_adc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1011 |     fn alu_sub(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1022 |     fn alu_sbc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     fn alu_and(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1045 |     fn alu_xor(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1056 |     fn alu_or(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1068 |     fn alu_cp(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OPCODE_CYCLES` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl LR35902 {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  24 |     pub fn cbprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn get_reg(opcode: u8) -> Register {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn alu_sla(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn alu_sra(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn alu_swap(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn alu_srl(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     fn alu_bit(&mut self, val: u8, n: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn alu_reset(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn alu_set(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_DURATION` is never used
[INFO] [stdout]  --> src/cpu/lr35902/clock.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const FRAME_DURATION: u64 = 1000 / FPS;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CYCLES_PER_FRAME` is never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CYCLES_PER_FRAME: u64 = (FREQ as f64 / 1000f64 * (FRAME_DURATION as f64)) as u64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Clock` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Clock {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `step`, and `now` are never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn step(&mut self, cycles: u8) -> crate::Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPU` is never constructed
[INFO] [stdout]  --> src/gpu.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OFFSET` is never used
[INFO] [stdout]   --> src/gpu.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const OFFSET: u16 = 0x8000;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotherBoard` is never constructed
[INFO] [stdout]   --> src/mother_board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stdout]   --> src/mother_board.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn start(&self) -> ! {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefMemory` is never used
[INFO] [stdout]   --> src/mmu.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type RefMemory = Rc<RefCell<Box<dyn Memory>>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Memory` is never used
[INFO] [stdout]   --> src/mmu.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Memory {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RAM` is never used
[INFO] [stdout]   --> src/mmu.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type RAM<const CAP: usize> = Rc<RefCell<Box<Vec<u8>>>>;
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_ram` is never used
[INFO] [stdout]   --> src/mmu.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MMU` is never constructed
[INFO] [stdout]   --> src/mmu.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct MMU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mmu.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl MMU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockRam` is never constructed
[INFO] [stdout]    --> src/mmu.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct BlockRam<const SIZE: usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prohibited` is never constructed
[INFO] [stdout]    --> src/mmu.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct Prohibited {}
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl Prohibited {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 264 |     pub fn new() -> Prohibited {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_JOYPAD` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const IO_ADDR_JOYPAD: u16 = 0xFF00;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_VBK` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const IO_ADDR_VBK: u16 = 0xFF4F;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_INT_F` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IO_ADDR_INT_F: u16 = 0xFF0F;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_SVBK` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const IO_ADDR_SVBK: u16 = 0xFF70;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_INT_E` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const IO_ADDR_INT_E: u16 = 0xFFFF;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JoypadKey` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum JoypadKey {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefJoypad` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type RefJoypad = Rc<RefCell<Joypad>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Joypad` is never constructed
[INFO] [stdout]   --> src/io_device/joypad.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Joypad {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `keydown`, and `keyup` are never used
[INFO] [stdout]   --> src/io_device/joypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Joypad {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn keydown(&mut self, key: Key) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn keyup(&mut self, key: Key) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum Flag {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IntHandlerFunc` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type IntHandlerFunc = fn(RefMemory);
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IDT` is never constructed
[INFO] [stdout]   --> src/io_device/interrupt.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct IDT {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interrupt` is never constructed
[INFO] [stdout]   --> src/io_device/interrupt.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Interrupt {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefInterrupt` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub type RefInterrupt = Rc<RefCell<Interrupt>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_handler_fn`, `toggle`, and `handle` are never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn toggle(&mut self, flag: Flag) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn handle(&mut self, mem: RefMemory, flag: Flag) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/video.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V_RAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/video.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const V_RAM_CAPACITY: usize = 0x1000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/video.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const OAM_CAPACITY: usize = 0xA0;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Video` is never constructed
[INFO] [stdout]   --> src/io_device/video.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Video {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/video.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Video {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Video {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/wram.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const BANK_SIZE: usize = 0x10;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/wram.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const RAM_CAPACITY: usize = 0x1000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkRam` is never constructed
[INFO] [stdout]   --> src/io_device/wram.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WorkRam {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/wram.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl WorkRam {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     pub fn new() -> WorkRam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CGBFlag` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum CGBFlag {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SGBFlag` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SGBFlag {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stdout]     |
[INFO] [stdout] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stdout]     |
[INFO] [stdout] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stdout]     |
[INFO] [stdout] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stdout]     |
[INFO] [stdout] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rom` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct Rom {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Rom {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ram` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct Ram {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `dump`, and `mem` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn dump(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct RomOnly {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl RomOnly {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cartridge` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:231:11
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeInfo` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub struct CartridgeInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCartridge` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:504:10
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub type RefCartridge = Rc<RefCell<Box<dyn Cartridge>>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_up` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_BANK_LEN` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mod.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const ROM_BANK_LEN: u16 = 0x4000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_0_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const ROM_0_BASE: u16 = 0x0000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_0_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const ROM_0_END: u16 = ROM_0_BASE + ROM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const ROM_X_BASE: u16 = 0x4000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const ROM_X_END: u16 = ROM_X_BASE + ROM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const RAM_BANK_LEN: u16 = 0x2000;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BankMode` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum BankMode {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC1` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MBC1 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `bank_mode`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MBC1 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn bank_mode(&self) -> BankMode {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC2` is never constructed
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct MBC2 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, and `rom_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl MBC2 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RAM_BANK_LEN: u16 = 0x200;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RTC` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RTC {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `latched` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RTC {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn latched(&mut self) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC3` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct MBC3 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl MBC3 {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout]  92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC5` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MBC5 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MBC5 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mother_board.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<'_, Box<dyn CPU>> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.05s
[INFO] running `Command { std: "docker" "inspect" "c5d08b8b651aa12db799bdb4a507e139695a262b6eafa175b0aa399b72405986", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5d08b8b651aa12db799bdb4a507e139695a262b6eafa175b0aa399b72405986", kill_on_drop: false }`
[INFO] [stdout] c5d08b8b651aa12db799bdb4a507e139695a262b6eafa175b0aa399b72405986
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62a24aae505b0becdc53b32ca5c8cbaeffadc02ba578b3ac25c8bc3d7be7d07d
[INFO] running `Command { std: "docker" "start" "-a" "62a24aae505b0becdc53b32ca5c8cbaeffadc02ba578b3ac25c8bc3d7be7d07d", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[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: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[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] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout]  27 |             0x00..=0x07 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  43 |             0x08..=0x0F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  59 |             0x10..=0x17 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |             0x18..=0x1F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ ...and 7 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FPS` is never used
[INFO] [stdout]   --> src/lib.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const FPS: u64 = 60;
[INFO] [stdout]    |       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCPU` is never used
[INFO] [stdout]  --> src/cpu/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CPU` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CPUInfo` is never constructed
[INFO] [stdout]   --> src/cpu/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CPUInfo {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREQ` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FREQ: u64 = 0x0040_0000;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LR35902` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LR35902 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl LR35902 {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `imm_u8`, `imm_u16`, `actual_run`, `actual_run_0`, and `opcode_run` are never used
[INFO] [stdout]    --> src/cpu/lr35902/mod.rs:53:8
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl LR35902 {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout]  53 |     fn imm_u8(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn imm_u16(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn actual_run(&mut self, opcode: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn actual_run_0(&mut self, opcode: u16) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn opcode_run(&mut self, opcode: u16) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registers` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Registers {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Register` is never used
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Register {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Registers {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn get_u16(&self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn set_u16(&mut self, reg: Register, val: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_and_incr_by_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_and_incr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn incr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn incr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn get_and_decr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn decr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn decr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn get_u8(&self, reg: Register) -> u8 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn set_u8(&mut self, reg: Register, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:290:10
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub enum Flag {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_flag` and `set_flag` are never used
[INFO] [stdout]    --> src/cpu/lr35902/registers.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 310 | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 311 |     pub fn get_flag(&self, flag: Flag) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn set_flag(&mut self, flag: Flag, val: bool) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CB_PREFIXED` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CB_PREFIXED: u16 = 0xCB00;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `alu_rlc`, `alu_rl`, `alu_rrc`, and `alu_rr` are never used
[INFO] [stdout]   --> src/cpu/lr35902/opcode/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LR35902 {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 11 |     fn alu_rlc(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn alu_rl(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn alu_rrc(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn alu_rr(&mut self, val: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OPCODE_CYCLES` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:24:12
[INFO] [stdout]      |
[INFO] [stdout]   23 | impl LR35902 {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout]   24 |     pub fn unprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  869 |     fn alu_daa(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  893 |     fn alu_jr_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  899 |     fn alu_ret(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  904 |     fn alu_pop(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  912 |     fn alu_push(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  920 |     fn alu_call(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  926 |     fn alu_incr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  936 |     fn alu_incr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  946 |     fn alu_decr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  956 |     fn alu_decr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     fn alu_add_hl(&mut self, opcode: u8, val: u16) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  976 |     fn alu_add(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  987 |     fn alu_add_sp_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  999 |     fn alu_adc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1011 |     fn alu_sub(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1022 |     fn alu_sbc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1034 |     fn alu_and(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1045 |     fn alu_xor(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1056 |     fn alu_or(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1068 |     fn alu_cp(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OPCODE_CYCLES` is never used
[INFO] [stdout]  --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl LR35902 {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  24 |     pub fn cbprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn get_reg(opcode: u8) -> Register {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn alu_sla(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn alu_sra(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn alu_swap(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn alu_srl(&mut self, val: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     fn alu_bit(&mut self, val: u8, n: u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn alu_reset(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn alu_set(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_DURATION` is never used
[INFO] [stdout]  --> src/cpu/lr35902/clock.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const FRAME_DURATION: u64 = 1000 / FPS;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CYCLES_PER_FRAME` is never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CYCLES_PER_FRAME: u64 = (FREQ as f64 / 1000f64 * (FRAME_DURATION as f64)) as u64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Clock` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Clock {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `step`, and `now` are never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn step(&mut self, cycles: u8) -> crate::Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPU` is never constructed
[INFO] [stdout]  --> src/gpu.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OFFSET` is never used
[INFO] [stdout]   --> src/gpu.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const OFFSET: u16 = 0x8000;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotherBoard` is never constructed
[INFO] [stdout]   --> src/mother_board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stdout]   --> src/mother_board.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn start(&self) -> ! {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefMemory` is never used
[INFO] [stdout]   --> src/mmu.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type RefMemory = Rc<RefCell<Box<dyn Memory>>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Memory` is never used
[INFO] [stdout]   --> src/mmu.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Memory {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RAM` is never used
[INFO] [stdout]   --> src/mmu.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type RAM<const CAP: usize> = Rc<RefCell<Box<Vec<u8>>>>;
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_ram` is never used
[INFO] [stdout]   --> src/mmu.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MMU` is never constructed
[INFO] [stdout]   --> src/mmu.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct MMU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mmu.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl MMU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockRam` is never constructed
[INFO] [stdout]    --> src/mmu.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct BlockRam<const SIZE: usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prohibited` is never constructed
[INFO] [stdout]    --> src/mmu.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct Prohibited {}
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl Prohibited {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 264 |     pub fn new() -> Prohibited {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_JOYPAD` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const IO_ADDR_JOYPAD: u16 = 0xFF00;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_VBK` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const IO_ADDR_VBK: u16 = 0xFF4F;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_INT_F` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const IO_ADDR_INT_F: u16 = 0xFF0F;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_SVBK` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const IO_ADDR_SVBK: u16 = 0xFF70;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_ADDR_INT_E` is never used
[INFO] [stdout]   --> src/io_device/mod.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const IO_ADDR_INT_E: u16 = 0xFFFF;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JoypadKey` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum JoypadKey {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefJoypad` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type RefJoypad = Rc<RefCell<Joypad>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Joypad` is never constructed
[INFO] [stdout]   --> src/io_device/joypad.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Joypad {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `keydown`, and `keyup` are never used
[INFO] [stdout]   --> src/io_device/joypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Joypad {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn keydown(&mut self, key: Key) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn keyup(&mut self, key: Key) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum Flag {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IntHandlerFunc` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type IntHandlerFunc = fn(RefMemory);
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IDT` is never constructed
[INFO] [stdout]   --> src/io_device/interrupt.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct IDT {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interrupt` is never constructed
[INFO] [stdout]   --> src/io_device/interrupt.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Interrupt {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefInterrupt` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub type RefInterrupt = Rc<RefCell<Interrupt>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_handler_fn`, `toggle`, and `handle` are never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn toggle(&mut self, flag: Flag) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn handle(&mut self, mem: RefMemory, flag: Flag) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/video.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V_RAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/video.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const V_RAM_CAPACITY: usize = 0x1000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/video.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const OAM_CAPACITY: usize = 0xA0;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Video` is never constructed
[INFO] [stdout]   --> src/io_device/video.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Video {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/video.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Video {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Video {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/wram.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const BANK_SIZE: usize = 0x10;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_CAPACITY` is never used
[INFO] [stdout]  --> src/io_device/wram.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const RAM_CAPACITY: usize = 0x1000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkRam` is never constructed
[INFO] [stdout]   --> src/io_device/wram.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WorkRam {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/wram.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl WorkRam {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     pub fn new() -> WorkRam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CGBFlag` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum CGBFlag {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SGBFlag` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SGBFlag {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stdout]     |
[INFO] [stdout] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stdout]     |
[INFO] [stdout] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stdout]     |
[INFO] [stdout] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stdout]     |
[INFO] [stdout] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rom` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct Rom {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Rom {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ram` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct Ram {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gb_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: associated items `new`, `from`, `dump`, and `mem` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn dump(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct RomOnly {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl RomOnly {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Cartridge` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:231:11
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeInfo` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub struct CartridgeInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCartridge` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:504:10
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub type RefCartridge = Rc<RefCell<Box<dyn Cartridge>>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_up` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_BANK_LEN` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mod.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const ROM_BANK_LEN: u16 = 0x4000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_0_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const ROM_0_BASE: u16 = 0x0000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_0_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const ROM_0_END: u16 = ROM_0_BASE + ROM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const ROM_X_BASE: u16 = 0x4000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const ROM_X_END: u16 = ROM_X_BASE + ROM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const RAM_BANK_LEN: u16 = 0x2000;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BankMode` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum BankMode {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC1` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MBC1 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `bank_mode`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MBC1 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn bank_mode(&self) -> BankMode {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC2` is never constructed
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct MBC2 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, and `rom_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl MBC2 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RAM_BANK_LEN: u16 = 0x200;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_X_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RTC` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RTC {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `latched` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RTC {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn latched(&mut self) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC3` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct MBC3 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl MBC3 {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout]  92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MBC5` is never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct MBC5 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MBC5 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mother_board.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<'_, Box<dyn CPU>> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[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: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[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] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GBTerm` and `cpu`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{cpu, GBTerm};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io_device::cartridge`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::io_device::cartridge;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::MMU`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::mmu::MMU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8) ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/tests/cpu_instrs.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[test]
[INFO] [stdout]    | ------- in this attribute macro expansion
[INFO] [stdout] 11 | fn test_cpu_instrs() -> ! {
[INFO] [stdout]    |                         ^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         unreachable call
[INFO] [stdout]    |                         any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout]  27 |             0x00..=0x07 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  43 |             0x08..=0x0F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  59 |             0x10..=0x17 => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |             0x18..=0x1F => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^ ...and 7 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tests/cpu_instrs.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut mb = MotherBoard::new(rom_path, ram_path, rtc_path).unwrap();
[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: methods `memory` and `info` are never used
[INFO] [stdout]   --> src/cpu/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_at` and `freq` are never read
[INFO] [stdout]   --> src/cpu/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 20 |     start_at: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     freq: u64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `info` is never read
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LR35902 {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 22 |     info: CPUInfo,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `now` is never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GPU` is never constructed
[INFO] [stdout]  --> src/gpu.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct GPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OFFSET` is never used
[INFO] [stdout]   --> src/gpu.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const OFFSET: u16 = 0x8000;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mmu` is never read
[INFO] [stdout]   --> src/mother_board.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |     cpu: RefCPU,
[INFO] [stdout] 13 |     mmu: RefMemory,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cpu` is never used
[INFO] [stdout]   --> src/mother_board.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockRam` is never constructed
[INFO] [stdout]    --> src/mmu.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct BlockRam<const SIZE: usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestMemory` is never constructed
[INFO] [stdout]    --> src/mmu.rs:283:16
[INFO] [stdout]     |
[INFO] [stdout] 283 |     pub struct TestMemory {
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:288:16
[INFO] [stdout]     |
[INFO] [stdout] 287 |     impl TestMemory {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 288 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_handler_fn` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ram`, `header`, and `manufacturer_code_text` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] 232 |     fn rom(&self) -> &Rom;
[INFO] [stdout] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 234 |     #[inline]
[INFO] [stdout] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mother_board.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<'_, Box<dyn CPU>> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.85s
[INFO] running `Command { std: "docker" "inspect" "62a24aae505b0becdc53b32ca5c8cbaeffadc02ba578b3ac25c8bc3d7be7d07d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62a24aae505b0becdc53b32ca5c8cbaeffadc02ba578b3ac25c8bc3d7be7d07d", kill_on_drop: false }`
[INFO] [stdout] 62a24aae505b0becdc53b32ca5c8cbaeffadc02ba578b3ac25c8bc3d7be7d07d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0ccd601bda4c6109d2914c01191b43f80c71bb359a0e02dddd8440cc932fcdf7
[INFO] running `Command { std: "docker" "start" "-a" "0ccd601bda4c6109d2914c01191b43f80c71bb359a0e02dddd8440cc932fcdf7", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Memory`
[INFO] [stderr]  --> src/cpu/mod.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::mmu::{Memory, RefMemory};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stderr]     |
[INFO] [stderr] 156 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 156 -                 let n = match (opcode) {
[INFO] [stderr] 156 +                 let n = match opcode  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stderr]     |
[INFO] [stderr] 181 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 181 -                 let n = match (opcode) {
[INFO] [stderr] 181 +                 let n = match opcode  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stderr]     |
[INFO] [stderr] 208 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 208 -                 let n = match (opcode) {
[INFO] [stderr] 208 +                 let n = match opcode  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stderr]     |
[INFO] [stderr] 238 |         match (opcode & 0x0F) {
[INFO] [stderr]     |               ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 238 -         match (opcode & 0x0F) {
[INFO] [stderr] 238 +         match opcode & 0x0F  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stderr]     |
[INFO] [stderr] 280 |         let res = (val >> 1);
[INFO] [stderr]     |                   ^        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 280 -         let res = (val >> 1);
[INFO] [stderr] 280 +         let res = val >> 1 ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RefCell`
[INFO] [stderr]  --> src/mother_board.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::{Ref, RefCell};
[INFO] [stderr]   |                      ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Memory`
[INFO] [stderr]  --> src/mother_board.rs:9:18
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/mmu.rs:98:32
[INFO] [stderr]    |
[INFO] [stderr] 98 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/mmu.rs:99:32
[INFO] [stderr]    |
[INFO] [stderr] 99 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:100:32
[INFO] [stderr]     |
[INFO] [stderr] 100 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:101:32
[INFO] [stderr]     |
[INFO] [stderr] 101 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:102:32
[INFO] [stderr]     |
[INFO] [stderr] 102 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:103:32
[INFO] [stderr]     |
[INFO] [stderr] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stderr]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:105:32
[INFO] [stderr]     |
[INFO] [stderr] 105 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:106:32
[INFO] [stderr]     |
[INFO] [stderr] 106 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:107:32
[INFO] [stderr]     |
[INFO] [stderr] 107 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:108:32
[INFO] [stderr]     |
[INFO] [stderr] 108 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:109:32
[INFO] [stderr]     |
[INFO] [stderr] 109 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:110:32
[INFO] [stderr]     |
[INFO] [stderr] 110 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:111:32
[INFO] [stderr]     |
[INFO] [stderr] 111 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:112:32
[INFO] [stderr]     |
[INFO] [stderr] 112 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:113:32
[INFO] [stderr]     |
[INFO] [stderr] 113 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:114:32
[INFO] [stderr]     |
[INFO] [stderr] 114 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:115:32
[INFO] [stderr]     |
[INFO] [stderr] 115 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:116:32
[INFO] [stderr]     |
[INFO] [stderr] 116 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:117:32
[INFO] [stderr]     |
[INFO] [stderr] 117 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:118:32
[INFO] [stderr]     |
[INFO] [stderr] 118 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:119:32
[INFO] [stderr]     |
[INFO] [stderr] 119 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:120:32
[INFO] [stderr]     |
[INFO] [stderr] 120 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:121:32
[INFO] [stderr]     |
[INFO] [stderr] 121 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:122:32
[INFO] [stderr]     |
[INFO] [stderr] 122 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:123:32
[INFO] [stderr]     |
[INFO] [stderr] 123 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:124:32
[INFO] [stderr]     |
[INFO] [stderr] 124 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:125:32
[INFO] [stderr]     |
[INFO] [stderr] 125 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:126:41
[INFO] [stderr]     |
[INFO] [stderr] 126 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:127:32
[INFO] [stderr]     |
[INFO] [stderr] 127 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:128:32
[INFO] [stderr]     |
[INFO] [stderr] 128 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:129:32
[INFO] [stderr]     |
[INFO] [stderr] 129 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:130:32
[INFO] [stderr]     |
[INFO] [stderr] 130 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:131:32
[INFO] [stderr]     |
[INFO] [stderr] 131 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:132:32
[INFO] [stderr]     |
[INFO] [stderr] 132 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:133:32
[INFO] [stderr]     |
[INFO] [stderr] 133 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:134:32
[INFO] [stderr]     |
[INFO] [stderr] 134 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:135:32
[INFO] [stderr]     |
[INFO] [stderr] 135 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:136:32
[INFO] [stderr]     |
[INFO] [stderr] 136 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:137:32
[INFO] [stderr]     |
[INFO] [stderr] 137 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:138:32
[INFO] [stderr]     |
[INFO] [stderr] 138 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:139:32
[INFO] [stderr]     |
[INFO] [stderr] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:140:45
[INFO] [stderr]     |
[INFO] [stderr] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:141:32
[INFO] [stderr]     |
[INFO] [stderr] 141 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:142:32
[INFO] [stderr]     |
[INFO] [stderr] 142 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:143:32
[INFO] [stderr]     |
[INFO] [stderr] 143 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:144:32
[INFO] [stderr]     |
[INFO] [stderr] 144 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:145:32
[INFO] [stderr]     |
[INFO] [stderr] 145 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:146:32
[INFO] [stderr]     |
[INFO] [stderr] 146 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:147:32
[INFO] [stderr]     |
[INFO] [stderr] 147 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:148:32
[INFO] [stderr]     |
[INFO] [stderr] 148 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:149:32
[INFO] [stderr]     |
[INFO] [stderr] 149 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:150:32
[INFO] [stderr]     |
[INFO] [stderr] 150 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:151:32
[INFO] [stderr]     |
[INFO] [stderr] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:152:48
[INFO] [stderr]     |
[INFO] [stderr] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:153:32
[INFO] [stderr]     |
[INFO] [stderr] 153 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:154:32
[INFO] [stderr]     |
[INFO] [stderr] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stderr]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:171:32
[INFO] [stderr]     |
[INFO] [stderr] 171 |             0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:172:32
[INFO] [stderr]     |
[INFO] [stderr] 172 |             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:173:32
[INFO] [stderr]     |
[INFO] [stderr] 173 |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:174:32
[INFO] [stderr]     |
[INFO] [stderr] 174 |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:175:32
[INFO] [stderr]     |
[INFO] [stderr] 175 |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:176:32
[INFO] [stderr]     |
[INFO] [stderr] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:178:32
[INFO] [stderr]     |
[INFO] [stderr] 178 |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:179:32
[INFO] [stderr]     |
[INFO] [stderr] 179 |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:180:32
[INFO] [stderr]     |
[INFO] [stderr] 180 |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:181:32
[INFO] [stderr]     |
[INFO] [stderr] 181 |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:182:32
[INFO] [stderr]     |
[INFO] [stderr] 182 |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:183:32
[INFO] [stderr]     |
[INFO] [stderr] 183 |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:184:32
[INFO] [stderr]     |
[INFO] [stderr] 184 |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:185:32
[INFO] [stderr]     |
[INFO] [stderr] 185 |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:186:32
[INFO] [stderr]     |
[INFO] [stderr] 186 |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:187:32
[INFO] [stderr]     |
[INFO] [stderr] 187 |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:188:32
[INFO] [stderr]     |
[INFO] [stderr] 188 |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:189:32
[INFO] [stderr]     |
[INFO] [stderr] 189 |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:190:32
[INFO] [stderr]     |
[INFO] [stderr] 190 |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:191:32
[INFO] [stderr]     |
[INFO] [stderr] 191 |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:192:32
[INFO] [stderr]     |
[INFO] [stderr] 192 |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:193:32
[INFO] [stderr]     |
[INFO] [stderr] 193 |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:194:32
[INFO] [stderr]     |
[INFO] [stderr] 194 |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:195:32
[INFO] [stderr]     |
[INFO] [stderr] 195 |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:196:32
[INFO] [stderr]     |
[INFO] [stderr] 196 |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:197:32
[INFO] [stderr]     |
[INFO] [stderr] 197 |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:198:32
[INFO] [stderr]     |
[INFO] [stderr] 198 |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:199:41
[INFO] [stderr]     |
[INFO] [stderr] 199 |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:200:32
[INFO] [stderr]     |
[INFO] [stderr] 200 |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:201:32
[INFO] [stderr]     |
[INFO] [stderr] 201 |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:202:32
[INFO] [stderr]     |
[INFO] [stderr] 202 |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:203:32
[INFO] [stderr]     |
[INFO] [stderr] 203 |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:204:32
[INFO] [stderr]     |
[INFO] [stderr] 204 |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:205:32
[INFO] [stderr]     |
[INFO] [stderr] 205 |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:206:32
[INFO] [stderr]     |
[INFO] [stderr] 206 |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:207:32
[INFO] [stderr]     |
[INFO] [stderr] 207 |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:208:32
[INFO] [stderr]     |
[INFO] [stderr] 208 |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:209:32
[INFO] [stderr]     |
[INFO] [stderr] 209 |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:210:32
[INFO] [stderr]     |
[INFO] [stderr] 210 |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:211:32
[INFO] [stderr]     |
[INFO] [stderr] 211 |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:212:32
[INFO] [stderr]     |
[INFO] [stderr] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:213:48
[INFO] [stderr]     |
[INFO] [stderr] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:214:32
[INFO] [stderr]     |
[INFO] [stderr] 214 |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:215:32
[INFO] [stderr]     |
[INFO] [stderr] 215 |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:216:32
[INFO] [stderr]     |
[INFO] [stderr] 216 |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:217:32
[INFO] [stderr]     |
[INFO] [stderr] 217 |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:218:32
[INFO] [stderr]     |
[INFO] [stderr] 218 |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:219:32
[INFO] [stderr]     |
[INFO] [stderr] 219 |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:220:32
[INFO] [stderr]     |
[INFO] [stderr] 220 |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:221:32
[INFO] [stderr]     |
[INFO] [stderr] 221 |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:222:32
[INFO] [stderr]     |
[INFO] [stderr] 222 |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:223:32
[INFO] [stderr]     |
[INFO] [stderr] 223 |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:224:32
[INFO] [stderr]     |
[INFO] [stderr] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:225:51
[INFO] [stderr]     |
[INFO] [stderr] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:226:32
[INFO] [stderr]     |
[INFO] [stderr] 226 |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:227:32
[INFO] [stderr]     |
[INFO] [stderr] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stderr]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::Memory`
[INFO] [stderr]  --> src/io_device/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::mmu::Memory;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/io_device/joypad.rs:59:28
[INFO] [stderr]    |
[INFO] [stderr] 59 |             self.matrix |= (*key as u8);
[INFO] [stderr]    |                            ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 -             self.matrix |= (*key as u8);
[INFO] [stderr] 59 +             self.matrix |= *key as u8 ;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/io_device/interrupt.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/io_device/interrupt.rs:81:23
[INFO] [stderr]    |
[INFO] [stderr] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stderr]    |                       ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stderr] 81 +         self.int_f |= 0x01 << (flag as u8) ;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::Memory`
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::mmu::Memory;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stderr]     |
[INFO] [stderr] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stderr]     |             ^^^^^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stderr]     |
[INFO] [stderr]  27 |             0x00..=0x07 => {
[INFO] [stderr]     |             ----------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  43 |             0x08..=0x0F => {
[INFO] [stderr]     |             ----------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  59 |             0x10..=0x17 => {
[INFO] [stderr]     |             ----------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  75 |             0x18..=0x1F => {
[INFO] [stderr]     |             ----------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stderr]     |             ^^^^^ ...and 7 other patterns collectively make this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FPS` is never used
[INFO] [stderr]   --> src/lib.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | const FPS: u64 = 60;
[INFO] [stderr]    |       ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefCPU` is never used
[INFO] [stderr]  --> src/cpu/mod.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stderr]   |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `CPU` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait CPU {
[INFO] [stderr]    |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CPUInfo` is never constructed
[INFO] [stderr]   --> src/cpu/mod.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct CPUInfo {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl CPUInfo {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_hi` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_hi` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_lo` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_lo` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:50:8
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_bit` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:54:8
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_bit` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FREQ` is never used
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const FREQ: u64 = 0x0040_0000;
[INFO] [stderr]    |       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LR35902` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct LR35902 {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl LR35902 {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 34 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `imm_u8`, `imm_u16`, `actual_run`, `actual_run_0`, and `opcode_run` are never used
[INFO] [stderr]    --> src/cpu/lr35902/mod.rs:53:8
[INFO] [stderr]     |
[INFO] [stderr]  52 | impl LR35902 {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr]  53 |     fn imm_u8(&mut self) -> u8 {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  61 |     fn imm_u16(&mut self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  68 |     fn actual_run(&mut self, opcode: u16) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  75 |     fn actual_run_0(&mut self, opcode: u16) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     fn opcode_run(&mut self, opcode: u16) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Registers` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/registers.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct Registers {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Register` is never used
[INFO] [stderr]   --> src/cpu/lr35902/registers.rs:32:10
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub enum Register {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stderr]     |
[INFO] [stderr]  49 | impl Registers {
[INFO] [stderr]     | -------------- associated items in this implementation
[INFO] [stderr]  50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  83 |     pub fn get_u16(&self, reg: Register) -> u16 {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn set_u16(&mut self, reg: Register, val: u16) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn get_and_incr_by_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn get_and_incr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn incr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn incr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn get_and_decr_u16(&mut self, reg: Register) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 217 |     pub fn decr_by_and_get_u16(&mut self, reg: Register, by: u16) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     pub fn decr_and_get_u16(&mut self, reg: Register) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn get_u8(&self, reg: Register) -> u8 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 265 |     pub fn set_u8(&mut self, reg: Register, val: u8) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Flag` is never used
[INFO] [stderr]    --> src/cpu/lr35902/registers.rs:290:10
[INFO] [stderr]     |
[INFO] [stderr] 290 | pub enum Flag {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_flag` and `set_flag` are never used
[INFO] [stderr]    --> src/cpu/lr35902/registers.rs:311:12
[INFO] [stderr]     |
[INFO] [stderr] 310 | impl Registers {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] 311 |     pub fn get_flag(&self, flag: Flag) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 316 |     pub fn set_flag(&mut self, flag: Flag, val: bool) {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CB_PREFIXED` is never used
[INFO] [stderr]  --> src/cpu/lr35902/opcode/mod.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CB_PREFIXED: u16 = 0xCB00;
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `alu_rlc`, `alu_rl`, `alu_rrc`, and `alu_rr` are never used
[INFO] [stderr]   --> src/cpu/lr35902/opcode/mod.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl LR35902 {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] 11 |     fn alu_rlc(&mut self, val: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn alu_rl(&mut self, val: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     fn alu_rrc(&mut self, val: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     fn alu_rr(&mut self, val: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `OPCODE_CYCLES` is never used
[INFO] [stderr]  --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/cpu/lr35902/opcode/unprefixed_opcode.rs:24:12
[INFO] [stderr]      |
[INFO] [stderr]   23 | impl LR35902 {
[INFO] [stderr]      | ------------ methods in this implementation
[INFO] [stderr]   24 |     pub fn unprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  869 |     fn alu_daa(&mut self, opcode: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  893 |     fn alu_jr_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  899 |     fn alu_ret(&mut self, opcode: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  904 |     fn alu_pop(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  912 |     fn alu_push(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  920 |     fn alu_call(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  926 |     fn alu_incr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  936 |     fn alu_incr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  946 |     fn alu_decr_reg(&mut self, opcode: u8, reg: Register) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  956 |     fn alu_decr_addr(&mut self, opcode: u8, addr: u16) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  966 |     fn alu_add_hl(&mut self, opcode: u8, val: u16) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  976 |     fn alu_add(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  987 |     fn alu_add_sp_i8(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  999 |     fn alu_adc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1011 |     fn alu_sub(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1022 |     fn alu_sbc(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1034 |     fn alu_and(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1045 |     fn alu_xor(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1056 |     fn alu_or(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1068 |     fn alu_cp(&mut self, opcode: u8, val: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `OPCODE_CYCLES` is never used
[INFO] [stderr]  --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | static OPCODE_CYCLES: [[u8; 2]; 0x100] = [
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:24:12
[INFO] [stderr]     |
[INFO] [stderr]  23 | impl LR35902 {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  24 |     pub fn cbprefixed_exec_opcode(&mut self, opcode: u8) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 237 |     fn get_reg(opcode: u8) -> Register {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     fn alu_sla(&mut self, val: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     fn alu_sra(&mut self, val: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 270 |     fn alu_swap(&mut self, val: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 279 |     fn alu_srl(&mut self, val: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 288 |     fn alu_bit(&mut self, val: u8, n: u8) -> bool {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 296 |     fn alu_reset(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     fn alu_set(&mut self, val: u8, n: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FRAME_DURATION` is never used
[INFO] [stderr]  --> src/cpu/lr35902/clock.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const FRAME_DURATION: u64 = 1000 / FPS;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CYCLES_PER_FRAME` is never used
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const CYCLES_PER_FRAME: u64 = (FREQ as f64 / 1000f64 * (FRAME_DURATION as f64)) as u64;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Clock` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Clock {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClockStep` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct ClockStep {}
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `step`, and `now` are never used
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Clock {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn step(&mut self, cycles: u8) -> crate::Result<()> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GPU` is never constructed
[INFO] [stderr]  --> src/gpu.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct GPU {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/gpu.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl GPU {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] 14 |     pub fn new() -> GPU {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OFFSET` is never used
[INFO] [stderr]   --> src/gpu.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const OFFSET: u16 = 0x8000;
[INFO] [stderr]    |       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MotherBoard` is never constructed
[INFO] [stderr]   --> src/mother_board.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct MotherBoard {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stderr]   --> src/mother_board.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl MotherBoard {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn start(&self) -> ! {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefMemory` is never used
[INFO] [stderr]   --> src/mmu.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub type RefMemory = Rc<RefCell<Box<dyn Memory>>>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Memory` is never used
[INFO] [stderr]   --> src/mmu.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub trait Memory {
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RAM` is never used
[INFO] [stderr]   --> src/mmu.rs:55:10
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub type RAM<const CAP: usize> = Rc<RefCell<Box<Vec<u8>>>>;
[INFO] [stderr]    |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_ram` is never used
[INFO] [stderr]   --> src/mmu.rs:57:8
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MMU` is never constructed
[INFO] [stderr]   --> src/mmu.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub struct MMU {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/mmu.rs:71:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | impl MMU {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] 71 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BlockRam` is never constructed
[INFO] [stderr]    --> src/mmu.rs:236:12
[INFO] [stderr]     |
[INFO] [stderr] 236 | pub struct BlockRam<const SIZE: usize> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:241:12
[INFO] [stderr]     |
[INFO] [stderr] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stderr]     | -------------------------------------- associated function in this implementation
[INFO] [stderr] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Prohibited` is never constructed
[INFO] [stderr]    --> src/mmu.rs:261:12
[INFO] [stderr]     |
[INFO] [stderr] 261 | pub struct Prohibited {}
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | impl Prohibited {
[INFO] [stderr]     | --------------- associated function in this implementation
[INFO] [stderr] 264 |     pub fn new() -> Prohibited {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_ADDR_JOYPAD` is never used
[INFO] [stderr]   --> src/io_device/mod.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const IO_ADDR_JOYPAD: u16 = 0xFF00;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_ADDR_VBK` is never used
[INFO] [stderr]   --> src/io_device/mod.rs:21:11
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const IO_ADDR_VBK: u16 = 0xFF4F;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_ADDR_INT_F` is never used
[INFO] [stderr]   --> src/io_device/mod.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const IO_ADDR_INT_F: u16 = 0xFF0F;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_ADDR_SVBK` is never used
[INFO] [stderr]   --> src/io_device/mod.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub const IO_ADDR_SVBK: u16 = 0xFF70;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_ADDR_INT_E` is never used
[INFO] [stderr]   --> src/io_device/mod.rs:36:11
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub const IO_ADDR_INT_E: u16 = 0xFFFF;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `JoypadKey` is never used
[INFO] [stderr]   --> src/io_device/joypad.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum JoypadKey {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefJoypad` is never used
[INFO] [stderr]   --> src/io_device/joypad.rs:23:10
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub type RefJoypad = Rc<RefCell<Joypad>>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Joypad` is never constructed
[INFO] [stderr]   --> src/io_device/joypad.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct Joypad {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `keydown`, and `keyup` are never used
[INFO] [stderr]   --> src/io_device/joypad.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Joypad {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     fn keydown(&mut self, key: Key) {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     fn keyup(&mut self, key: Key) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Flag` is never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum Flag {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `IntHandlerFunc` is never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:33:6
[INFO] [stderr]    |
[INFO] [stderr] 33 | type IntHandlerFunc = fn(RefMemory);
[INFO] [stderr]    |      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IDT` is never constructed
[INFO] [stderr]   --> src/io_device/interrupt.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | struct IDT {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Interrupt` is never constructed
[INFO] [stderr]   --> src/io_device/interrupt.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct Interrupt {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefInterrupt` is never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:57:10
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub type RefInterrupt = Rc<RefCell<Interrupt>>;
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `set_handler_fn`, `toggle`, and `handle` are never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | impl Interrupt {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     pub fn toggle(&mut self, flag: Flag) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 |     pub fn handle(&mut self, mem: RefMemory, flag: Flag) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BANK_SIZE` is never used
[INFO] [stderr]  --> src/io_device/video.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stderr]   |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `V_RAM_CAPACITY` is never used
[INFO] [stderr]  --> src/io_device/video.rs:7:7
[INFO] [stderr]   |
[INFO] [stderr] 7 | const V_RAM_CAPACITY: usize = 0x1000;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OAM_CAPACITY` is never used
[INFO] [stderr]  --> src/io_device/video.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const OAM_CAPACITY: usize = 0xA0;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Video` is never constructed
[INFO] [stderr]   --> src/io_device/video.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct Video {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/video.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | impl Video {
[INFO] [stderr]    | ---------- associated function in this implementation
[INFO] [stderr] 23 |     pub fn new() -> Video {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BANK_SIZE` is never used
[INFO] [stderr]  --> src/io_device/wram.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const BANK_SIZE: usize = 0x10;
[INFO] [stderr]   |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_CAPACITY` is never used
[INFO] [stderr]  --> src/io_device/wram.rs:5:7
[INFO] [stderr]   |
[INFO] [stderr] 5 | const RAM_CAPACITY: usize = 0x1000;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WorkRam` is never constructed
[INFO] [stderr]   --> src/io_device/wram.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct WorkRam {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/wram.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl WorkRam {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 18 |     pub fn new() -> WorkRam {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stderr]    |
[INFO] [stderr] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stderr]    |
[INFO] [stderr] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stderr]    |
[INFO] [stderr] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stderr]    |
[INFO] [stderr] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stderr]    |
[INFO] [stderr] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stderr]    |
[INFO] [stderr] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stderr]    |
[INFO] [stderr] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stderr]    |
[INFO] [stderr] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stderr]    |
[INFO] [stderr] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stderr]    |
[INFO] [stderr] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CGBFlag` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:57:10
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub enum CGBFlag {
[INFO] [stderr]    |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stderr]    |
[INFO] [stderr] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stderr]    |
[INFO] [stderr] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stderr]    |
[INFO] [stderr] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stderr]    |
[INFO] [stderr] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stderr]    |
[INFO] [stderr] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stderr]    |
[INFO] [stderr] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stderr]    |
[INFO] [stderr] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stderr]    |
[INFO] [stderr] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stderr]    |
[INFO] [stderr] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SGBFlag` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:85:10
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub enum SGBFlag {
[INFO] [stderr]    |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stderr]    |
[INFO] [stderr] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stderr]    |
[INFO] [stderr] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stderr]    |
[INFO] [stderr] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stderr]     |
[INFO] [stderr] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stderr]     |
[INFO] [stderr] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stderr]     |
[INFO] [stderr] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stderr]     |
[INFO] [stderr] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stderr]     |
[INFO] [stderr] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stderr]     |
[INFO] [stderr] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stderr]     |
[INFO] [stderr] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stderr]     |
[INFO] [stderr] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stderr]     |
[INFO] [stderr] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stderr]     |
[INFO] [stderr] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rom` is never constructed
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:124:12
[INFO] [stderr]     |
[INFO] [stderr] 124 | pub struct Rom {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | impl Rom {
[INFO] [stderr]     | -------- associated function in this implementation
[INFO] [stderr] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Ram` is never constructed
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:147:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub struct Ram {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from`, `dump`, and `mem` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl Ram {
[INFO] [stderr]     | -------- associated items in this implementation
[INFO] [stderr] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     pub fn dump(&self) -> Result<()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stderr]     |
[INFO] [stderr] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RomOnly` is never constructed
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stderr]     |
[INFO] [stderr] 197 | struct RomOnly {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stderr]     |
[INFO] [stderr] 201 | impl RomOnly {
[INFO] [stderr]     | ------------ associated functions in this implementation
[INFO] [stderr] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Cartridge` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:231:11
[INFO] [stderr]     |
[INFO] [stderr] 231 | pub trait Cartridge: Memory {
[INFO] [stderr]     |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CartridgeInfo` is never constructed
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:458:12
[INFO] [stderr]     |
[INFO] [stderr] 458 | pub struct CartridgeInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefCartridge` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:504:10
[INFO] [stderr]     |
[INFO] [stderr] 504 | pub type RefCartridge = Rc<RefCell<Box<dyn Cartridge>>>;
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `power_up` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stderr]     |
[INFO] [stderr] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROM_BANK_LEN` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mod.rs:9:7
[INFO] [stderr]   |
[INFO] [stderr] 9 | const ROM_BANK_LEN: u16 = 0x4000;
[INFO] [stderr]   |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROM_0_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | const ROM_0_BASE: u16 = 0x0000;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROM_0_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const ROM_0_END: u16 = ROM_0_BASE + ROM_BANK_LEN - 1;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROM_X_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const ROM_X_BASE: u16 = 0x4000;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROM_X_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const ROM_X_END: u16 = ROM_X_BASE + ROM_BANK_LEN - 1;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const RAM_BANK_LEN: u16 = 0x2000;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_X_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:24:7
[INFO] [stderr]    |
[INFO] [stderr] 24 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_X_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:26:7
[INFO] [stderr]    |
[INFO] [stderr] 26 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MBC` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub trait MBC: Memory {}
[INFO] [stderr]    |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BankMode` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:13:6
[INFO] [stderr]    |
[INFO] [stderr] 13 | enum BankMode {
[INFO] [stderr]    |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MBC1` is never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct MBC1 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `power_up`, `new`, `bank_mode`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl MBC1 {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     fn bank_mode(&self) -> BankMode {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MBC2` is never constructed
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc2.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct MBC2 {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `power_up`, `new`, and `rom_bank_index` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl MBC2 {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc2.rs:48:7
[INFO] [stderr]    |
[INFO] [stderr] 48 | const RAM_BANK_LEN: u16 = 0x200;
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_X_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc2.rs:50:7
[INFO] [stderr]    |
[INFO] [stderr] 50 | const RAM_X_BASE: u16 = 0xA000;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_X_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc2.rs:52:7
[INFO] [stderr]    |
[INFO] [stderr] 52 | const RAM_X_END: u16 = RAM_X_BASE + RAM_BANK_LEN - 1;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RTC` is never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct RTC {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `latched` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl RTC {
[INFO] [stderr]    | -------- associated items in this implementation
[INFO] [stderr] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     fn latched(&mut self) -> Result<()> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stderr]    |
[INFO] [stderr] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MBC3` is never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:80:12
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub struct MBC3 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stderr]     |
[INFO] [stderr]  91 | impl MBC3 {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr]  92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MBC5` is never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct MBC5 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `power_up`, `new`, `rom_bank_index`, and `ram_bank_index` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl MBC5 {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     fn rom_bank_index(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     fn ram_bank_index(&self) -> u16 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/mother_board.rs:37:16
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stderr]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |
[INFO] [stderr]    |                the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<'_, Box<dyn CPU>> {
[INFO] [stderr]    |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `GBTerm` and `cpu`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{cpu, GBTerm};
[INFO] [stderr]   |             ^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::io_device::cartridge`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::io_device::cartridge;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::MMU`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::mmu::MMU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable call
[INFO] [stderr]   --> src/tests/cpu_instrs.rs:11:25
[INFO] [stderr]    |
[INFO] [stderr] 10 | #[test]
[INFO] [stderr]    | ------- in this attribute macro expansion
[INFO] [stderr] 11 | fn test_cpu_instrs() -> ! {
[INFO] [stderr]    |                         ^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         unreachable call
[INFO] [stderr]    |                         any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/tests/cpu_instrs.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let mut mb = MotherBoard::new(rom_path, ram_path, rtc_path).unwrap();
[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: methods `memory` and `info` are never used
[INFO] [stderr]   --> src/cpu/mod.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait CPU {
[INFO] [stderr]    |           --- methods in this trait
[INFO] [stderr] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start_at` and `freq` are never read
[INFO] [stderr]   --> src/cpu/mod.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct CPUInfo {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 20 |     start_at: SystemTime,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 21 |     freq: u64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `info` is never read
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct LR35902 {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] 22 |     info: CPUInfo,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `now` is never used
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Clock {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `mmu` is never read
[INFO] [stderr]   --> src/mother_board.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct MotherBoard {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 12 |     cpu: RefCPU,
[INFO] [stderr] 13 |     mmu: RefMemory,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `cpu` is never used
[INFO] [stderr]   --> src/mother_board.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl MotherBoard {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestMemory` is never constructed
[INFO] [stderr]    --> src/mmu.rs:283:16
[INFO] [stderr]     |
[INFO] [stderr] 283 |     pub struct TestMemory {
[INFO] [stderr]     |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:288:16
[INFO] [stderr]     |
[INFO] [stderr] 287 |     impl TestMemory {
[INFO] [stderr]     |     --------------- associated function in this implementation
[INFO] [stderr] 288 |         pub fn new() -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_handler_fn` is never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | impl Interrupt {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:170:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl Ram {
[INFO] [stderr]     | -------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `ram`, `header`, and `manufacturer_code_text` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:233:8
[INFO] [stderr]     |
[INFO] [stderr] 231 | pub trait Cartridge: Memory {
[INFO] [stderr]     |           --------- methods in this trait
[INFO] [stderr] 232 |     fn rom(&self) -> &Rom;
[INFO] [stderr] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 234 |     #[inline]
[INFO] [stderr] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gb_simulator` (lib) generated 290 warnings (run `cargo fix --lib -p gb_simulator` to apply 14 suggestions)
[INFO] [stderr] warning: `gb_simulator` (lib test) generated 165 warnings (146 duplicates) (run `cargo fix --lib -p gb_simulator --tests` to apply 7 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gb_simulator-453eb2bb6a3367c6)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc_lo ... ok
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc ... ok
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc_hi ... ok
[INFO] [stdout] test io_device::cartridge::mbc::mbc1::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc5::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc3::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc2::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::tests::test_power_up ... FAILED
[INFO] [stdout] test tests::cpu_instrs::test_cpu_instrs ... FAILED
[INFO] [stdout] test mother_board::tests::test_mother_board ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc1::tests::test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc1::tests::test' (20) panicked at src/io_device/cartridge/mbc/mbc1.rs:150:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818caa - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f402 - core[27de1724e4349be2]::panicking::panic
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x642da67adaea - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc1::tests::test
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc1.rs:150:9
[INFO] [stdout]   21:     0x642da67abf57 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc1::tests::test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc1.rs:149:14
[INFO] [stdout]   22:     0x642da67b9826 - <gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc1::tests::test::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   43:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   44:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc5::tests::test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc5::tests::test' (23) panicked at src/io_device/cartridge/mbc/mbc5.rs:127:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818caa - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f402 - core[27de1724e4349be2]::panicking::panic
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x642da67adb0a - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc5::tests::test
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc5.rs:127:9
[INFO] [stdout]   21:     0x642da67abf87 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc5::tests::test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc5.rs:126:14
[INFO] [stdout]   22:     0x642da67b98e6 - <gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc5::tests::test::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   43:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   44:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc3::tests::test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc3::tests::test' (22) panicked at src/io_device/cartridge/mbc/mbc3.rs:222:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818caa - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f402 - core[27de1724e4349be2]::panicking::panic
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x642da67aa1fa - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc3::tests::test
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc3.rs:222:9
[INFO] [stdout]   21:     0x642da67a9867 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc3::tests::test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc3.rs:221:14
[INFO] [stdout]   22:     0x642da67b98a6 - <gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc3::tests::test::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   43:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   44:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc2::tests::test stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc2::tests::test' (21) panicked at src/io_device/cartridge/mbc/mbc2.rs:115:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818caa - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f402 - core[27de1724e4349be2]::panicking::panic
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x642da67b287a - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc2::tests::test
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc2.rs:115:9
[INFO] [stdout]   21:     0x642da67b0b57 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc2::tests::test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc2.rs:114:14
[INFO] [stdout]   22:     0x642da67b9866 - <gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::mbc::mbc2::tests::test::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   42:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   43:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   44:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::tests::test_power_up stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'io_device::cartridge::tests::test_power_up' (24) panicked at src/io_device/cartridge/mod.rs:532:59:
[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:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818c78 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f1b2 - core[27de1724e4349be2]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x642da67b2150 - <core[27de1724e4349be2]::result::Result<alloc[a57f19327c0ad893]::rc::Rc<core[27de1724e4349be2]::cell::RefCell<alloc[a57f19327c0ad893]::boxed::Box<dyn gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::Cartridge>>>, alloc[a57f19327c0ad893]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x642da67b2150 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::tests::test_power_up
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mod.rs:532:59
[INFO] [stdout]   22:     0x642da67b0b27 - gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::tests::test_power_up::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mod.rs:528:23
[INFO] [stdout]   23:     0x642da67b9726 - <gb_simulator[3e02fb9ddddf86e4]::io_device::cartridge::tests::test_power_up::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   45:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::cpu_instrs::test_cpu_instrs stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::cpu_instrs::test_cpu_instrs' (26) panicked at src/tests/cpu_instrs.rs:15:65:
[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:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818c78 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f1b2 - core[27de1724e4349be2]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x642da67b1e60 - <core[27de1724e4349be2]::result::Result<gb_simulator[3e02fb9ddddf86e4]::mother_board::MotherBoard, alloc[a57f19327c0ad893]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x642da67b1e60 - gb_simulator[3e02fb9ddddf86e4]::tests::cpu_instrs::test_cpu_instrs
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests/cpu_instrs.rs:15:65
[INFO] [stdout]   22:     0x642da67b0b0a - gb_simulator[3e02fb9ddddf86e4]::tests::cpu_instrs::test_cpu_instrs::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tests/cpu_instrs.rs:11:25
[INFO] [stdout]   23:     0x642da67b96e6 - <gb_simulator[3e02fb9ddddf86e4]::tests::cpu_instrs::test_cpu_instrs::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x642da67c8d52 - <std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x642da6839d9f - <alloc[a57f19327c0ad893]::boxed::Box<dyn core[27de1724e4349be2]::ops::function::FnOnce<(), Output = ()> + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x642da6839d9f - <std[3b51380354919863]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7f12bfc48aa4 - <unknown>
[INFO] [stdout]   45:     0x7f12bfcd5a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- mother_board::tests::test_mother_board stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'mother_board::tests::test_mother_board' (25) panicked at src/mother_board.rs:58:65:
[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:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x642da683a4f2 - std[3b51380354919863]::backtrace_rs::backtrace::trace_unsynchronized::<std[3b51380354919863]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x642da683a4f2 - std[3b51380354919863]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x642da683a4f2 - <<std[3b51380354919863]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[27de1724e4349be2]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x642da684ed3a - <core[27de1724e4349be2]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x642da684ed3a - core[27de1724e4349be2]::fmt::write
[INFO] [stdout]    6:     0x642da683f2f6 - std[3b51380354919863]::io::default_write_fmt::<alloc[a57f19327c0ad893]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x642da683f2f6 - <alloc[a57f19327c0ad893]::vec::Vec<u8> as std[3b51380354919863]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x642da6818bbf - <std[3b51380354919863]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x642da6818bbf - std[3b51380354919863]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x642da6832709 - std[3b51380354919863]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x642da67c564e - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x642da67c564e - test[182b2e79ecd7bbd9]::test_main_with_exit_callback::<test[182b2e79ecd7bbd9]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x642da68328c2 - <alloc[a57f19327c0ad893]::boxed::Box<dyn for<'a, 'b> core[27de1724e4349be2]::ops::function::Fn<(&'a std[3b51380354919863]::panic::PanicHookInfo<'b>,), Output = ()> + core[27de1724e4349be2]::marker::Sync + core[27de1724e4349be2]::marker::Send> as core[27de1724e4349be2]::ops::function::Fn<(&std[3b51380354919863]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x642da68328c2 - std[3b51380354919863]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x642da6818c78 - std[3b51380354919863]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x642da680def9 - std[3b51380354919863]::sys::backtrace::__rust_end_short_backtrace::<std[3b51380354919863]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x642da6819acd - __rustc[d79c0ace40940972]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x642da684f43c - core[27de1724e4349be2]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x642da684f1b2 - core[27de1724e4349be2]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x642da67aa0e0 - <core[27de1724e4349be2]::result::Result<gb_simulator[3e02fb9ddddf86e4]::mother_board::MotherBoard, alloc[a57f19327c0ad893]::string::String>>::unwrap
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x642da67aa0e0 - gb_simulator[3e02fb9ddddf86e4]::mother_board::tests::test_mother_board
[INFO] [stdout]                                at /opt/rustwide/workdir/src/mother_board.rs:58:65
[INFO] [stdout]   22:     0x642da67a9837 - gb_simulator[3e02fb9ddddf86e4]::mother_board::tests::test_mother_board::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/mother_board.rs:54:31
[INFO] [stdout]   23:     0x642da67b96a6 - <gb_simulator[3e02fb9ddddf86e4]::mother_board::tests::test_mother_board::{closure#0} as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x642da67b99fb - <fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x642da67b99fb - test[182b2e79ecd7bbd9]::__rust_begin_short_backtrace::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, fn() -> core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x642da67c625a - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x642da67c625a - std[3b51380354919863]::panicking::catch_unwind::<core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>, core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x642da67c625a - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<test[182b2e79ecd7bbd9]::run_test_in_process::{closure#0}>, core[27de1724e4349be2]::result::Result<(), alloc[a57f19327c0ad893]::string::String>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test_in_process
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x642da67c625a - test[182b2e79ecd7bbd9]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x642da67c1804 - test[182b2e79ecd7bbd9]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x642da67c1804 - std[3b51380354919863]::sys::backtrace::__rust_begin_short_backtrace::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x642da67c8d52 - <core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[27de1724e4349be2]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::do_call::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x642da67c8d52 - std[3b51380354919863]::panicking::catch_unwind::<(), core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x642da67c8d52 - std[3b51380354919863]::panic::catch_unwind::<core[27de1724e4349be2]::panic::unwind_safe::AssertUnwindSafe<std[3b51380354919863]::thread::lifecycle::spawn_unchecked<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0d162b25edd5bf0dba9a22e83b614f1113e90474/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x642da67c8d52 - std[3b51380354919863]::thread::lifecycle::spawn_unchecked::<test[182b2e79ecd7bbd9]::run_test::{closure#1}, ()>::{closure#1}
[WARN] too many lines in the log, truncating it
