[INFO] cloning repository https://github.com/rap2363/rustyraven [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rap2363/rustyraven" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frap2363%2Frustyraven", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frap2363%2Frustyraven'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bcd862e885c43ff5c30974af116416939ed49957 [INFO] checking rap2363/rustyraven against c999cef531ea9059e189e82fe0e82c5daf249bc9 for pr-152972 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frap2363%2Frustyraven" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/rap2363/rustyraven [INFO] finished tweaking git repo https://github.com/rap2363/rustyraven [INFO] tweaked toml for git repo https://github.com/rap2363/rustyraven written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rap2363/rustyraven on toolchain c999cef531ea9059e189e82fe0e82c5daf249bc9 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rap2363/rustyraven 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" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded version-compare v0.1.1 [INFO] [stderr] Downloaded redox_syscall v0.9.0 [INFO] [stderr] Downloaded minifb v0.28.0 [INFO] [stderr] Downloaded cc v1.3.0 [INFO] [stderr] Downloaded sdl2 v0.38.0 [INFO] [stderr] Downloaded sdl2-sys v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb [INFO] running `Command { std: "docker" "start" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb", 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" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb" "/opt/rustwide/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb", 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" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb" "/opt/rustwide/cargo-home/bin/cargo" "+c999cef531ea9059e189e82fe0e82c5daf249bc9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.13.1 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling cc v1.3.0 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling wayland-scanner v0.31.11 [INFO] [stderr] Checking arrayvec v0.7.8 [INFO] [stderr] Compiling zerocopy v0.8.55 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking hashbrown v0.17.1 [INFO] [stderr] Checking fearless_simd v0.4.1 [INFO] [stderr] Compiling unicode-general-category v1.1.0 [INFO] [stderr] Checking polycool v0.4.0 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Compiling winit v0.30.13 [INFO] [stderr] Checking kurbo v0.13.1 [INFO] [stderr] Compiling wayland-sys v0.31.11 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Checking profiling v1.0.18 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking euclid v0.22.14 [INFO] [stderr] Checking either v1.16.0 [INFO] [stderr] Checking pxfm v0.1.30 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Checking self_cell v1.3.0 [INFO] [stderr] Checking epaint_default_fonts v0.35.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.20.0 [INFO] [stderr] Checking uuid v1.24.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Checking guillotiere v0.7.0 [INFO] [stderr] Checking accesskit v0.24.1 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Compiling wayland-backend v0.3.16 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Compiling minifb v0.28.0 [INFO] [stderr] Checking glow v0.17.0 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking memmap2 v0.9.11 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking getrandom v0.4.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling bytemuck_derive v1.11.0 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Checking bytemuck v1.25.2 [INFO] [stderr] Checking zerofrom v0.1.8 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking yoke v0.8.3 [INFO] [stderr] Checking font-types v0.11.3 [INFO] [stderr] Checking color v0.3.3 [INFO] [stderr] Checking emath v0.35.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking zerovec v0.11.6 [INFO] [stderr] Checking zerotrie v0.2.4 [INFO] [stderr] Checking read-fonts v0.39.2 [INFO] [stderr] Checking ecolor v0.35.0 [INFO] [stderr] Checking tinystr v0.8.3 [INFO] [stderr] Checking potential_utf v0.1.5 [INFO] [stderr] Checking icu_collections v2.2.0 [INFO] [stderr] Checking peniko v0.6.1 [INFO] [stderr] Checking icu_locale_core v2.2.0 [INFO] [stderr] Checking vello_common v0.0.9 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking tempfile v3.27.0 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking calloop v0.14.4 [INFO] [stderr] Checking vello_cpu v0.0.9 [INFO] [stderr] Checking icu_provider v2.2.0 [INFO] [stderr] Checking icu_properties v2.2.0 [INFO] [stderr] Checking icu_normalizer v2.2.0 [INFO] [stderr] Checking wayland-client v0.31.15 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking wayland-protocols v0.32.13 [INFO] [stderr] Checking wayland-cursor v0.31.14 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking calloop-wayland-source v0.4.1 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Checking idna_adapter v1.2.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking webbrowser v1.2.1 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking skrifa v0.42.1 [INFO] [stderr] Checking harfrust v0.7.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.12 [INFO] [stderr] Checking wayland-protocols-misc v0.3.12 [INFO] [stderr] Checking wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.12 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking smithay-clipboard v0.7.3 [INFO] [stderr] Checking epaint v0.35.0 [INFO] [stderr] Checking egui v0.35.0 [INFO] [stderr] Checking egui-winit v0.35.0 [INFO] [stderr] Checking egui_glow v0.35.0 [INFO] [stderr] Checking eframe v0.35.0 [INFO] [stderr] Checking RustyRaven v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [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::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `addressing_modes` and `rom::NametableArrangement::VerticallyMirrored` [INFO] [stdout] --> src/addressing_modes.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | use crate::{addressing_modes, rom::NametableArrangement::VerticallyMirrored}; [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::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [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: enum `AddressingMode` is never used [INFO] [stdout] --> src/addressing_modes.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PageBoundaryResult` is never used [INFO] [stdout] --> src/addressing_modes.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum PageBoundaryResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AddressingModeData` is never used [INFO] [stdout] --> src/addressing_modes.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | pub enum AddressingModeData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_data` and `as_address` are never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn as_address(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `into_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl AddressingMode { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn into_data(self, cpu: &Cpu) -> (AddressingModeData, PageBoundaryResult) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NMI_ADDRESS` is never used [INFO] [stdout] --> src/cpu.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NMI_ADDRESS: u16 = 0xFFFA; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RESET_ADDRESS` is never used [INFO] [stdout] --> src/cpu.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const RESET_ADDRESS: u16 = 0xFFFC; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Opcode` is never used [INFO] [stdout] --> src/cpu.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | enum Opcode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Nmi` is never used [INFO] [stdout] --> src/cpu.rs:75:6 [INFO] [stdout] | [INFO] [stdout] 75 | enum Nmi { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bus` is never constructed [INFO] [stdout] --> src/cpu.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct Bus { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from`, `ppu`, `controller_1`, and `controller_2` are never used [INFO] [stdout] --> src/cpu.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl Bus { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 89 | pub fn from(ppu: Ppu, controller_1: Controller, controller_2: Controller) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn ppu(&mut self) -> &mut Ppu { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn controller_1(&mut self) -> &mut Controller { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn controller_2(&mut self) -> &mut Controller { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/cpu.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Cycles` is never used [INFO] [stdout] --> src/cpu.rs:122:6 [INFO] [stdout] | [INFO] [stdout] 122 | enum Cycles { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FetchInstructionResult` is never constructed [INFO] [stdout] --> src/cpu.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | pub struct FetchInstructionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WriteLocation` is never used [INFO] [stdout] --> src/cpu.rs:133:6 [INFO] [stdout] | [INFO] [stdout] 133 | enum WriteLocation { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cpu.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 138 | impl FetchInstructionResult { [INFO] [stdout] | --------------------------- associated function in this implementation [INFO] [stdout] 139 | fn new(opcode: Opcode, addressing_mode: AddressingMode, cycles: Cycles) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cpu.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 145 | pub fn initialize(mapper: Rc>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn set_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn clear_nmi_latch(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn dec_nmi(&mut self, cycles: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn is_nmi(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn clear_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn increment_pc(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn push_stack(&mut self, m: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn push_pc(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | fn pull_stack(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | fn pull_address(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | fn fetch_next_byte(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn fetch_next_two_bytes(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | fn implied(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | fn immediate(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | fn zero_page(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | fn zero_page_x(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | fn zero_page_y(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | fn absolute(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | fn absolute_x(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | fn absolute_y(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | fn indirect_zero_page_x(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | fn indirect_zero_page_y(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | fn indirect(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | fn relative(&mut self) -> AddressingMode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | pub fn fetch_instruction(&mut self) -> FetchInstructionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 548 | fn check_and_set_negative(&mut self, x: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | fn check_and_set_overflow(&mut self, x: u8, y: u8, sum: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 570 | fn check_and_set_zero(&mut self, x: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 578 | fn check_and_set_carry(&mut self, c: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 587 | fn branch_offset(&mut self, offset: u8) -> PageBoundaryResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 598 | fn adc(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 616 | fn and(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 629 | fn asl(&mut self, m: u8, write_location: WriteLocation) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 652 | fn bcc(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 664 | fn bcs(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | fn beq(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 689 | fn bit(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 703 | fn bmi(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 715 | fn bne(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 727 | fn bpl(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 739 | fn brk(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 752 | fn bvc(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 764 | fn bvs(&mut self, m: u8) -> (bool, PageBoundaryResult) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | fn clc(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 782 | fn cld(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 789 | fn cli(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 796 | fn clv(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 804 | fn cmp_processor_status(&mut self, a: u8, b: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 829 | fn cmp(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 837 | fn cpx(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 845 | fn cpy(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 852 | fn dec(&mut self, m: u8, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 863 | fn dex(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | fn dey(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 881 | fn eor(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 890 | fn inc(&mut self, m: u8, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 901 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 910 | fn iny(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 919 | fn jmp(&mut self, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 928 | fn jsr(&mut self, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 939 | fn lda(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 948 | fn ldx(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 957 | fn ldy(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 966 | fn lsr(&mut self, m: u8, write_location: WriteLocation) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 987 | fn ora(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 995 | fn pha(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1001 | fn php(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1007 | fn pla(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | fn plp(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1023 | fn rol(&mut self, m: u8, write_location: WriteLocation) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1044 | fn ror(&mut self, m: u8, write_location: WriteLocation) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1065 | fn rti(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1073 | fn rts(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1080 | fn sbc(&mut self, m: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1085 | fn sec(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1090 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1095 | fn sei(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1102 | fn sta(&mut self, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1109 | fn stx(&mut self, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1116 | fn sty(&mut self, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1123 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1132 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1141 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1150 | fn txa(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1159 | fn txs(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1166 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1184 | fn handle_nmi_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1209 | fn calculate_branch_cycles(num_cycles: &mut usize, branch_and_pbr: (bool, PageBoundaryResult)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1224 | pub fn execute_cycles_for_one_instruction(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1239 | fn get_data(&self, addressing_mode_data: AddressingModeData) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1247 | pub fn fetch_instruction_and_execute(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Button` is never used [INFO] [stdout] --> src/controller.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Button { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Controller` is never constructed [INFO] [stdout] --> src/controller.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Controller { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/controller.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 28 | pub fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn strobe_high(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn strobe_low(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn read(&mut self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn read_button(&self, button: Button) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn set_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Segment` is never constructed [INFO] [stdout] --> src/memory.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Segment { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `initialize_with`, `write_bytes`, `write_byte`, and `read_byte` are never used [INFO] [stdout] --> src/memory.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Segment { [INFO] [stdout] | ------------------------------- associated items in this implementation [INFO] [stdout] 16 | // Initializes the segment to all zeros. [INFO] [stdout] 17 | pub fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn initialize_with(data: &[u8]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn write_bytes(&mut self, address: usize, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn write_byte(&mut self, address: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn read_byte(&self, address: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CpuMemory` is never constructed [INFO] [stdout] --> src/memory.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct CpuMemory { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/memory.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 51 | pub fn initialize(bus: Rc>, mapper: Rc>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn write_byte_to_stack(&mut self, sp: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn read_byte_from_stack(&self, sp: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn write_byte(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn get_dma_bytes(&self, address_hi: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn read_byte(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn read_two_bytes_wrapping_page(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn read_two_bytes_zero_page(&self, address: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRERENDER_SCANLINE` is never used [INFO] [stdout] --> src/ppu.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const PRERENDER_SCANLINE: usize = 261; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_SCANLINES` is never used [INFO] [stdout] --> src/ppu.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const NUM_SCANLINES: usize = 262; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_DOTS` is never used [INFO] [stdout] --> src/ppu.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const NUM_DOTS: usize = 341; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG_PALETTE_RAM` is never used [INFO] [stdout] --> src/ppu.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const BG_PALETTE_RAM: u16 = 0x3F00; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_RAM` is never used [INFO] [stdout] --> src/ppu.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SPRITE_PALETTE_RAM: u16 = 0x3F10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NametableBank` is never used [INFO] [stdout] --> src/ppu.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum NametableBank { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuMemory` is never constructed [INFO] [stdout] --> src/ppu.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | struct PpuMemory { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pixel` is never constructed [INFO] [stdout] --> src/ppu.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Pixel(pub u8, pub u8, pub u8); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SpritePriority` is never used [INFO] [stdout] --> src/ppu.rs:38:6 [INFO] [stdout] | [INFO] [stdout] 38 | enum SpritePriority { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpritePixel` is never constructed [INFO] [stdout] --> src/ppu.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | struct SpritePixel(Pixel, SpritePriority, bool, bool); // bools encode whether the pixel is for a sprite 0 pixel and whether it's tr... [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SYSTEM_PALETTE_COLORS` is never used [INFO] [stdout] --> src/ppu.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const SYSTEM_PALETTE_COLORS: [Pixel; 64] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_system_color` is never used [INFO] [stdout] --> src/ppu.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn get_system_color(color_index: u8) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `select_name_table_bank`, `write_byte`, `write_bytes`, `read_byte`, and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 122 | pub fn initialize(mapper: Rc>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn select_name_table_bank(&self, address: u16) -> (NametableBank, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn write_byte(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn read_byte(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CycleOperation` is never used [INFO] [stdout] --> src/ppu.rs:233:6 [INFO] [stdout] | [INFO] [stdout] 233 | enum CycleOperation { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LatchedDataBuffer` is never constructed [INFO] [stdout] --> src/ppu.rs:251:8 [INFO] [stdout] | [INFO] [stdout] 251 | struct LatchedDataBuffer(u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_and_set` is never used [INFO] [stdout] --> src/ppu.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 253 | impl LatchedDataBuffer { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 254 | fn read_and_set(&mut self, new_data: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DoubleBuffer` is never constructed [INFO] [stdout] --> src/ppu.rs:264:8 [INFO] [stdout] | [INFO] [stdout] 264 | struct DoubleBuffer { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `front`, `back`, and `swap` are never used [INFO] [stdout] --> src/ppu.rs:271:8 [INFO] [stdout] | [INFO] [stdout] 270 | impl DoubleBuffer { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 271 | fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | fn front(&self) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn back(&mut self) -> &mut Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | fn swap(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShiftRegister` is never constructed [INFO] [stdout] --> src/ppu.rs:299:8 [INFO] [stdout] | [INFO] [stdout] 299 | struct ShiftRegister(u16); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `push`, `hi`, `lo`, and `bit` are never used [INFO] [stdout] --> src/ppu.rs:303:8 [INFO] [stdout] | [INFO] [stdout] 301 | impl ShiftRegister { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 302 | [INFO] [stdout] 303 | fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn push(&mut self, byte: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn hi(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn lo(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 319 | fn bit(&self, n: u8) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sprite` is never constructed [INFO] [stdout] --> src/ppu.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | struct Sprite { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `is_sprite_zero` are never used [INFO] [stdout] --> src/ppu.rs:336:8 [INFO] [stdout] | [INFO] [stdout] 335 | impl Sprite { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 336 | fn from(bytes: &[u8; 4], is_sprite_zero: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | fn is_sprite_zero(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ppu` is never constructed [INFO] [stdout] --> src/ppu.rs:352:12 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct Ppu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WriteToggle` is never used [INFO] [stdout] --> src/ppu.rs:381:6 [INFO] [stdout] | [INFO] [stdout] 381 | enum WriteToggle { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu.rs:387:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 387 | pub fn initialize(mapper: Rc>) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 482 | pub fn nmi(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 486 | fn rendering_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | pub fn write_io_register(&mut self, address: u16, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn read_io_register(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | fn increment_vram(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 642 | pub fn dma(&mut self, dma_bytes: &[u8]) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | pub fn dma_flag(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 663 | fn increment_coarse_x(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | fn increment_y(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | fn fine_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 709 | fn create_sprite_line_pixels(&self, sprites_on_scanline: Vec, scanline_y: u8) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | fn get_line_sprites(&self, scanline_y: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn get_image(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 802 | fn iterate_frame_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 813 | pub fn execute_cycle(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn palette_color(&self, idx: u16) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | fn execute_operation(&mut self, operation: CycleOperation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuControl` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PpuControl(u8); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SpriteSize` is never used [INFO] [stdout] --> src/ppu_registers.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum SpriteSize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VramIncrement` is never used [INFO] [stdout] --> src/ppu_registers.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum VramIncrement { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 26 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_nmi(self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn sprite_size(self) -> SpriteSize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn bg_pattern_table_half(self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn sprite_pattern_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn vram_address_increment(self) -> VramIncrement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn base_name_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuMask` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct PpuMask(u8); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from`, `into`, `sprites_enabled`, `bg_enabled`, `sprites_left_column_disabled`, and `bg_left_column_disabled` are never used [INFO] [stdout] --> src/ppu_registers.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl PpuMask { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 82 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn sprites_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn bg_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn sprites_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn bg_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessorStatus` is never constructed [INFO] [stdout] --> src/processor_status.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct ProcessorStatus(u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/processor_status.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 7 | pub fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn from(flags: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn set_carry(self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn clear_carry(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn is_carry(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn carry(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn set_zero(self) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn clear_zero(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn is_zero(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn set_interrupt(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn clear_interrupt(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn is_interrupt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn set_decimal(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn clear_decimal(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn set_break(self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn clear_break(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_break(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn set_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn set_overflow(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn clear_overflow(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn is_overflow(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn set_negative(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn clear_negative(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn is_negative(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MapperName` is never used [INFO] [stdout] --> src/rom.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NametableArrangement` is never used [INFO] [stdout] --> src/rom.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum NametableArrangement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NesRom` is never constructed [INFO] [stdout] --> src/rom.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct NesRom { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_file_path` is never used [INFO] [stdout] --> src/rom.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl NesRom { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 47 | pub fn from_file_path(filepath: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Mapper` is never used [INFO] [stdout] --> src/mappers/mapper.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait Mapper { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_mapper` is never used [INFO] [stdout] --> src/mappers/mapper.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_mapper(rom: &NesRom) -> Rc> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapper0` is never constructed [INFO] [stdout] --> src/mappers/mapper_0.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Mapper0 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from` and `test_initialize` are never used [INFO] [stdout] --> src/mappers/mapper_0.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Mapper0 { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 34 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PrgBankMode` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:120:6 [INFO] [stdout] | [INFO] [stdout] 120 | enum PrgBankMode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChrBankMode` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:130:6 [INFO] [stdout] | [INFO] [stdout] 130 | enum ChrBankMode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Register` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:135:6 [INFO] [stdout] | [INFO] [stdout] 135 | enum Register { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ControlState` is never constructed [INFO] [stdout] --> src/mappers/mapper_1.rs:143:8 [INFO] [stdout] | [INFO] [stdout] 143 | struct ControlState { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize` and `reset` are never used [INFO] [stdout] --> src/mappers/mapper_1.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 154 | impl ControlState { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 155 | [INFO] [stdout] 156 | fn initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapper1` is never constructed [INFO] [stdout] --> src/mappers/mapper_1.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct Mapper1 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/mappers/mapper_1.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 195 | impl Mapper1 { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 196 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn write_control(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | fn write_chr_bank_0(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn write_chr_bank_1(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn write_prg_bank(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | fn get_mapped_prg_address(&self, address: u16) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | fn get_mapped_chr_address(&self, address: u16) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapper2` is never constructed [INFO] [stdout] --> src/mappers/mapper_2.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Mapper2 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/mappers/mapper_2.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl Mapper2 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 55 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapper7` is never constructed [INFO] [stdout] --> src/mappers/mapper_7.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Mapper7 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from` and `test_initialize` are never used [INFO] [stdout] --> src/mappers/mapper_7.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Mapper7 { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 47 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `RustyRaven` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `rusty_raven` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (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/addressing_modes.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [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/addressing_modes.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `fs` [INFO] [stdout] --> src/test_opcodes.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NMI_ADDRESS` is never used [INFO] [stdout] --> src/cpu.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NMI_ADDRESS: u16 = 0xFFFA; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CycleLatency` and `Interrupt` are never constructed [INFO] [stdout] --> src/cpu.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 75 | enum Nmi { [INFO] [stdout] | --- variants in this enum [INFO] [stdout] 76 | None, [INFO] [stdout] 77 | CycleLatency(u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 78 | Interrupt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Nmi` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bus`, `cycle_budget`, `nmi`, and `nmi_latch` are never read [INFO] [stdout] --> src/cpu.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct Cpu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 107 | pub memory: CpuMemory, [INFO] [stdout] 108 | pub bus: Rc>, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub cycle_budget: i32, // when cycle_budget >= 0, we're allowed to execute cycles. [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 117 | nmi: Nmi, // Starts at 7 and decrements down to 0 with our normal cycle count. When this [INFO] [stdout] | ^^^ [INFO] [stdout] 118 | // happens we trigger an interrupt! [INFO] [stdout] 119 | nmi_latch: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn set_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn clear_nmi_latch(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn dec_nmi(&mut self, cycles: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn is_nmi(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn clear_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn push_pc(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1184 | fn handle_nmi_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1224 | pub fn execute_cycles_for_one_instruction(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_button` is never used [INFO] [stdout] --> src/controller.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte_zero_page` is never used [INFO] [stdout] --> src/memory.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_RAM` is never used [INFO] [stdout] --> src/ppu.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SPRITE_PALETTE_RAM: u16 = 0x3F10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, and `2` are never read [INFO] [stdout] --> src/ppu.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Pixel(pub u8, pub u8, pub u8); [INFO] [stdout] | ----- ^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `Pixel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BehindBackground` and `InFrontOfBackground` are never constructed [INFO] [stdout] --> src/ppu.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 38 | enum SpritePriority { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 39 | BehindBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | InFrontOfBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpritePriority` 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 `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/ppu.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | struct SpritePixel(Pixel, SpritePriority, bool, bool); // bools encode whether the pixel is for a sprite 0 pixel and whether it's tr... [INFO] [stdout] | ----------- ^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `SpritePixel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SYSTEM_PALETTE_COLORS` is never used [INFO] [stdout] --> src/ppu.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const SYSTEM_PALETTE_COLORS: [Pixel; 64] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_system_color` is never used [INFO] [stdout] --> src/ppu.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn get_system_color(color_index: u8) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `front`, `back`, and `ready` are never read [INFO] [stdout] --> src/ppu.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 264 | struct DoubleBuffer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 265 | front: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 266 | back: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 267 | ready: Cell, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `front`, `back`, and `swap` are never used [INFO] [stdout] --> src/ppu.rs:279:8 [INFO] [stdout] | [INFO] [stdout] 270 | impl DoubleBuffer { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 279 | fn front(&self) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn back(&mut self) -> &mut Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | fn swap(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ppu.rs:299:22 [INFO] [stdout] | [INFO] [stdout] 299 | struct ShiftRegister(u16); [INFO] [stdout] | ------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push`, `hi`, `lo`, and `bit` are never used [INFO] [stdout] --> src/ppu.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 301 | impl ShiftRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 307 | fn push(&mut self, byte: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn hi(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn lo(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 319 | fn bit(&self, n: u8) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sprite` is never constructed [INFO] [stdout] --> src/ppu.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | struct Sprite { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `is_sprite_zero` are never used [INFO] [stdout] --> src/ppu.rs:336:8 [INFO] [stdout] | [INFO] [stdout] 335 | impl Sprite { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 336 | fn from(bytes: &[u8; 4], is_sprite_zero: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | fn is_sprite_zero(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/ppu.rs:363:5 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 363 | frame_operations: Vec<[Vec; NUM_DOTS]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 364 | frame_index: (usize, usize), // row, column, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 365 | even_frame: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | name_table_byte: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 371 | attribute_table_group: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 372 | pattern_table_byte_lo: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 373 | pattern_table_byte_hi: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 374 | pattern_byte_sr_hi: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 375 | pattern_byte_sr_lo: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 376 | attribute_byte_sr: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 377 | image_buffer: DoubleBuffer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 378 | line_sprite_pixels: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 482 | pub fn nmi(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 486 | fn rendering_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | pub fn dma_flag(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 663 | fn increment_coarse_x(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | fn increment_y(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | fn fine_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 709 | fn create_sprite_line_pixels(&self, sprites_on_scanline: Vec, scanline_y: u8) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | fn get_line_sprites(&self, scanline_y: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn get_image(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 802 | fn iterate_frame_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 813 | pub fn execute_cycle(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn palette_color(&self, idx: u16) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | fn execute_operation(&mut self, operation: CycleOperation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bg_pattern_table_half` and `sprite_pattern_table_address` are never used [INFO] [stdout] --> src/ppu_registers.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn bg_pattern_table_half(self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn sprite_pattern_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sprites_enabled`, `bg_enabled`, `sprites_left_column_disabled`, and `bg_left_column_disabled` are never used [INFO] [stdout] --> src/ppu_registers.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl PpuMask { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn sprites_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn bg_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn sprites_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn bg_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_decimal` and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MapperName` is never used [INFO] [stdout] --> src/rom.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NesRom` is never constructed [INFO] [stdout] --> src/rom.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct NesRom { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_file_path` is never used [INFO] [stdout] --> src/rom.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl NesRom { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 47 | pub fn from_file_path(filepath: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_mapper` is never used [INFO] [stdout] --> src/mappers/mapper.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn get_mapper(rom: &NesRom) -> Rc> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/mappers/mapper_0.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Mapper0 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 34 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 195 | impl Mapper1 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 196 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mapper2` is never constructed [INFO] [stdout] --> src/mappers/mapper_2.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Mapper2 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/mappers/mapper_2.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl Mapper2 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 55 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/mappers/mapper_7.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Mapper7 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 47 | pub fn from(rom: &NesRom) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [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::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [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::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `addressing_modes` and `rom::NametableArrangement::VerticallyMirrored` [INFO] [stdout] --> src/addressing_modes.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | use crate::{addressing_modes, rom::NametableArrangement::VerticallyMirrored}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `addressing_modes` and `rom::NametableArrangement::VerticallyMirrored` [INFO] [stdout] --> src/addressing_modes.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | use crate::{addressing_modes, rom::NametableArrangement::VerticallyMirrored}; [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::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `fs` [INFO] [stdout] --> src/test_opcodes.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `addressing_modes` and `rom::NametableArrangement::VerticallyMirrored` [INFO] [stdout] --> src/addressing_modes.rs:122:17 [INFO] [stdout] | [INFO] [stdout] 122 | use crate::{addressing_modes, rom::NametableArrangement::VerticallyMirrored}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::controller::Controller` [INFO] [stdout] --> src/memory.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::controller::Controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [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/addressing_modes.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [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/addressing_modes.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [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/headless.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/headless.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut now = std::time::Instant::now(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/headless.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut num_frames = 0; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sleep_duration` [INFO] [stdout] --> src/headless.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sleep_duration` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/headless.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut now = std::time::Instant::now(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_frames` [INFO] [stdout] --> src/headless.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut num_frames = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_button` and `clear_button` are never used [INFO] [stdout] --> src/controller.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn set_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_string` and `fetch_next_two_bytes_wrapping_page` are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_byte_zero_page` are never used [INFO] [stdout] --> src/memory.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_chr_rom_data` and `vblank` are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_nmi` and `base_name_table_address` are never used [INFO] [stdout] --> src/ppu_registers.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_nmi(self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn base_name_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_interrupt`, `is_decimal`, `is_break`, and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn is_interrupt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_break(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_0.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Mapper0 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 195 | impl Mapper1 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 213 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_7.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 46 | impl Mapper7 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_button` and `clear_button` are never used [INFO] [stdout] --> src/controller.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn set_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NMI_ADDRESS` is never used [INFO] [stdout] --> src/cpu.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NMI_ADDRESS: u16 = 0xFFFA; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CycleLatency` and `Interrupt` are never constructed [INFO] [stdout] --> src/cpu.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 75 | enum Nmi { [INFO] [stdout] | --- variants in this enum [INFO] [stdout] 76 | None, [INFO] [stdout] 77 | CycleLatency(u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 78 | Interrupt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Nmi` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bus`, `cycle_budget`, `nmi`, and `nmi_latch` are never read [INFO] [stdout] --> src/cpu.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct Cpu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 107 | pub memory: CpuMemory, [INFO] [stdout] 108 | pub bus: Rc>, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub cycle_budget: i32, // when cycle_budget >= 0, we're allowed to execute cycles. [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 117 | nmi: Nmi, // Starts at 7 and decrements down to 0 with our normal cycle count. When this [INFO] [stdout] | ^^^ [INFO] [stdout] 118 | // happens we trigger an interrupt! [INFO] [stdout] 119 | nmi_latch: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn set_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn clear_nmi_latch(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn dec_nmi(&mut self, cycles: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn is_nmi(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn clear_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn push_pc(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1184 | fn handle_nmi_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1224 | pub fn execute_cycles_for_one_instruction(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_0.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Mapper0 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 195 | impl Mapper1 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 213 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_7.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 46 | impl Mapper7 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte_zero_page` is never used [INFO] [stdout] --> src/memory.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_RAM` is never used [INFO] [stdout] --> src/ppu.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SPRITE_PALETTE_RAM: u16 = 0x3F10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, and `2` are never read [INFO] [stdout] --> src/ppu.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Pixel(pub u8, pub u8, pub u8); [INFO] [stdout] | ----- ^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `Pixel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BehindBackground` and `InFrontOfBackground` are never constructed [INFO] [stdout] --> src/ppu.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 38 | enum SpritePriority { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 39 | BehindBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | InFrontOfBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpritePriority` 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 `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/ppu.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | struct SpritePixel(Pixel, SpritePriority, bool, bool); // bools encode whether the pixel is for a sprite 0 pixel and whether it's tr... [INFO] [stdout] | ----------- ^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `SpritePixel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SYSTEM_PALETTE_COLORS` is never used [INFO] [stdout] --> src/ppu.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const SYSTEM_PALETTE_COLORS: [Pixel; 64] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_system_color` is never used [INFO] [stdout] --> src/ppu.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn get_system_color(color_index: u8) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `front`, `back`, and `ready` are never read [INFO] [stdout] --> src/ppu.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 264 | struct DoubleBuffer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 265 | front: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 266 | back: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 267 | ready: Cell, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `front`, `back`, and `swap` are never used [INFO] [stdout] --> src/ppu.rs:279:8 [INFO] [stdout] | [INFO] [stdout] 270 | impl DoubleBuffer { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 279 | fn front(&self) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn back(&mut self) -> &mut Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | fn swap(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ppu.rs:299:22 [INFO] [stdout] | [INFO] [stdout] 299 | struct ShiftRegister(u16); [INFO] [stdout] | ------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push`, `hi`, `lo`, and `bit` are never used [INFO] [stdout] --> src/ppu.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 301 | impl ShiftRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 307 | fn push(&mut self, byte: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn hi(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn lo(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 319 | fn bit(&self, n: u8) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sprite` is never constructed [INFO] [stdout] --> src/ppu.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | struct Sprite { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `is_sprite_zero` are never used [INFO] [stdout] --> src/ppu.rs:336:8 [INFO] [stdout] | [INFO] [stdout] 335 | impl Sprite { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 336 | fn from(bytes: &[u8; 4], is_sprite_zero: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | fn is_sprite_zero(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/ppu.rs:363:5 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 363 | frame_operations: Vec<[Vec; NUM_DOTS]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 364 | frame_index: (usize, usize), // row, column, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 365 | even_frame: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | name_table_byte: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 371 | attribute_table_group: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 372 | pattern_table_byte_lo: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 373 | pattern_table_byte_hi: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 374 | pattern_byte_sr_hi: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 375 | pattern_byte_sr_lo: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 376 | attribute_byte_sr: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 377 | image_buffer: DoubleBuffer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 378 | line_sprite_pixels: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 482 | pub fn nmi(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 486 | fn rendering_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | pub fn dma_flag(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 663 | fn increment_coarse_x(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | fn increment_y(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | fn fine_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 709 | fn create_sprite_line_pixels(&self, sprites_on_scanline: Vec, scanline_y: u8) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | fn get_line_sprites(&self, scanline_y: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn get_image(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 802 | fn iterate_frame_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 813 | pub fn execute_cycle(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn palette_color(&self, idx: u16) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | fn execute_operation(&mut self, operation: CycleOperation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SpriteSize` is never used [INFO] [stdout] --> src/ppu_registers.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum SpriteSize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_nmi`, `sprite_size`, `bg_pattern_table_half`, `sprite_pattern_table_address`, and `base_name_table_address` are never used [INFO] [stdout] --> src/ppu_registers.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_nmi(self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn sprite_size(self) -> SpriteSize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn bg_pattern_table_half(self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn sprite_pattern_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn base_name_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sprites_enabled`, `bg_enabled`, `sprites_left_column_disabled`, and `bg_left_column_disabled` are never used [INFO] [stdout] --> src/ppu_registers.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl PpuMask { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn sprites_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn bg_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn sprites_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn bg_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_interrupt`, `is_decimal`, `is_break`, and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn is_interrupt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_break(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [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: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sleep_duration` is never read [INFO] [stdout] --> src/main.rs:76:30 [INFO] [stdout] | [INFO] [stdout] 76 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 106 | / sleep_duration = if keys_down.contains(&egui::Key::Tab) { [INFO] [stdout] 107 | | std::time::Duration::from_millis(2) [INFO] [stdout] 108 | | } else { [INFO] [stdout] 109 | | STANDARD_CYCLE_SLEEP [INFO] [stdout] 110 | | }; [INFO] [stdout] | |_________- `sleep_duration` 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: variable does not need to be mutable [INFO] [stdout] --> src/addressing_modes.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [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/addressing_modes.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/addressing_modes.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [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/addressing_modes.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | let mut cpu = Cpu::initialize(Rc::new(RefCell::new(Mapper0::test_initialize()))); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_FRAME_CYCLES` is never used [INFO] [stdout] --> src/main.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const NUM_FRAME_CYCLES: usize = 89_342; // 262 * 341 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_string` and `fetch_next_two_bytes_wrapping_page` are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_byte_zero_page` are never used [INFO] [stdout] --> src/memory.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_chr_rom_data` and `vblank` are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_nmi` and `base_name_table_address` are never used [INFO] [stdout] --> src/ppu_registers.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_nmi(self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn base_name_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_interrupt`, `is_decimal`, `is_break`, and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:58:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn is_interrupt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_break(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_0.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Mapper0 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_1.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 195 | impl Mapper1 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 213 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_initialize` is never used [INFO] [stdout] --> src/mappers/mapper_7.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 46 | impl Mapper7 { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | fn test_initialize() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/headless.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/headless.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut now = std::time::Instant::now(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/headless.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut num_frames = 0; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sleep_duration` [INFO] [stdout] --> src/headless.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sleep_duration` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/headless.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut now = std::time::Instant::now(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_frames` [INFO] [stdout] --> src/headless.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut num_frames = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_button` is never used [INFO] [stdout] --> src/controller.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_string` and `fetch_next_two_bytes_wrapping_page` are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte_zero_page` is never used [INFO] [stdout] --> src/memory.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_chr_rom_data` and `vblank` are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_decimal` and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mappers/mapper_7.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut chr_rom_data = Segment::<0x2000>::initialize(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sleep_duration` is never read [INFO] [stdout] --> src/main.rs:76:30 [INFO] [stdout] | [INFO] [stdout] 76 | let mut sleep_duration = STANDARD_CYCLE_SLEEP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 106 | / sleep_duration = if keys_down.contains(&egui::Key::Tab) { [INFO] [stdout] 107 | | std::time::Duration::from_millis(2) [INFO] [stdout] 108 | | } else { [INFO] [stdout] 109 | | STANDARD_CYCLE_SLEEP [INFO] [stdout] 110 | | }; [INFO] [stdout] | |_________- `sleep_duration` 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: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_button` is never used [INFO] [stdout] --> src/controller.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn clear_button(&mut self, button: Button) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NMI_ADDRESS` is never used [INFO] [stdout] --> src/cpu.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NMI_ADDRESS: u16 = 0xFFFA; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CycleLatency` and `Interrupt` are never constructed [INFO] [stdout] --> src/cpu.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 75 | enum Nmi { [INFO] [stdout] | --- variants in this enum [INFO] [stdout] 76 | None, [INFO] [stdout] 77 | CycleLatency(u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 78 | Interrupt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Nmi` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bus`, `cycle_budget`, `nmi`, and `nmi_latch` are never read [INFO] [stdout] --> src/cpu.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct Cpu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 107 | pub memory: CpuMemory, [INFO] [stdout] 108 | pub bus: Rc>, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub cycle_budget: i32, // when cycle_budget >= 0, we're allowed to execute cycles. [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 117 | nmi: Nmi, // Starts at 7 and decrements down to 0 with our normal cycle count. When this [INFO] [stdout] | ^^^ [INFO] [stdout] 118 | // happens we trigger an interrupt! [INFO] [stdout] 119 | nmi_latch: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn set_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn clear_nmi_latch(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn dec_nmi(&mut self, cycles: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn is_nmi(&mut self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn clear_nmi(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn push_pc(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1184 | fn handle_nmi_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1224 | pub fn execute_cycles_for_one_instruction(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte_zero_page` is never used [INFO] [stdout] --> src/memory.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_RAM` is never used [INFO] [stdout] --> src/ppu.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SPRITE_PALETTE_RAM: u16 = 0x3F10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0`, `1`, and `2` are never read [INFO] [stdout] --> src/ppu.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct Pixel(pub u8, pub u8, pub u8); [INFO] [stdout] | ----- ^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `Pixel` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BehindBackground` and `InFrontOfBackground` are never constructed [INFO] [stdout] --> src/ppu.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 38 | enum SpritePriority { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 39 | BehindBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | InFrontOfBackground, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpritePriority` 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 `0`, `1`, `2`, and `3` are never read [INFO] [stdout] --> src/ppu.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | struct SpritePixel(Pixel, SpritePriority, bool, bool); // bools encode whether the pixel is for a sprite 0 pixel and whether it's tr... [INFO] [stdout] | ----------- ^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing these fields [INFO] [stdout] = note: `SpritePixel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SYSTEM_PALETTE_COLORS` is never used [INFO] [stdout] --> src/ppu.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const SYSTEM_PALETTE_COLORS: [Pixel; 64] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_system_color` is never used [INFO] [stdout] --> src/ppu.rs:117:4 [INFO] [stdout] | [INFO] [stdout] 117 | fn get_system_color(color_index: u8) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `front`, `back`, and `ready` are never read [INFO] [stdout] --> src/ppu.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 264 | struct DoubleBuffer { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 265 | front: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 266 | back: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 267 | ready: Cell, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `front`, `back`, and `swap` are never used [INFO] [stdout] --> src/ppu.rs:279:8 [INFO] [stdout] | [INFO] [stdout] 270 | impl DoubleBuffer { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 279 | fn front(&self) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn back(&mut self) -> &mut Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | fn swap(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ppu.rs:299:22 [INFO] [stdout] | [INFO] [stdout] 299 | struct ShiftRegister(u16); [INFO] [stdout] | ------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push`, `hi`, `lo`, and `bit` are never used [INFO] [stdout] --> src/ppu.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 301 | impl ShiftRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 307 | fn push(&mut self, byte: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn hi(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn lo(&self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 319 | fn bit(&self, n: u8) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sprite` is never constructed [INFO] [stdout] --> src/ppu.rs:324:8 [INFO] [stdout] | [INFO] [stdout] 324 | struct Sprite { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `is_sprite_zero` are never used [INFO] [stdout] --> src/ppu.rs:336:8 [INFO] [stdout] | [INFO] [stdout] 335 | impl Sprite { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 336 | fn from(bytes: &[u8; 4], is_sprite_zero: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | fn is_sprite_zero(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/ppu.rs:363:5 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 363 | frame_operations: Vec<[Vec; NUM_DOTS]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 364 | frame_index: (usize, usize), // row, column, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 365 | even_frame: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | name_table_byte: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 371 | attribute_table_group: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 372 | pattern_table_byte_lo: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 373 | pattern_table_byte_hi: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 374 | pattern_byte_sr_hi: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 375 | pattern_byte_sr_lo: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 376 | attribute_byte_sr: ShiftRegister, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 377 | image_buffer: DoubleBuffer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 378 | line_sprite_pixels: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 482 | pub fn nmi(&self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 486 | fn rendering_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | pub fn dma_flag(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 663 | fn increment_coarse_x(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | fn increment_y(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | fn fine_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 709 | fn create_sprite_line_pixels(&self, sprites_on_scanline: Vec, scanline_y: u8) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | fn get_line_sprites(&self, scanline_y: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 798 | pub fn get_image(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 802 | fn iterate_frame_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 813 | pub fn execute_cycle(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn palette_color(&self, idx: u16) -> Pixel { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | fn execute_operation(&mut self, operation: CycleOperation) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bg_pattern_table_half` and `sprite_pattern_table_address` are never used [INFO] [stdout] --> src/ppu_registers.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn bg_pattern_table_half(self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn sprite_pattern_table_address(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sprites_enabled`, `bg_enabled`, `sprites_left_column_disabled`, and `bg_left_column_disabled` are never used [INFO] [stdout] --> src/ppu_registers.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl PpuMask { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn sprites_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn bg_enabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn sprites_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn bg_left_column_disabled(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_decimal` and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_FRAME_CYCLES` is never used [INFO] [stdout] --> src/main.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const NUM_FRAME_CYCLES: usize = 89_342; // 262 * 341 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_data` is never used [INFO] [stdout] --> src/addressing_modes.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl AddressingModeData { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 34 | pub fn as_data(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `to_string` and `fetch_next_two_bytes_wrapping_page` are never used [INFO] [stdout] --> src/cpu.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 144 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | fn fetch_next_two_bytes_wrapping_page(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte_zero_page` is never used [INFO] [stdout] --> src/memory.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl CpuMemory { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn read_byte_zero_page(&self, address: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_bytes` and `read_two_bytes` are never used [INFO] [stdout] --> src/ppu.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 121 | impl PpuMemory { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn write_bytes(&mut self, address: u16, values: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_two_bytes(&self, address: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write_chr_rom_data` and `vblank` are never used [INFO] [stdout] --> src/ppu.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 386 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 474 | pub fn write_chr_rom_data(&mut self, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 478 | pub fn vblank(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PpuStatus` is never constructed [INFO] [stdout] --> src/ppu_registers.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PpuStatus(u8); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ppu_registers.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PpuStatus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 116 | pub fn from(byte: u8) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn into(self) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_vblank(self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn clear_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_vblank(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn sprite_zero_hit(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn sprite_overflow(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_decimal` and `clear_bit_five` are never used [INFO] [stdout] --> src/processor_status.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ProcessorStatus { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn is_decimal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn clear_bit_five(self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unknown` is never constructed [INFO] [stdout] --> src/rom.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MapperName { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 5 | Unknown(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MapperName` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [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/ppu.rs:782:20 [INFO] [stdout] | [INFO] [stdout] 782 | if x_pos <= 0xFF { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unused dependency `minifb` [INFO] [stderr] --> Cargo.toml:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | minifb = "0.28" [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `cargo::unused_dependencies` is set to `warn` by default [INFO] [stderr] help: consider removing the dependency on `minifb` [INFO] [stderr] warning: `RustyRaven` (manifest) generated 1 warning [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb", kill_on_drop: false }` [INFO] [stdout] 96a16aa4d10d4dc0de78feed17b721882ee05c3c70d678819c91b59e3ac705cb