[INFO] cloning repository https://github.com/rainapepe/rust-nes-emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rainapepe/rust-nes-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aacccee5fdb1672e61a488c2e5abb133638718a6
[INFO] checking rainapepe/rust-nes-emulator against try#b152f5575a2ac7126ae0019e4e679abe9399213e for pr-157841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rainapepe/rust-nes-emulator
[INFO] finished tweaking git repo https://github.com/rainapepe/rust-nes-emulator
[INFO] tweaked toml for git repo https://github.com/rainapepe/rust-nes-emulator written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rainapepe/rust-nes-emulator on toolchain b152f5575a2ac7126ae0019e4e679abe9399213e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rainapepe/rust-nes-emulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking rainapepe/rust-nes-emulator against try#b152f5575a2ac7126ae0019e4e679abe9399213e for pr-157841
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rainapepe/rust-nes-emulator
[INFO] finished tweaking git repo https://github.com/rainapepe/rust-nes-emulator
[INFO] tweaked toml for git repo https://github.com/rainapepe/rust-nes-emulator written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rainapepe/rust-nes-emulator on toolchain b152f5575a2ac7126ae0019e4e679abe9399213e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rainapepe/rust-nes-emulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pistoncore-glutin_window v0.69.0
[INFO] [stderr]   Downloaded pistoncore-window v0.47.0
[INFO] [stderr]   Downloaded piston-graphics_api_version v1.0.0
[INFO] [stderr]   Downloaded shader_version v0.7.0
[INFO] [stderr]   Downloaded pistoncore-input v1.0.0
[INFO] [stderr]   Downloaded read_color v1.0.0
[INFO] [stderr]   Downloaded osmesa-sys v0.1.2
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.5
[INFO] [stderr]   Downloaded cgl v0.3.2
[INFO] [stderr]   Downloaded wayland-egl v0.28.5
[INFO] [stderr]   Downloaded glutin_gles2_sys v0.1.5
[INFO] [stderr]   Downloaded piston-texture v0.8.0
[INFO] [stderr]   Downloaded piston2d-gfx_graphics v0.73.0
[INFO] [stderr]   Downloaded piston-shaders_graphics2d v0.4.0
[INFO] [stderr]   Downloaded spin_sleep v1.0.0
[INFO] [stderr]   Downloaded piston-float v1.0.0
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.1.5
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.7
[INFO] [stderr]   Downloaded gl v0.13.0
[INFO] [stderr]   Downloaded interpolation v0.2.0
[INFO] [stderr]   Downloaded piston v0.53.0
[INFO] [stderr]   Downloaded piston-viewport v1.0.0
[INFO] [stderr]   Downloaded pistoncore-event_loop v0.53.0
[INFO] [stderr]   Downloaded glutin_emscripten_sys v0.1.1
[INFO] [stderr]   Downloaded piston-gfx_texture v0.41.0
[INFO] [stderr]   Downloaded draw_state v0.8.0
[INFO] [stderr]   Downloaded vecmath v1.0.0
[INFO] [stderr]   Downloaded memoffset v0.6.3
[INFO] [stderr]   Downloaded gl_generator v0.13.1
[INFO] [stderr]   Downloaded gfx v0.18.2
[INFO] [stderr]   Downloaded android_glue v0.2.3
[INFO] [stderr]   Downloaded piston_window v0.120.0
[INFO] [stderr]   Downloaded gfx_gl v0.6.1
[INFO] [stderr]   Downloaded cocoa v0.23.0
[INFO] [stderr]   Downloaded piston2d-graphics v0.40.0
[INFO] [stderr]   Downloaded weezl v0.1.5
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.3
[INFO] [stderr]   Downloaded gfx_core v0.9.2
[INFO] [stderr]   Downloaded gfx_device_gl v0.16.2
[INFO] [stderr]   Downloaded piston2d-opengl_graphics v0.78.0
[INFO] [stderr]   Downloaded glutin v0.26.0
[INFO] [stderr]   Downloaded gif v0.11.2
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.3
[INFO] [stderr]   Downloaded syn v1.0.70
[INFO] [stderr]   Downloaded winit v0.24.0
[INFO] [stderr]   Downloaded khronos_api v2.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611
[INFO] running `Command { std: "docker" "start" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611" "/opt/rustwide/cargo-home/bin/cargo" "+b152f5575a2ac7126ae0019e4e679abe9399213e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.3
[INFO] [stderr]    Compiling memoffset v0.6.3
[INFO] [stderr]    Compiling wayland-sys v0.28.5
[INFO] [stderr]     Checking piston-float v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling nom v6.1.2
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling syn v1.0.70
[INFO] [stderr]     Checking piston-viewport v1.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking piston-graphics_api_version v1.0.0
[INFO] [stderr]    Compiling serde v1.0.125
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]     Checking wayland-commons v0.28.5
[INFO] [stderr]     Checking weezl v0.1.5
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]    Compiling wayland-scanner v0.28.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling gl_generator v0.13.1
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking crossbeam-epoch v0.9.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking draw_state v0.8.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking slab v0.4.3
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking gif v0.11.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking gfx_core v0.9.2
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking x11-dl v2.18.5
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling gl v0.13.0
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking lock_api v0.4.3
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking piston-texture v0.8.0
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]    Compiling gfx_gl v0.6.1
[INFO] [stderr]     Checking shader_version v0.7.0
[INFO] [stderr]     Checking vecmath v1.0.0
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking read_color v1.0.0
[INFO] [stderr]     Checking interpolation v0.2.0
[INFO] [stderr]     Checking piston-shaders_graphics2d v0.4.0
[INFO] [stderr]    Compiling wayland-client v0.28.5
[INFO] [stderr]    Compiling wayland-protocols v0.28.5
[INFO] [stderr]     Checking xcursor v0.3.3
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking spin_sleep v1.0.0
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking piston2d-graphics v0.40.0
[INFO] [stderr]     Checking gfx v0.18.2
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking gfx_device_gl v0.16.2
[INFO] [stderr]     Checking wayland-cursor v0.28.5
[INFO] [stderr]     Checking wayland-egl v0.28.5
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]    Compiling serde_derive v1.0.125
[INFO] [stderr]     Checking piston-gfx_texture v0.41.0
[INFO] [stderr]     Checking piston2d-opengl_graphics v0.78.0
[INFO] [stderr]     Checking piston2d-gfx_graphics v0.73.0
[INFO] [stderr]     Checking pistoncore-input v1.0.0
[INFO] [stderr]     Checking pistoncore-window v0.47.0
[INFO] [stderr]     Checking pistoncore-event_loop v0.53.0
[INFO] [stderr]     Checking piston v0.53.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking winit v0.24.0
[INFO] [stderr]     Checking glutin v0.26.0
[INFO] [stderr]     Checking pistoncore-glutin_window v0.69.0
[INFO] [stderr]     Checking piston_window v0.120.0
[INFO] [stderr]     Checking rust-nes-emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `cpu::Cpu6502`
[INFO] [stdout]  --> src/bus.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{cpu::Cpu6502, pad::Pad};
[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: `load_file::*`
[INFO] [stdout]  --> src/cartridge/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use load_file::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cpu::Cpu6502`
[INFO] [stdout]  --> src/bus.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{cpu::Cpu6502, pad::Pad};
[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: `load_file::*`
[INFO] [stdout]  --> src/cartridge/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use load_file::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `addres_mode::AddressMode`
[INFO] [stdout]  --> src/cpu/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use addres_mode::AddressMode;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `addres_mode::AddressMode`
[INFO] [stdout]  --> src/cpu/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use addres_mode::AddressMode;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instruction::Instruction`
[INFO] [stdout]   --> src/cpu/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use instruction::Instruction;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instruction::Instruction`
[INFO] [stdout]   --> src/cpu/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use instruction::Instruction;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opcode::Opcode`
[INFO] [stdout]   --> src/cpu/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use opcode::Opcode;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `opcode::Opcode`
[INFO] [stdout]   --> src/cpu/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use opcode::Opcode;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::video::Pixel`
[INFO] [stdout]  --> src/ppu/clock_helpers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::video::Pixel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::video::Pixel`
[INFO] [stdout]  --> src/ppu/clock_helpers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::video::Pixel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/video/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/video/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cpu6502` and `Flags6502`
[INFO] [stdout]  --> src/video/utils.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::cpu::{Cpu6502, Flags6502};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cpu6502` and `Flags6502`
[INFO] [stdout]  --> src/video/utils.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::cpu::{Cpu6502, Flags6502};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `Rgba`
[INFO] [stdout]   --> src/video/video.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use image::{ImageBuffer, Rgb, Rgba};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `Rgba`
[INFO] [stdout]   --> src/video/video.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use image::{ImageBuffer, Rgb, Rgba};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::*`
[INFO] [stdout]   --> src/video/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use utils::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::*`
[INFO] [stdout]   --> src/video/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use utils::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GAME_MODE` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum GAME_MODE {
[INFO] [stdout]    |      ^^^^^^^^^ help: convert the identifier to upper camel case: `GameMode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GAME_MODE` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum GAME_MODE {
[INFO] [stdout]    |      ^^^^^^^^^ help: convert the identifier to upper camel case: `GameMode`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cartridge/load_file.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut buffer = slice::from_raw_parts_mut(&mut data as *mut T as *mut u8, num_bytes);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cartridge/load_file.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut buffer = slice::from_raw_parts_mut(&mut data as *mut T as *mut u8, num_bytes);
[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: value assigned to `value` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut value: u8 = 0;
[INFO] [stdout]    |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 51 |                 value = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ---------------------------------------- `value` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut value: u8 = 0;
[INFO] [stdout]    |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 51 |                 value = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ---------------------------------------- `value` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut lo: u8 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 55 |                 lo = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ------------------------------------- `lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let mut hi: u8 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 hi = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ------------------------------------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut lo: u8 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 55 |                 lo = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ------------------------------------- `lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]   --> src/cpu/helpers.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let mut hi: u8 = 0;
[INFO] [stdout]    |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 hi = self.bus_read(addr as u16, true);
[INFO] [stdout]    |                 ------------------------------------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:123:29
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut value: u8 = 0;
[INFO] [stdout]     |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 146 |                     value = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ---------------------------------------- `value` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:123:29
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut value: u8 = 0;
[INFO] [stdout]     |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 146 |                     value = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ---------------------------------------- `value` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut lo: u8 = 0;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 151 |                     lo = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ------------------------------------- `lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lo` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut lo: u8 = 0;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 151 |                     lo = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ------------------------------------- `lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let mut hi: u8 = 0;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 153 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let mut hi: u8 = 0;
[INFO] [stdout]     |                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 153 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:153:21
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 159 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:153:21
[INFO] [stdout]     |
[INFO] [stdout] 153 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 159 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:159:21
[INFO] [stdout]     |
[INFO] [stdout] 159 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 165 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:159:21
[INFO] [stdout]     |
[INFO] [stdout] 159 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 165 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 171 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 171 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:171:21
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 177 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:171:21
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 177 |                     hi = 0x00;
[INFO] [stdout]     |                     --------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 183 |                     hi = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ------------------------------------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hi` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     hi = 0x00;
[INFO] [stdout]     |                     ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 183 |                     hi = self.bus_read(addr as u16, true);
[INFO] [stdout]     |                     ------------------------------------- `hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_addr` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mut line_addr: u16 = 0;
[INFO] [stdout]     |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 132 |             line_addr = addr as u16;
[INFO] [stdout]     |             ----------------------- `line_addr` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `line_addr` is never read
[INFO] [stdout]    --> src/cpu/helpers.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mut line_addr: u16 = 0;
[INFO] [stdout]     |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 132 |             line_addr = addr as u16;
[INFO] [stdout]     |             ----------------------- `line_addr` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:23:54
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn cpu_map_write(mapper: &mut Mapper, addr: u16, data: u8) -> (bool, u32) {
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapper`
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn ppu_map_read(mapper: &mut Mapper, addr: u16) -> (bool, u32) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:23:54
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn cpu_map_write(mapper: &mut Mapper, addr: u16, data: u8) -> (bool, u32) {
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapper`
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn ppu_map_read(mapper: &mut Mapper, addr: u16) -> (bool, u32) {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_bits_lo` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:329:58
[INFO] [stdout]     |
[INFO] [stdout] 329 |                     let mut sprite_pattern_bits_lo: u8 = 0;
[INFO] [stdout]     |                                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 401 |                     sprite_pattern_bits_lo = self.ppu_read(sprite_pattern_addr_lo);
[INFO] [stdout]     |                     -------------------------------------------------------------- `sprite_pattern_bits_lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_bits_hi` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:330:58
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     let mut sprite_pattern_bits_hi: u8 = 0;
[INFO] [stdout]     |                                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 402 |                     sprite_pattern_bits_hi = self.ppu_read(sprite_pattern_addr_hi);
[INFO] [stdout]     |                     -------------------------------------------------------------- `sprite_pattern_bits_hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_addr_lo` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:331:59
[INFO] [stdout]     |
[INFO] [stdout] 331 |                       let mut sprite_pattern_addr_lo: u16 = 0;
[INFO] [stdout]     |                                                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 341 | /                             sprite_pattern_addr_lo = ((self.control.get_pattern_sprite() as u16) << 12)  // Which Pattern Table? ...
[INFO] [stdout] 342 | |                                 | ((self.sprite_scanline[i as usize].id as u16)   << 4)  // Which Cell? Tile ID * 16 (16 bytes pe...
[INFO] [stdout] 343 | |                                 | (self.scanline as u16 - self.sprite_scanline[i as usize].y as u16);
[INFO] [stdout]     | |____________________________________________________________________________________________________- `sprite_pattern_addr_lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_addr_hi` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:332:59
[INFO] [stdout]     |
[INFO] [stdout] 332 |                     let mut sprite_pattern_addr_hi: u16 = 0;
[INFO] [stdout]     |                                                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 393 |                     sprite_pattern_addr_hi = sprite_pattern_addr_lo + 8;
[INFO] [stdout]     |                     --------------------------------------------------- `sprite_pattern_addr_hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_bits_lo` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:329:58
[INFO] [stdout]     |
[INFO] [stdout] 329 |                     let mut sprite_pattern_bits_lo: u8 = 0;
[INFO] [stdout]     |                                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 401 |                     sprite_pattern_bits_lo = self.ppu_read(sprite_pattern_addr_lo);
[INFO] [stdout]     |                     -------------------------------------------------------------- `sprite_pattern_bits_lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_bits_hi` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:330:58
[INFO] [stdout]     |
[INFO] [stdout] 330 |                     let mut sprite_pattern_bits_hi: u8 = 0;
[INFO] [stdout]     |                                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 402 |                     sprite_pattern_bits_hi = self.ppu_read(sprite_pattern_addr_hi);
[INFO] [stdout]     |                     -------------------------------------------------------------- `sprite_pattern_bits_hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_addr_lo` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:331:59
[INFO] [stdout]     |
[INFO] [stdout] 331 |                       let mut sprite_pattern_addr_lo: u16 = 0;
[INFO] [stdout]     |                                                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 341 | /                             sprite_pattern_addr_lo = ((self.control.get_pattern_sprite() as u16) << 12)  // Which Pattern Table? ...
[INFO] [stdout] 342 | |                                 | ((self.sprite_scanline[i as usize].id as u16)   << 4)  // Which Cell? Tile ID * 16 (16 bytes pe...
[INFO] [stdout] 343 | |                                 | (self.scanline as u16 - self.sprite_scanline[i as usize].y as u16);
[INFO] [stdout]     | |____________________________________________________________________________________________________- `sprite_pattern_addr_lo` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sprite_pattern_addr_hi` is never read
[INFO] [stdout]    --> src/ppu/clock.rs:332:59
[INFO] [stdout]     |
[INFO] [stdout] 332 |                     let mut sprite_pattern_addr_hi: u16 = 0;
[INFO] [stdout]     |                                                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 393 |                     sprite_pattern_addr_hi = sprite_pattern_addr_lo + 8;
[INFO] [stdout]     |                     --------------------------------------------------- `sprite_pattern_addr_hi` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/video/video.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_context`
[INFO] [stdout]   --> src/video/video.rs:18:55
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_context`
[INFO] [stdout]   --> src/video/video.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn update_textures(&mut self, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/video/video.rs:26:35
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn on_buttom_press(&mut self, key: Key) {}
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/video/video.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn on_buttom_release(&mut self, key: Key) {}
[INFO] [stdout]    |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window`
[INFO] [stdout]   --> src/video/video.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_context`
[INFO] [stdout]   --> src/video/video.rs:18:55
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_context`
[INFO] [stdout]   --> src/video/video.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn update_textures(&mut self, texture_context: &mut G2dTextureContext) {}
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/video/video.rs:26:35
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn on_buttom_press(&mut self, key: Key) {}
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/video/video.rs:28:37
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn on_buttom_release(&mut self, key: Key) {}
[INFO] [stdout]    |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/bus.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Bus {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 43 |     pub version: &'static str,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_buffer_hex` is never used
[INFO] [stdout]   --> src/cartridge/load_file.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn print_buffer_hex(buffer: &Vec<u8>, size: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/cartridge/memory_access.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout]  3 | impl PrgRom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/cartridge/memory_access.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl ChrRom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OneScreenLo` and `OneScreenHi` are never constructed
[INFO] [stdout]  --> src/cartridge/types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Mirror {
[INFO] [stdout]   |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     OneScreenLo,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 8 |     OneScreenHi,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mirror` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mirror`, `mapper_id`, and `prg_banks` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PrgRom {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 14 |     pub mirror: Mirror,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 15 |     pub mapper_id: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 16 |     pub prg_memory: Vec<u8>,
[INFO] [stdout] 17 |     pub prg_banks: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mapper_id` and `chr_banks` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ChrRom {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 24 |     pub mirror: Mirror,
[INFO] [stdout] 25 |     pub mapper_id: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 26 |     pub chr_banks: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `prg_ram_size`, `tv_system1`, `tv_system2`, and `unused` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Header {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 54 |     pub name: [u8; 4],
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub prg_ram_size: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub tv_system1: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 61 |     pub tv_system2: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 62 |     pub unused: [u8; 5],
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ACC` is never constructed
[INFO] [stdout]   --> src/cpu/addres_mode.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum AddressMode {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ACC,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AddressMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pc_back` is never used
[INFO] [stdout]    --> src/cpu/cpu6502.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Cpu6502 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn pc_back(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `irq` is never used
[INFO] [stdout]   --> src/cpu/external_inputs.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Cpu6502 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn irq(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `disassemble` is never used
[INFO] [stdout]    --> src/cpu/helpers.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Cpu6502 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn disassemble(&mut self, start: u16, stop: u16) -> HashMap<u16, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruct` is never constructed
[INFO] [stdout]  --> src/cpu/instruction.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Instruct(&'static str, Opcode, AddressMode, u8);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/mapper/mapper.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Mapper {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn reset(&self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type` is never used
[INFO] [stdout]   --> src/mapper/mapper.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Mapper {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_type(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `get_reg` are never used
[INFO] [stdout]   --> src/pad.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Pad {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_reg(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_screen` is never used
[INFO] [stdout]   --> src/ppu/output.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Ppu2C02 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_screen<'a>(&'a self) -> &'a Frame {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sprite_name_table` is never read
[INFO] [stdout]   --> src/ppu/ppu2C02.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Ppu2C02 {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub sprite_name_table: [Frame; 2], // (não usado) visualização da nametables (tela final na memória) as duas são 256x240
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/ppu/ppu2C02.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl Ppu2C02 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_unused`, `set_unused`, `get_sprite_overflow`, `get_sprite_zero_hit`, and `get_vertical_blank` are never used
[INFO] [stdout]   --> src/ppu/registers.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Status {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 28 |     // unused: 5
[INFO] [stdout] 29 |     pub fn get_unused(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_unused(&mut self, data: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn get_sprite_overflow(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_sprite_zero_hit(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn get_vertical_blank(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ppu/registers.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Mask {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn set_grayscale(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn set_render_background_left(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn set_render_sprites_left(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_render_background(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_render_sprites(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_enhance_red(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn set_enhance_red(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_enhance_green(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_enhance_green(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn get_enhance_blue(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn set_enhance_blue(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ppu/registers.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl PpuControl {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn set_nametable_x(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn set_nametable_y(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn set_increment_mode(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn set_pattern_sprite(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn set_pattern_background(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn set_sprite_size(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_slave_mode(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn set_slave_mode(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn set_enable_nmi(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_unused` and `set_unused` are never used
[INFO] [stdout]    --> src/ppu/registers.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl LoopyRegister {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn get_unused(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn set_unused(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIXEL_SIZE` is never used
[INFO] [stdout]   --> src/video/frame.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const PIXEL_SIZE: f64 = 2.3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border` and `render` are never used
[INFO] [stdout]   --> src/video/frame.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Frame {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set_border(&mut self, color: Pixel) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn render(&self, x: usize, y: usize, pixel_size: f64, context: Context, gl: &mut G2d) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `white`, `red`, `green`, and `blue` are never used
[INFO] [stdout]   --> src/video/pixel.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Pixel {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn white() -> Pixel {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn red() -> Pixel {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn green() -> Pixel {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn blue() -> Pixel {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]   --> src/bus.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Bus {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 43 |     pub version: &'static str,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_font_size` is never used
[INFO] [stdout]   --> src/video/utils.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl DrawText {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_font_size(font_size: usize, x: usize, y: usize, c: Context) -> DrawText {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_buffer_hex` is never used
[INFO] [stdout]   --> src/cartridge/load_file.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn print_buffer_hex(buffer: &Vec<u8>, size: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/cartridge/memory_access.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout]  3 | impl PrgRom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/cartridge/memory_access.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl ChrRom {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OneScreenLo` and `OneScreenHi` are never constructed
[INFO] [stdout]  --> src/cartridge/types.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Mirror {
[INFO] [stdout]   |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     OneScreenLo,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 8 |     OneScreenHi,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mirror` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mirror`, `mapper_id`, and `prg_banks` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PrgRom {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 14 |     pub mirror: Mirror,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 15 |     pub mapper_id: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 16 |     pub prg_memory: Vec<u8>,
[INFO] [stdout] 17 |     pub prg_banks: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mapper_id` and `chr_banks` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ChrRom {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 24 |     pub mirror: Mirror,
[INFO] [stdout] 25 |     pub mapper_id: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 26 |     pub chr_banks: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `prg_ram_size`, `tv_system1`, `tv_system2`, and `unused` are never read
[INFO] [stdout]   --> src/cartridge/types.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Header {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 54 |     pub name: [u8; 4],
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub prg_ram_size: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub tv_system1: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 61 |     pub tv_system2: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 62 |     pub unused: [u8; 5],
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ACC` is never constructed
[INFO] [stdout]   --> src/cpu/addres_mode.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum AddressMode {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ACC,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AddressMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pc_back` is never used
[INFO] [stdout]    --> src/cpu/cpu6502.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Cpu6502 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn pc_back(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `irq` is never used
[INFO] [stdout]   --> src/cpu/external_inputs.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Cpu6502 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn irq(&mut self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `disassemble` is never used
[INFO] [stdout]    --> src/cpu/helpers.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl Cpu6502 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn disassemble(&mut self, start: u16, stop: u16) -> HashMap<u16, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruct` is never constructed
[INFO] [stdout]  --> src/cpu/instruction.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Instruct(&'static str, Opcode, AddressMode, u8);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/mapper/mapper.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Mapper {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn reset(&self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type` is never used
[INFO] [stdout]   --> src/mapper/mapper.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Mapper {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_type(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `get_reg` are never used
[INFO] [stdout]   --> src/pad.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Pad {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_reg(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_screen` is never used
[INFO] [stdout]   --> src/ppu/output.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Ppu2C02 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_screen<'a>(&'a self) -> &'a Frame {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sprite_name_table` is never read
[INFO] [stdout]   --> src/ppu/ppu2C02.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Ppu2C02 {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub sprite_name_table: [Frame; 2], // (não usado) visualização da nametables (tela final na memória) as duas são 256x240
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/ppu/ppu2C02.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl Ppu2C02 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_unused`, `set_unused`, `get_sprite_overflow`, `get_sprite_zero_hit`, and `get_vertical_blank` are never used
[INFO] [stdout]   --> src/ppu/registers.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Status {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 28 |     // unused: 5
[INFO] [stdout] 29 |     pub fn get_unused(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_unused(&mut self, data: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn get_sprite_overflow(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_sprite_zero_hit(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn get_vertical_blank(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 |     if addr >= 0x8000 && addr <= 0xFFFF {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if addr >= 0x8000 && addr <= 0xFFFF {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |     if addr >= 0 && addr <= 0x1FFF {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if addr >= 0x0000 && addr <= 0x1FFF {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ppu/registers.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Mask {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn set_grayscale(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn set_render_background_left(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn set_render_sprites_left(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_render_background(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_render_sprites(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_enhance_red(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn set_enhance_red(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_enhance_green(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_enhance_green(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn get_enhance_blue(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn set_enhance_blue(&mut self, data: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ppu/registers.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl PpuControl {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn set_nametable_x(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn set_nametable_y(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn set_increment_mode(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn set_pattern_sprite(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn set_pattern_background(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn set_sprite_size(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_slave_mode(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn set_slave_mode(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn set_enable_nmi(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_unused` and `set_unused` are never used
[INFO] [stdout]    --> src/ppu/registers.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl LoopyRegister {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn get_unused(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn set_unused(&mut self, data: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIXEL_SIZE` is never used
[INFO] [stdout]   --> src/video/frame.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const PIXEL_SIZE: f64 = 2.3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_border` and `render` are never used
[INFO] [stdout]   --> src/video/frame.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Frame {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set_border(&mut self, color: Pixel) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn render(&self, x: usize, y: usize, pixel_size: f64, context: Context, gl: &mut G2d) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `ppu2C02` should have a snake case name
[INFO] [stdout]  --> src/ppu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod ppu2C02;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `ppu2_c02`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `white`, `red`, `green`, and `blue` are never used
[INFO] [stdout]   --> src/video/pixel.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Pixel {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn white() -> Pixel {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn red() -> Pixel {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn green() -> Pixel {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn blue() -> Pixel {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_font_size` is never used
[INFO] [stdout]   --> src/video/utils.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl DrawText {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_font_size(font_size: usize, x: usize, y: usize, c: Context) -> DrawText {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 |     if addr >= 0x8000 && addr <= 0xFFFF {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if addr >= 0x8000 && addr <= 0xFFFF {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |     if addr >= 0 && addr <= 0x1FFF {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/mapper/mappers/mapper_000.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if addr >= 0x0000 && addr <= 0x1FFF {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `ppu2C02` should have a snake case name
[INFO] [stdout]  --> src/ppu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod ppu2C02;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `ppu2_c02`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.72s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611", kill_on_drop: false }`
[INFO] [stdout] fb8b6437940fa812b1bdb700d8bb49a467e611a7ef4a6b845abc09af864df611
