[INFO] cloning repository https://github.com/Thoughts-with-friends/lunaris [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Thoughts-with-friends/lunaris" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThoughts-with-friends%2Flunaris", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThoughts-with-friends%2Flunaris'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 994a66fc3e2316fdf5cc8ff1d7a9a948b9b9907c [INFO] checking Thoughts-with-friends/lunaris against master#2ca7bcd03b87b52f7055a59b817443b0ac4a530d for pr-150322 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThoughts-with-friends%2Flunaris" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Thoughts-with-friends/lunaris [INFO] finished tweaking git repo https://github.com/Thoughts-with-friends/lunaris [INFO] tweaked toml for git repo https://github.com/Thoughts-with-friends/lunaris written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Thoughts-with-friends/lunaris on toolchain 2ca7bcd03b87b52f7055a59b817443b0ac4a530d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2ca7bcd03b87b52f7055a59b817443b0ac4a530d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Thoughts-with-friends/lunaris 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" "+2ca7bcd03b87b52f7055a59b817443b0ac4a530d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded annotate-snippets v0.11.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+2ca7bcd03b87b52f7055a59b817443b0ac4a530d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 44afc23fa9f92c68142dbfe2b696fb1707e043f27d0b003c0cdc25fa71837902 [INFO] running `Command { std: "docker" "start" "-a" "44afc23fa9f92c68142dbfe2b696fb1707e043f27d0b003c0cdc25fa71837902", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "44afc23fa9f92c68142dbfe2b696fb1707e043f27d0b003c0cdc25fa71837902", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "44afc23fa9f92c68142dbfe2b696fb1707e043f27d0b003c0cdc25fa71837902", kill_on_drop: false }` [INFO] [stdout] 44afc23fa9f92c68142dbfe2b696fb1707e043f27d0b003c0cdc25fa71837902 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+2ca7bcd03b87b52f7055a59b817443b0ac4a530d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f0669dde6a9eb421d78900ae19fb4a8b67ba43d936931e3641d0053765819fff [INFO] running `Command { std: "docker" "start" "-a" "f0669dde6a9eb421d78900ae19fb4a8b67ba43d936931e3641d0053765819fff", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling cc v1.2.44 [INFO] [stderr] Compiling wayland-sys v0.31.7 [INFO] [stderr] Compiling wayland-client v0.31.11 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling naga v23.1.0 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking indexmap v2.12.0 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Compiling wgpu-hal v23.0.1 [INFO] [stderr] Checking tracing-core v0.1.35 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking unicode-xid v0.2.6 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking ash v0.38.0+1.3.281 [INFO] [stderr] Compiling wgpu-core v23.0.1 [INFO] [stderr] Checking wgpu-types v23.0.0 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Checking glow v0.14.2 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Compiling wgpu v23.0.1 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking memmap2 v0.9.9 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Compiling wayland-scanner v0.31.7 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Checking annotate-snippets v0.11.5 [INFO] [stderr] Checking mem_const v0.1.0 (/opt/rustwide/workdir/core/mem_const) [INFO] [stderr] Checking free_bios v0.1.0 (/opt/rustwide/workdir/core/free_bios) [INFO] [stderr] Checking arm9 v0.1.0 (/opt/rustwide/workdir/core/arm9) [INFO] [stderr] Checking audio v0.1.0 (/opt/rustwide/workdir/core/audio) [INFO] [stderr] Checking cpu v0.1.0 (/opt/rustwide/workdir/core/cpu) [INFO] [stdout] warning: type alias `InterpreterFunc` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type InterpreterFunc = fn(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_processing` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | const fn data_processing() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | const fn multiply() {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | const fn store_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `undefined` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | const fn undefined() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_doubleword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | const fn store_doubleword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | const fn load_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_signed_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | const fn load_signed_byte() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_signed_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | const fn load_signed_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_long` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | const fn multiply_long() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `saturated_op` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | const fn saturated_op() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `signed_halfword_multiply` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | const fn signed_halfword_multiply() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swap` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | const fn swap() {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_exchange` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | const fn branch_exchange() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blx_reg` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | const fn blx_reg() {} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_leading_zeros` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | const fn count_leading_zeros() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_word` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | const fn store_word() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_word` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | const fn load_word() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | const fn store_byte() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | const fn load_byte() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_block` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | const fn store_block() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_block` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | const fn load_block() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | const fn branch() {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_link` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | const fn branch_link() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `coprocessor_reg_transfer` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | const fn coprocessor_reg_transfer() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swi` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | const fn swi() {} [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `arm_table` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | static arm_table: [InterpreterFunc; 4096] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `arm_table` should have an upper case name [INFO] [stdout] --> core/cpu/src/lib.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | static arm_table: [InterpreterFunc; 4096] = [ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `ARM_TABLE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wayland-backend v0.3.11 [INFO] [stdout] warning: type alias `InterpreterFunc` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type InterpreterFunc = fn(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_processing` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | const fn data_processing() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | const fn multiply() {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | const fn store_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `undefined` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | const fn undefined() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_doubleword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | const fn store_doubleword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | const fn load_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_signed_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | const fn load_signed_byte() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_signed_halfword` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | const fn load_signed_halfword() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_long` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | const fn multiply_long() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `saturated_op` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | const fn saturated_op() {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `signed_halfword_multiply` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | const fn signed_halfword_multiply() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swap` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | const fn swap() {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_exchange` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | const fn branch_exchange() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blx_reg` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | const fn blx_reg() {} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_leading_zeros` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | const fn count_leading_zeros() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_word` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | const fn store_word() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_word` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | const fn load_word() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | const fn store_byte() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_byte` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | const fn load_byte() {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_block` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | const fn store_block() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_block` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | const fn load_block() {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | const fn branch() {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_link` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | const fn branch_link() {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `coprocessor_reg_transfer` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | const fn coprocessor_reg_transfer() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swi` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | const fn swi() {} [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `arm_table` is never used [INFO] [stdout] --> core/cpu/src/lib.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | static arm_table: [InterpreterFunc; 4096] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `arm_table` should have an upper case name [INFO] [stdout] --> core/cpu/src/lib.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | static arm_table: [InterpreterFunc; 4096] = [ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper case: `ARM_TABLE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Checking tracing v0.1.43 [INFO] [stderr] Checking arm7 v0.1.0 (/opt/rustwide/workdir/core/arm7) [INFO] [stdout] warning: type `NDS_DMA` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/dma.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct NDS_DMA { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `NdsDma` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> core/arm7/src/emulator.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GBA_SLOT` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | GBA_SLOT = 13, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `GbaSlot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_EMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | IPC_FIFO_EMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoEmpty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_NEMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | IPC_FIFO_NEMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoNempty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_TRANSFER` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | CART_TRANSFER, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartTransfer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_IREQ_MC` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | CART_IREQ_MC, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartIreqMc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GEOMETRY_FIFO` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | GEOMETRY_FIFO, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GeometryFifo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UNFOLD_SCREEN` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | UNFOLD_SCREEN, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UnfoldScreen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `VCOUNT_MATCH` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | VCOUNT_MATCH, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VcountMatch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GBA_SLOT` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | GBA_SLOT, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `GbaSlot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_EMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | IPC_FIFO_EMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoEmpty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_NEMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | IPC_FIFO_NEMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoNempty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_TRANSFER` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | CART_TRANSFER, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartTransfer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_IREQ_MC` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | CART_IREQ_MC, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartIreqMc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GEOMETRY_FIFO` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | GEOMETRY_FIFO, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GeometryFifo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UNFOLD_SCREEN` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | UNFOLD_SCREEN, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UnfoldScreen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/ipc.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | value |= ((self.output & 0xF) as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 30 - value |= ((self.output & 0xF) as u16); [INFO] [stdout] 30 + value |= (self.output & 0xF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/spu.rs:114:18 [INFO] [stdout] | [INFO] [stdout] 114 | value |= ((self.master_volume & 0x7F) as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 114 - value |= ((self.master_volume & 0x7F) as u16); [INFO] [stdout] 114 + value |= (self.master_volume & 0x7F) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/spu.rs:291:66 [INFO] [stdout] | [INFO] [stdout] 291 | self.channels[channel_idx].channel_cnt.volume |= ((byte as u32) << shift); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - self.channels[channel_idx].channel_cnt.volume |= ((byte as u32) << shift); [INFO] [stdout] 291 + self.channels[channel_idx].channel_cnt.volume |= (byte as u32) << shift; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `NDS_DMA` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/dma.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct NDS_DMA { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `NdsDma` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> core/arm7/src/emulator.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GBA_SLOT` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | GBA_SLOT = 13, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `GbaSlot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_EMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | IPC_FIFO_EMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoEmpty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_NEMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | IPC_FIFO_NEMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoNempty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_TRANSFER` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | CART_TRANSFER, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartTransfer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_IREQ_MC` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | CART_IREQ_MC, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartIreqMc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GEOMETRY_FIFO` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | GEOMETRY_FIFO, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GeometryFifo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UNFOLD_SCREEN` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/emulator.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | UNFOLD_SCREEN, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UnfoldScreen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `VCOUNT_MATCH` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | VCOUNT_MATCH, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VcountMatch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GBA_SLOT` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | GBA_SLOT, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `GbaSlot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_EMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | IPC_FIFO_EMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoEmpty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IPC_FIFO_NEMPTY` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | IPC_FIFO_NEMPTY, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IpcFifoNempty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_TRANSFER` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | CART_TRANSFER, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartTransfer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CART_IREQ_MC` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | CART_IREQ_MC, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CartIreqMc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GEOMETRY_FIFO` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | GEOMETRY_FIFO, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GeometryFifo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UNFOLD_SCREEN` should have an upper camel case name [INFO] [stdout] --> core/arm7/src/interrupts.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | UNFOLD_SCREEN, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UnfoldScreen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/ipc.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | value |= ((self.output & 0xF) as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 30 - value |= ((self.output & 0xF) as u16); [INFO] [stdout] 30 + value |= (self.output & 0xF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/spu.rs:114:18 [INFO] [stdout] | [INFO] [stdout] 114 | value |= ((self.master_volume & 0x7F) as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 114 - value |= ((self.master_volume & 0x7F) as u16); [INFO] [stdout] 114 + value |= (self.master_volume & 0x7F) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> core/arm7/src/spu.rs:291:66 [INFO] [stdout] | [INFO] [stdout] 291 | self.channels[channel_idx].channel_cnt.volume |= ((byte as u32) << shift); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - self.channels[channel_idx].channel_cnt.volume |= ((byte as u32) << shift); [INFO] [stdout] 291 + self.channels[channel_idx].channel_cnt.volume |= (byte as u32) << shift; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> core/arm7/src/cp15.rs:284:56 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn mrc(&self, operation: i32, source_reg: i32, info: i32, operand_reg: i32) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> core/arm7/src/cp15.rs:301:9 [INFO] [stdout] | [INFO] [stdout] 301 | info: i32, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:377:33 [INFO] [stdout] | [INFO] [stdout] 377 | pub fn read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:383:37 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:389:33 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:395:34 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> core/arm7/src/cpu.rs:395:48 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:401:38 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfword` [INFO] [stdout] --> core/arm7/src/cpu.rs:401:52 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfword` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:407:34 [INFO] [stdout] | [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `byte` [INFO] [stdout] --> core/arm7/src/cpu.rs:407:48 [INFO] [stdout] | [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_byte` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bios` [INFO] [stdout] --> core/arm7/src/emulator.rs:437:34 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn load_bios7(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bios` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bios` [INFO] [stdout] --> core/arm7/src/emulator.rs:443:34 [INFO] [stdout] | [INFO] [stdout] 443 | pub fn load_bios9(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bios` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rom_name` [INFO] [stdout] --> core/arm7/src/emulator.rs:454:32 [INFO] [stdout] | [INFO] [stdout] 454 | pub fn load_rom(&mut self, rom_name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> core/arm7/src/emulator.rs:632:41 [INFO] [stdout] | [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> core/arm7/src/emulator.rs:632:49 [INFO] [stdout] | [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> core/arm7/src/wifi.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn set_w_bb_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_opcode`, `div`, `cpu_set`, `get_crc16`, `swi7`, and `swi9` are never used [INFO] [stdout] --> core/arm7/src/bios.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 8 | impl BIOS { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | fn get_opcode(&self, cpu: &mut ARMCPU) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn div(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn cpu_set(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn get_crc16(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn swi7(&self, arm7: &mut ARMCPU) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn swi9(&self, arm9: &mut ARMCPU) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> core/arm7/src/cartridge.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum CartCommand { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Dummy = 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | /// Get cartridge header [INFO] [stdout] 12 | GetHeader = 2, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | /// Get chip ID [INFO] [stdout] 14 | GetChipId = 3, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 15 | /// Enable KEY1 encryption [INFO] [stdout] 16 | EnableKey1 = 4, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | /// Enable KEY2 encryption [INFO] [stdout] 18 | EnableKey2 = 5, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 19 | /// Get secure area block [INFO] [stdout] 20 | GetSecureAreaBlock = 6, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | /// Read ROM data [INFO] [stdout] 22 | ReadRom = 7, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CartCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl CartCommand { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 26 | /// Convert numeric value to CartCommand [INFO] [stdout] 27 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `WriteMem`, `ReadMem`, `ReadStatusReg`, `PageWrite`, `WriteHi`, and `ReadHi` are never constructed [INFO] [stdout] --> core/arm7/src/cartridge.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 44 | pub enum AuxSpiCommand { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 48 | WriteMem = 1, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | /// Read from memory [INFO] [stdout] 50 | ReadMem = 2, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 51 | /// Read status register [INFO] [stdout] 52 | ReadStatusReg = 3, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 53 | /// Page write operation [INFO] [stdout] 54 | PageWrite = 4, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 55 | /// Write high address [INFO] [stdout] 56 | WriteHi = 5, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | /// Read high address [INFO] [stdout] 58 | ReadHi = 6, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuxSpiCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl AuxSpiCommand { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 62 | /// Convert numeric value to AuxSpiCommand [INFO] [stdout] 63 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cartridge.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct RegRomCtrl { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 80 | /// KEY1 gap clocks (timing parameter) [INFO] [stdout] 81 | pub key1_gap: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 82 | /// KEY2 data enabled [INFO] [stdout] 83 | pub key2_data_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 84 | /// Apply KEY2 seed [INFO] [stdout] 85 | pub key2_apply_seed: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 86 | /// KEY2 gap setting [INFO] [stdout] 87 | pub key2_gap: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 88 | /// KEY2 command enabled [INFO] [stdout] 89 | pub key2_cmd_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 90 | /// Word ready signal [INFO] [stdout] 91 | pub word_ready: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 92 | /// Block size (transfer size) [INFO] [stdout] 93 | pub block_size: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 94 | /// Use slow transfer timing [INFO] [stdout] 95 | pub slow_transfer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 96 | /// KEY1 gap uses clock cycles [INFO] [stdout] 97 | pub key1_gap_clocks: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | /// Block transfer in progress [INFO] [stdout] 99 | pub block_busy: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RegRomCtrl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl RegRomCtrl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get(&self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn set(&mut self, value: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bandwidth`, `hold_chipselect`, `is_busy`, `serial_transfer`, `irq_after_transfer`, and `enabled` are never read [INFO] [stdout] --> core/arm7/src/cartridge.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct RegAuxSpiCnt { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 173 | /// Baud rate divider [INFO] [stdout] 174 | pub bandwidth: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 175 | /// Hold chip select after transfer [INFO] [stdout] 176 | pub hold_chipselect: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 177 | /// Transfer in progress [INFO] [stdout] 178 | pub is_busy: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 179 | /// Serial transfer mode [INFO] [stdout] 180 | pub serial_transfer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 181 | /// Generate interrupt after transfer [INFO] [stdout] 182 | pub irq_after_transfer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 183 | /// SPI enabled [INFO] [stdout] 184 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RegAuxSpiCnt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 187 | impl RegAuxSpiCnt { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cartridge.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 240 | pub struct NDSCart { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 241 | /// Emulator reference [INFO] [stdout] 242 | emulator_ptr: *mut crate::emulator::Emulator, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | key1_buffer: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 246 | /// Encryption mode (0=normal, 1=encrypted) [INFO] [stdout] 247 | cmd_encrypt_mode: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 250 | rom: Vec, [INFO] [stdout] | ^^^ [INFO] [stdout] 251 | /// Save database [INFO] [stdout] 252 | save_database: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 253 | /// ROM filename [INFO] [stdout] 254 | rom_name: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 255 | /// SPI save data (8MB) [INFO] [stdout] 256 | spi_save: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 257 | /// Save size in bytes [INFO] [stdout] 258 | save_size: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 259 | /// Save type [INFO] [stdout] 260 | save_type: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 261 | /// Save data has been modified [INFO] [stdout] 262 | dirty_save: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 263 | /// Database size [INFO] [stdout] 264 | database_size: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 265 | /// ROM size [INFO] [stdout] 266 | rom_size: u64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | command_buffer: [u8; 8], [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 270 | /// Data output from cartridge [INFO] [stdout] 271 | data_output: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 272 | /// Current index in ROM data [INFO] [stdout] 273 | rom_data_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 274 | /// Current command being executed [INFO] [stdout] 275 | command_id: CartCommand, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | secure_area_index: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | cycles_left: i32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 282 | /// Bytes remaining to transfer [INFO] [stdout] 283 | bytes_left: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | romctrl: RegRomCtrl, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 287 | /// Auxiliary SPI control register [INFO] [stdout] 288 | auxspicnt: RegAuxSpiCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 289 | /// Current SPI command [INFO] [stdout] 290 | spi_cmd: AuxSpiCommand, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 291 | /// SPI data byte [INFO] [stdout] 292 | spi_data: u8, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 293 | /// SPI command parameters [INFO] [stdout] 294 | spi_params: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 295 | /// SPI address for read/write [INFO] [stdout] 296 | spi_addr: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 297 | /// SPI write enabled flag [INFO] [stdout] 298 | spi_write_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | encrypt_seed0: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 302 | /// Encryption seed 1 [INFO] [stdout] 303 | encrypt_seed1: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | keycode: [u32; 3], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 309 | impl NDSCart { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 346 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub fn load_database(&mut self, _file_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn load_rom(&mut self, _file_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn save_check(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn read_command(&self, index: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn receive_command(&mut self, command: u8, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn run(&mut self, _cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub fn debug_encrypt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn direct_read(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn direct_read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 416 | pub fn direct_read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn get_romctrl(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 428 | pub fn get_output(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 433 | pub fn get_auxspicnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn read_auxspidata(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn set_hi_auxspicnt(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 450 | pub fn set_auxspicnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn set_auxspidata(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub fn set_romctrl(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn set_lo_key2_seed0(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn set_lo_key2_seed1(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 475 | pub fn set_hi_key2_seed0(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub fn set_hi_key2_seed1(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | fn key1_encrypt(&mut self, _data: &mut [u32]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 492 | fn key1_decrypt(&mut self, _data: &mut [u32]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | fn apply_keycode(&mut self, _modulo: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 502 | fn init_keycode(&mut self, _idcode: u32, _level: i32, _modulo: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cp15.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ControlReg { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 10 | /// MMU/Protection Unit enable [INFO] [stdout] 11 | pub mmu_pu_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 12 | /// Data/Unified cache enable [INFO] [stdout] 13 | pub data_unified_cache_on: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | /// Big endian mode (vs little endian) [INFO] [stdout] 15 | pub is_big_endian: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 16 | /// Instruction cache enable [INFO] [stdout] 17 | pub instruction_cache_on: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | /// High exception vector (0x0000 vs 0xFFFF0000) [INFO] [stdout] 19 | pub high_exception_vector: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | /// Predictable cache replacement algorithm [INFO] [stdout] 21 | pub predictable_cache_replacement: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 22 | /// Pre-ARMv5 mode compatibility [INFO] [stdout] 23 | pub pre_armv5_mode: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 24 | /// Data TCM enable [INFO] [stdout] 25 | pub dtcm_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 26 | /// Data TCM write-only mode [INFO] [stdout] 27 | pub dtcm_write_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | /// Instruction TCM enable [INFO] [stdout] 29 | pub itcm_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 30 | /// Instruction TCM write-only mode [INFO] [stdout] 31 | pub itcm_write_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ControlReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_values` and `set_values` are never used [INFO] [stdout] --> core/arm7/src/cp15.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl ControlReg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_values(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn set_values(&mut self, reg: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cp15.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct CP15 { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 116 | /// Emulator reference [INFO] [stdout] 117 | emulator: Option>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 118 | /// ARM9 CPU reference [INFO] [stdout] 119 | arm9: Option>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | control: ControlReg, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | itcm_data: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 126 | /// Data TCM data register [INFO] [stdout] 127 | dtcm_data: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | itcm_size: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 131 | /// Data TCM base address (cached value) [INFO] [stdout] 132 | dtcm_base: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 133 | /// Data TCM size (cached value) [INFO] [stdout] 134 | dtcm_size: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | itcm: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 138 | /// Data TCM memory (16 KB) [INFO] [stdout] 139 | dtcm: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | dcache: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 143 | /// Instruction cache (8 KB) [INFO] [stdout] 144 | icache: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/cp15.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl CP15 { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn power_on(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn link_with_cpu(&mut self, _arm9: Arc>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn get_itcm_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn get_dtcm_base(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn get_dtcm_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn dtcm_write_only(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn write_byte(&mut self, address: u32, byte: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn mrc(&self, operation: i32, source_reg: i32, info: i32, operand_reg: i32) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn mcr( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn get_control(&self) -> &ControlReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn get_control_mut(&mut self) -> &mut ControlReg { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 335 | pub fn invalidate_icache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn invalidate_dcache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_SP` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const REG_SP: usize = 13; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_LR` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const REG_LR: usize = 14; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_PC` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const REG_PC: usize = 15; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `User`, `Fiq`, `Irq`, `Abort`, `Undefined`, and `System` are never constructed [INFO] [stdout] --> core/arm7/src/cpu.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum PSRMode { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 13 | /// User mode [INFO] [stdout] 14 | User = 0x10, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | /// FIQ (Fast Interrupt) mode [INFO] [stdout] 16 | Fiq = 0x11, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | /// IRQ (Interrupt) mode [INFO] [stdout] 18 | Irq = 0x12, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | Abort = 0x17, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | /// Undefined instruction mode [INFO] [stdout] 24 | Undefined = 0x1B, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 25 | /// System mode [INFO] [stdout] 26 | System = 0x1F, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PSRMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl PSRMode { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 30 | /// Convert numeric value to PSRMode [INFO] [stdout] 31 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cpu.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct PSRFlags { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 48 | /// Negative flag (result was negative) [INFO] [stdout] 49 | pub negative: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 50 | /// Zero flag (result was zero) [INFO] [stdout] 51 | pub zero: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 52 | /// Carry flag (carry out or borrow) [INFO] [stdout] 53 | pub carry: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 54 | /// Overflow flag (signed arithmetic overflow) [INFO] [stdout] 55 | pub overflow: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 56 | /// Sticky overflow flag [INFO] [stdout] 57 | pub sticky_overflow: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | /// IRQ interrupt disabled [INFO] [stdout] 59 | pub irq_disabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 60 | /// FIQ interrupt disabled [INFO] [stdout] 61 | pub fiq_disabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 62 | /// Thumb mode enabled [INFO] [stdout] 63 | pub thumb_on: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 64 | /// Current processor mode [INFO] [stdout] 65 | pub mode: PSRMode, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PSRFlags` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/cpu.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl PSRFlags { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn get(&self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn set(&mut self, value: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/cpu.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 140 | pub struct ARMCPU { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 141 | /// Reference to parent emulator [INFO] [stdout] 142 | emulator_ptr: *mut crate::emulator::Emulator, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 143 | /// CP15 system control coprocessor [INFO] [stdout] 144 | cp15: Option>, // Placeholder for CP15 implementation [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | sp_svc: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 152 | /// Stack pointer for IRQ mode [INFO] [stdout] 153 | sp_irq: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 154 | /// Stack pointer for FIQ mode [INFO] [stdout] 155 | sp_fiq: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 156 | /// Stack pointer for abort mode [INFO] [stdout] 157 | sp_abt: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 158 | /// Stack pointer for undefined mode [INFO] [stdout] 159 | sp_und: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | lr_svc: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 163 | /// Link register for IRQ mode [INFO] [stdout] 164 | lr_irq: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 165 | /// Link register for FIQ mode [INFO] [stdout] 166 | lr_fiq: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 167 | /// Link register for abort mode [INFO] [stdout] 168 | lr_abt: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 169 | /// Link register for undefined mode [INFO] [stdout] 170 | lr_und: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | fiq_regs: [u32; 5], [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | spsr: [PSRFlags; 0x20], [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | exception_base: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | last_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 190 | /// Currently executing instruction [INFO] [stdout] 191 | current_instr: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | code_waitstates: [[i32; 4]; 16], [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 198 | data_waitstates: [[i32; 4]; 16], [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/cpu.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl ARMCPU { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 241 | pub fn power_on(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn direct_boot(&mut self, entry_point: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn execute(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn jump(&mut self, new_addr: u32, change_thumb_state: bool) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn handle_undefined(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn handle_irq(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn halt(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | pub fn handle_swi(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub fn print_info(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn update_reg_mode(&mut self, _new_mode: PSRMode) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn get_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | pub fn get_timestamp(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn cycles_ran(&self) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | pub fn get_pc(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fn get_current_instr(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_register(&self, id: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | pub fn get_cpsr(&self) -> PSRFlags { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn set_register(&mut self, id: usize, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | pub fn set_cpsr(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | pub fn read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | pub fn add_n32_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn add_s32_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub fn add_n16_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn add_s16_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn add_n32_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn add_s32_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | pub fn add_n16_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 471 | pub fn add_s16_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn add_internal_cycles(&mut self, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 484 | pub fn add_cop_cycles(&mut self, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 491 | pub fn and(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 500 | pub fn orr(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 509 | pub fn eor(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn add(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 528 | pub fn sub(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 538 | pub fn adc(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn sbc(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn cmp(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 567 | pub fn cmn(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | pub fn tst(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 580 | pub fn teq(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn mov(&mut self, dest: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 594 | pub fn mul(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 603 | pub fn bic(&mut self, dest: usize, src: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 612 | pub fn mvn(&mut self, dest: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 621 | pub fn mrs(&mut self, _instruction: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn msr(&mut self, _instruction: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 633 | pub fn set_zero(&mut self, cond: bool) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 638 | pub fn set_neg(&mut self, cond: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 643 | pub fn set_zero_neg_flags(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | fn set_cv_add_flags(&mut self, a: u32, b: u32, result: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | fn set_cv_sub_flags(&mut self, a: u32, b: u32, result: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 669 | pub fn spsr_to_cpsr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 679 | pub fn lsl(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn lsr(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 713 | pub fn asr(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | pub fn rrx(&mut self, value: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pub fn rotr32(&mut self, n: u32, c: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/dma.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DmaCnt { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 7 | /// Destination address control (0=increment, 1=decrement, 2=fixed, 3=reload) [INFO] [stdout] 8 | pub dest_control: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 9 | /// Source address control (0=increment, 1=decrement, 2=fixed) [INFO] [stdout] 10 | pub source_control: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 11 | /// Repeat the transfer when complete [INFO] [stdout] 12 | pub repeat: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | /// Use 32-bit transfers instead of 16-bit [INFO] [stdout] 14 | pub word_transfer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 15 | /// Start timing (0=immediate, 1=VBLANK, 2=HBLANK, 3=sync/special) [INFO] [stdout] 16 | pub timing: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 17 | /// Generate interrupt when transfer completes [INFO] [stdout] 18 | pub irq_after_transfer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | /// Enable this DMA channel [INFO] [stdout] 20 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DmaCnt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/dma.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl DmaCnt { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/dma.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct DmaChannel { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 79 | /// Source address (user-controlled) [INFO] [stdout] 80 | pub source: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 81 | /// Source address (internal working copy) [INFO] [stdout] 82 | pub internal_source: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub destination: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 86 | /// Destination address (internal working copy) [INFO] [stdout] 87 | pub internal_dest: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub length: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 91 | /// Transfer length (internal working copy) [INFO] [stdout] 92 | pub internal_len: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub cnt: DmaCnt, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub index: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub is_arm9: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DmaChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `emulator_ptr`, `dmas`, `active_dma7`, `active_dma9`, and `active_dmas` are never read [INFO] [stdout] --> core/arm7/src/dma.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct NDS_DMA { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 130 | /// Emulator reference [INFO] [stdout] 131 | emulator_ptr: *mut crate::emulator::Emulator, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | dmas: [DmaChannel; 8], [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | active_dma7: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 138 | /// Currently active ARM9 DMA channel [INFO] [stdout] 139 | active_dma9: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | active_dmas: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/dma.rs:166:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl NDS_DMA { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn dma_event(&mut self, index: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn update_dma(&mut self, index: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn handle_event(&mut self, _event: &crate::emulator::SchedulerEvent) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub fn read_source(&self, index: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn read_len(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 297 | pub fn read_cnt(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn write_source(&mut self, index: usize, source: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn write_dest(&mut self, index: usize, dest: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn write_len(&mut self, index: usize, len: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn write_cnt(&mut self, index: usize, cnt: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn write_len_cnt(&mut self, index: usize, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn hblank_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn gamecart_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | pub fn gxfifo_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/emulator.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct KeyInputReg { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 23 | pub button_a: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 24 | pub button_b: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 25 | pub select: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 26 | pub start: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 27 | pub right: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 28 | pub left: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 29 | pub up: bool, [INFO] [stdout] | ^^ [INFO] [stdout] 30 | pub down: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 31 | pub button_r: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 32 | pub button_l: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyInputReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl KeyInputReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 36 | /// Get the current key input register value (bit-packed format) [INFO] [stdout] 37 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `button_x`, `button_y`, `pen`, and `hinge` are never read [INFO] [stdout] --> core/arm7/src/emulator.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct ExtKeyInReg { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 90 | pub button_x: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 91 | pub button_y: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 92 | pub pen: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 93 | pub hinge: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExtKeyInReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl ExtKeyInReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 97 | /// Get the extended key input register value [INFO] [stdout] 98 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `speakers`, `wifi`, `led`, and `cartridge` are never read [INFO] [stdout] --> core/arm7/src/emulator.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct PowCnt2Reg { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 127 | pub speakers: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 128 | pub wifi: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | pub led: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 130 | pub cartridge: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PowCnt2Reg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl PowCnt2Reg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 134 | /// Get the power control register value [INFO] [stdout] 135 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `event_id` and `timestamp` are never read [INFO] [stdout] --> core/arm7/src/emulator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct SchedulerEvent { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 164 | /// Event identifier (GPU event, DMA event, etc.) [INFO] [stdout] 165 | pub event_id: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 166 | /// Timestamp when event should fire [INFO] [stdout] 167 | pub timestamp: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SchedulerEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Interrupt` is never used [INFO] [stdout] --> core/arm7/src/emulator.rs:172:10 [INFO] [stdout] | [INFO] [stdout] 172 | pub enum Interrupt { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `User` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum BiosMem { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 199 | /// len: BIOS_SIZE [INFO] [stdout] 200 | User(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/emulator.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 240 | pub struct Emulator { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 241 | pub cycle_count: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 242 | pub arm7: ARMCPU, [INFO] [stdout] | ^^^^ [INFO] [stdout] 243 | pub arm9: ARMCPU, [INFO] [stdout] | ^^^^ [INFO] [stdout] 244 | pub bios: BIOS, [INFO] [stdout] | ^^^^ [INFO] [stdout] 245 | pub arm9_cp15: CP15, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 246 | pub cart: NDSCart, [INFO] [stdout] | ^^^^ [INFO] [stdout] 247 | pub dma: NDS_DMA, [INFO] [stdout] | ^^^ [INFO] [stdout] 248 | pub gpu: GPU, [INFO] [stdout] | ^^^ [INFO] [stdout] 249 | pub rtc: RealTimeClock, [INFO] [stdout] | ^^^ [INFO] [stdout] 250 | pub spi: SPIBus, [INFO] [stdout] 251 | pub spu: SPU, [INFO] [stdout] | ^^^ [INFO] [stdout] 252 | pub timers: NDSTiming, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 253 | pub wifi: WiFi, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub main_ram: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 257 | /// Shared CPU WRAM (32KB) [INFO] [stdout] 258 | pub shared_wram: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 259 | /// ARM7-only WRAM (64KB) [INFO] [stdout] 260 | pub arm7_wram: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 261 | [INFO] [stdout] 262 | pub arm9_bios: BiosMem, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 263 | pub arm7_bios: BiosMem, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | pub vram: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 267 | /// VRAM palette memory [INFO] [stdout] 268 | pub palette_ram: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 269 | /// OAM (Object Attribute Memory) [INFO] [stdout] 270 | pub oam: Vec, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub key_input: KeyInputReg, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 274 | /// Input state - extended buttons [INFO] [stdout] 275 | pub ext_key_in: ExtKeyInReg, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 276 | /// Power control register [INFO] [stdout] 277 | pub pow_cnt2: PowCnt2Reg, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub dma_fill: [u32; 4], [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 281 | /// Serial I/O control register [INFO] [stdout] 282 | pub siocnt: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 283 | /// External memory control [INFO] [stdout] 284 | pub rcnt: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] 285 | pub exmemcnt: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 286 | pub wramcnt: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub divcnt: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 290 | pub div_numer: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 291 | pub div_denom: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 292 | pub div_result: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 293 | pub div_remresult: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub sqrtcnt: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 297 | pub sqrt_result: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 298 | pub sqrt_param: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub postflg7: u8, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 302 | pub postflg9: u8, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub biosprot: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub hstep_even: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | pub cycles: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub total_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 315 | /// Last ARM9 execution timestamp [INFO] [stdout] 316 | pub last_arm9_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 317 | /// Last ARM7 execution timestamp [INFO] [stdout] 318 | pub last_arm7_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 335 | pub scheduled_events: VecDeque, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub ipcsync_nds9: IpcSync, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 339 | pub ipcsync_nds7: IpcSync, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fifo7: IpcFifo, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 343 | pub fifo9: IpcFifo, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:425:12 [INFO] [stdout] | [INFO] [stdout] 346 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 425 | pub fn init(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub fn load_firmware(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 437 | pub fn load_bios7(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn load_bios9(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 449 | pub fn load_save_database(&mut self, _name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | pub fn load_rom(&mut self, rom_name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | pub fn direct_boot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 513 | pub fn debug(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn run(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub fn get_timestamp(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 544 | pub fn get_upper_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | pub fn get_lower_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | pub fn set_upper_screen(&mut self, _buffer: &[u32]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn set_lower_screen(&mut self, _buffer: &[u32]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn frame_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn display_swapped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn dma_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 581 | pub fn hblank_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn gamecart_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 591 | pub fn gxfifo_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 596 | pub fn check_gxfifo_dma(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 601 | pub fn add_gpu_event(&mut self, event_id: u32, relative_time: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 614 | pub fn add_dma_event(&mut self, event_id: u32, relative_time: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 627 | pub fn calculate_system_timestamp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 638 | pub fn hle_bios(&mut self, _cpu_id: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 645 | pub fn arm9_read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 650 | pub fn arm9_read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 655 | pub fn arm9_read_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 660 | pub fn arm9_write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | pub fn arm9_write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 670 | pub fn arm9_write_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn cart_copy_keybuffer(&self, _buffer: &mut [u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | pub fn cart_write_header(&mut self, _address: u32, _halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 689 | pub fn request_interrupt7(&mut self, _id: Interrupt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 694 | pub fn request_interrupt9(&mut self, _id: Interrupt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 701 | pub fn arm7_has_cart_rights(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 710 | pub fn button_up_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 715 | pub fn button_down_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 720 | pub fn button_left_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn button_right_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 730 | pub fn button_start_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | pub fn button_select_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn button_a_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 745 | pub fn button_b_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 750 | pub fn button_x_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 755 | pub fn button_y_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 760 | pub fn button_l_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 765 | pub fn button_r_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 770 | pub fn button_up_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | pub fn button_down_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn button_left_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 785 | pub fn button_right_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 790 | pub fn button_start_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 795 | pub fn button_select_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 800 | pub fn button_a_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 805 | pub fn button_b_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 810 | pub fn button_x_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 815 | pub fn button_y_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 820 | pub fn button_l_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 825 | pub fn button_r_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn read_byte_internal(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 840 | fn read_halfword_internal(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 846 | fn read_word_internal(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 852 | fn write_byte_internal(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 867 | fn write_halfword_internal(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | fn write_word_internal(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | fn check_fifo7_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 883 | fn check_fifo9_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 888 | fn start_division(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 896 | fn start_sqrt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `emulator` is never read [INFO] [stdout] --> core/arm7/src/firmware.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct Firmware { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 35 | /// Emulator reference [INFO] [stdout] 36 | emulator: Option>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/firmware.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl Firmware { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn deselect(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | pub fn get_byte(&self, address: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn set_byte(&mut self, address: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn get_status(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_status(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn get_firmware(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn get_firmware_mut(&mut self) -> &mut [u8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | fn crc_update(mut crc: u16, byte: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn get_user_data(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn set_user_data(&mut self, value: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/gpu.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct DispStatReg { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 10 | /// Currently in VBLANK period [INFO] [stdout] 11 | pub is_vblank: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | /// Currently in HBLANK period [INFO] [stdout] 13 | pub is_hblank: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | /// VCOUNTER matches VCOUNTER setting [INFO] [stdout] 15 | pub is_vcounter: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 16 | /// Interrupt on VBLANK enable [INFO] [stdout] 17 | pub irq_on_vblank: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 18 | /// Interrupt on HBLANK enable [INFO] [stdout] 19 | pub irq_on_hblank: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 20 | /// Interrupt on VCOUNTER enable [INFO] [stdout] 21 | pub irq_on_vcounter: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 22 | /// Current line counter comparison value [INFO] [stdout] 23 | pub vcounter: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DispStatReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl DispStatReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mst`, `offset`, and `enabled` are never read [INFO] [stdout] --> core/arm7/src/gpu.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct VramBankCnt { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 86 | /// Master select mode for this bank [INFO] [stdout] 87 | pub mst: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] 88 | /// Offset within mode [INFO] [stdout] 89 | pub offset: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 90 | /// Is this bank enabled [INFO] [stdout] 91 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VramBankCnt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lcd_enable`, `engine_a`, `rendering_3d`, `geometry_3d`, `engine_b`, and `swap_display` are never read [INFO] [stdout] --> core/arm7/src/gpu.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PowCnt1Reg { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 114 | /// LCD display enable [INFO] [stdout] 115 | pub lcd_enable: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 116 | /// Engine A power (2D upper screen) [INFO] [stdout] 117 | pub engine_a: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 118 | /// 3D rendering enable [INFO] [stdout] 119 | pub rendering_3d: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 120 | /// 3D geometry enable [INFO] [stdout] 121 | pub geometry_3d: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 122 | /// Engine B power (2D lower screen) [INFO] [stdout] 123 | pub engine_b: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 124 | /// Swap upper/lower display screens [INFO] [stdout] 125 | pub swap_display: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PowCnt1Reg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 128 | impl PowCnt1Reg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/gpu.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct GPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 196 | /// Emulator reference [INFO] [stdout] 197 | emulator_ptr: *mut crate::emulator::Emulator, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | engine_a_active: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 201 | /// 2D Engine B (lower screen) [INFO] [stdout] 202 | engine_b_active: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 203 | /// 3D Engine enabled [INFO] [stdout] 204 | engine_3d_active: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | frame_complete: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 208 | /// Number of frames skipped for frame skip [INFO] [stdout] 209 | frames_skipped: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | cycles: u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | vram_a: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 216 | vram_b: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 217 | vram_c: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 218 | vram_d: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 219 | vram_e: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 220 | vram_f: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 221 | vram_g: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 222 | vram_h: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 223 | vram_i: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | palette_a: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 227 | /// Palette memory for engine B (1024 bytes) [INFO] [stdout] 228 | palette_b: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | oam: Vec, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | dispstat7: DispStatReg, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 235 | /// Display status register for ARM9 [INFO] [stdout] 236 | dispstat9: DispStatReg, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | vcount: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | vramcnt_a: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 243 | vramcnt_b: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 244 | vramcnt_c: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 245 | vramcnt_d: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 246 | vramcnt_e: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 247 | vramcnt_f: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 248 | vramcnt_g: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 249 | vramcnt_h: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 250 | vramcnt_i: VramBankCnt, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | powcnt1: PowCnt1Reg, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | upper_framebuffer: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 257 | /// Lower screen framebuffer (256x192 pixels) [INFO] [stdout] 258 | lower_framebuffer: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:314:12 [INFO] [stdout] | [INFO] [stdout] 261 | impl GPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn get_cycles(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn run_3d(&mut self, _cycles: u64) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn handle_event(&mut self, _event: &crate::emulator::SchedulerEvent) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn get_upper_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn get_lower_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 348 | pub fn start_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn end_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub fn check_gxfifo_dma(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn check_gxfifo_irq(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn is_frame_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn display_swapped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn read_arm7_u16(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | pub fn read_arm7_u32(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 440 | pub fn write_arm7_u32(&mut self, address: u32, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 462 | pub fn write_arm7_u8(&mut self, address: u32, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 483 | pub fn read_palette_a(&self, address: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 494 | pub fn read_palette_b(&self, address: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 505 | pub fn write_palette_a(&mut self, address: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 515 | pub fn write_palette_b(&mut self, address: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 525 | pub fn get_dispstat7(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 530 | pub fn get_dispstat9(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | pub fn set_dispstat7(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 540 | pub fn set_dispstat9(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn get_vcount(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | pub fn get_powcnt1(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 555 | pub fn set_powcnt1(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn get_vramcnt_a(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 565 | pub fn set_vramcnt_a(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn get_vramcnt_b(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn set_vramcnt_b(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 582 | pub fn get_vramcnt_c(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 587 | pub fn set_vramcnt_c(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 593 | pub fn get_vramcnt_d(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 598 | pub fn set_vramcnt_d(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 604 | pub fn get_vramcnt_e(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 609 | pub fn set_vramcnt_e(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | pub fn get_vramcnt_f(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 620 | pub fn set_vramcnt_f(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn get_vramcnt_g(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 631 | pub fn set_vramcnt_g(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 637 | pub fn get_vramcnt_h(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 642 | pub fn set_vramcnt_h(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn get_vramcnt_i(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 653 | pub fn set_vramcnt_i(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | pub fn set_upper_buffer(&mut self, buffer: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 664 | pub fn set_lower_buffer(&mut self, buffer: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 671 | pub fn write_gxfifo(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | pub fn set_clear_color(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 681 | pub fn set_clear_depth(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 686 | pub fn set_mtx_mode(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 691 | pub fn mtx_push(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn mtx_pop(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 701 | pub fn mtx_identity(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | pub fn mtx_mult_4x4(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 711 | pub fn mtx_mult_4x3(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 716 | pub fn mtx_mult_3x3(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 721 | pub fn mtx_trans(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 726 | pub fn color(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | pub fn vtx_16(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 736 | pub fn set_polygon_attr(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | pub fn set_teximage_param(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 746 | pub fn set_toon_table(&mut self, _address: u32, _color: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 751 | pub fn begin_vtxs(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn swap_buffers(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 761 | pub fn viewport(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | pub fn set_gxstat(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 773 | fn draw_bg_txt_line(&mut self, _index: usize, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 778 | fn draw_bg_extended_line(&mut self, _index: usize, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 783 | fn draw_sprite_line(&mut self, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 788 | fn draw_scanline(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Interrupt` is never used [INFO] [stdout] --> core/arm7/src/interrupts.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum Interrupt { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `input`, `output`, and `irq_enable` are never read [INFO] [stdout] --> core/arm7/src/ipc.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct IpcSync { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 8 | /// Input data from other CPU [INFO] [stdout] 9 | pub input: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | /// Output data to other CPU [INFO] [stdout] 11 | pub output: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 12 | /// Enable interrupt on receive [INFO] [stdout] 13 | pub irq_enable: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpcSync` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read`, `receive_input`, and `write` are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl IpcSync { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn read(&self) -> u16 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn receive_input(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn write(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/ipc.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct IpcFifo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 58 | /// Queue for sending data to other CPU [INFO] [stdout] 59 | pub send_queue: VecDeque, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 60 | /// Queue for receiving data from other CPU [INFO] [stdout] 61 | pub receive_queue: VecDeque, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub recent_word: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub send_empty_irq: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 68 | /// Request to empty send queue [INFO] [stdout] 69 | pub request_empty_irq: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 70 | /// Receive queue not empty IRQ enable [INFO] [stdout] 71 | pub receive_nempty_irq: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | /// Request not empty IRQ [INFO] [stdout] 73 | pub request_nempty_irq: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub error: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 77 | /// FIFO enabled [INFO] [stdout] 78 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IpcFifo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl IpcFifo { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn read_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn write_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn read_queue(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn write_queue(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn send_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn receive_not_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn receive_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn send_queue_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn receive_queue_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IPC` is never constructed [INFO] [stdout] --> core/arm7/src/ipc.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 209 | pub struct IPC { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 221 | impl IPC { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 222 | /// Create new IPC system [INFO] [stdout] 223 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn arm7_read_sync(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn arm7_write_sync(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn arm7_read_fifo(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn arm7_write_fifo(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn arm7_read_fifo_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn arm7_write_fifo_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | pub fn arm9_read_sync(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn arm9_write_sync(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn arm9_read_fifo(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn arm9_write_fifo(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn arm9_read_fifo_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn arm9_write_fifo_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn arm7_should_irq_receive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn arm7_should_irq_send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn arm9_should_irq_receive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn arm9_should_irq_send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `arm7_read_word`, `arm7_read_halfword`, and `arm7_read_byte` are never used [INFO] [stdout] --> core/arm7/src/read_arm7.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn arm7_read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn arm7_read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn arm7_read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `day_of_week`, `hour`, and `minute` are never read [INFO] [stdout] --> core/arm7/src/rtc.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Alarm { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 7 | /// Day of week (0=Sunday, 6=Saturday) [INFO] [stdout] 8 | pub day_of_week: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 9 | /// Hour (0-23) [INFO] [stdout] 10 | pub hour: u8, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | /// Minute (0-59) [INFO] [stdout] 12 | pub minute: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Alarm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/rtc.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct RealTimeClock { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 35 | /// Status register 1 [INFO] [stdout] 36 | stat1_reg: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 37 | /// Status register 2 [INFO] [stdout] 38 | stat2_reg: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | year: u8, [INFO] [stdout] | ^^^^ [INFO] [stdout] 42 | /// Current month (1-12) [INFO] [stdout] 43 | month: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 44 | /// Current day (1-31) [INFO] [stdout] 45 | day: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | /// Current day of week (0=Sunday, 6=Saturday) [INFO] [stdout] 47 | day_of_week: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | hour: u8, [INFO] [stdout] | ^^^^ [INFO] [stdout] 51 | /// Current minute (0-59) [INFO] [stdout] 52 | minute: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | /// Current second (0-59) [INFO] [stdout] 54 | second: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | alarm1: Alarm, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | /// Alarm 2 settings [INFO] [stdout] 59 | alarm2: Alarm, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | io_reg: u16, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | /// Internal output buffer for serial data [INFO] [stdout] 65 | internal_output: [u8; 7], [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 66 | /// Current command being processed [INFO] [stdout] 67 | command: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 68 | /// Input data accumulator [INFO] [stdout] 69 | input: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 70 | /// Current bit position in input [INFO] [stdout] 71 | input_bit_num: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 72 | /// Index in input buffer [INFO] [stdout] 73 | input_index: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 74 | /// Current bit position in output [INFO] [stdout] 75 | output_bit_num: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 76 | /// Index in output buffer [INFO] [stdout] 77 | output_index: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/rtc.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 80 | impl RealTimeClock { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn init(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn interpret_input(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn read(&self) -> u16 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn write(&mut self, mut value: u16, is_byte: bool) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn get_year(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn get_month(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn get_day(&self) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn get_day_of_week(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn get_hour(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn get_minute(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn get_second(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn set_year(&mut self, year: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn set_month(&mut self, month: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn set_day(&mut self, day: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub fn set_day_of_week(&mut self, dow: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn set_hour(&mut self, hour: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn set_minute(&mut self, minute: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn set_second(&mut self, second: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn get_alarm1(&self) -> Alarm { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn set_alarm1(&mut self, alarm: Alarm) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn get_alarm2(&self) -> Alarm { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_alarm2(&mut self, alarm: Alarm) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn get_stat1(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn set_stat1(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn get_stat2(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn set_stat2(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn tick_second(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | fn tick_minute(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | fn tick_hour(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | fn tick_day(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | fn tick_month(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | fn tick_year(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn to_bcd(value: u8) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn from_bcd(value: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/spu.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ChannelCntReg { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 7 | /// Volume level (0-127) [INFO] [stdout] 8 | pub volume: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | /// Frequency divider [INFO] [stdout] 10 | pub divider: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | /// Hold last sample when stopped [INFO] [stdout] 12 | pub hold_sample: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 13 | /// Panning (0=left, 64=center, 127=right) [INFO] [stdout] 14 | pub panning: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | /// Wave duty cycle for generators [INFO] [stdout] 16 | pub wave_duty: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | /// Repeat mode (0=manual, 1=loop, 3=one-shot) [INFO] [stdout] 18 | pub repeat_mode: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | /// Audio format (0=PCM8, 1=PCM16, 2=ADPCM, 3=PSG) [INFO] [stdout] 20 | pub format: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | /// Channel is currently playing [INFO] [stdout] 22 | pub busy: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelCntReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channel_cnt`, `sound_source`, `sound_timer`, `sound_pnt`, and `sound_len` are never read [INFO] [stdout] --> core/arm7/src/spu.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct SoundChannel { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 50 | /// Channel control register [INFO] [stdout] 51 | pub channel_cnt: ChannelCntReg, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 52 | /// Source address in memory [INFO] [stdout] 53 | pub sound_source: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 54 | /// Playback timer/frequency [INFO] [stdout] 55 | pub sound_timer: u16, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 56 | /// Current playback position [INFO] [stdout] 57 | pub sound_pnt: u16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 58 | /// Length of audio data [INFO] [stdout] 59 | pub sound_len: u16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SoundChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `master_volume`, `left_output`, `right_output`, `output_ch1_mixer`, `output_ch3_mixer`, and `master_enable` are never read [INFO] [stdout] --> core/arm7/src/spu.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct SoundCntReg { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 84 | /// Master volume (0-127) [INFO] [stdout] 85 | pub master_volume: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 86 | /// Left output volume [INFO] [stdout] 87 | pub left_output: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 88 | /// Right output volume [INFO] [stdout] 89 | pub right_output: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 90 | /// Mix channel 1 to output [INFO] [stdout] 91 | pub output_ch1_mixer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 92 | /// Mix channel 3 to output [INFO] [stdout] 93 | pub output_ch3_mixer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 94 | /// Master audio enable [INFO] [stdout] 95 | pub master_enable: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SoundCntReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/spu.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl SoundCntReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/spu.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct SndCapture { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 149 | /// Add channel to capture [INFO] [stdout] 150 | pub add_to_channel: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 151 | /// Capture source (0=mixer, 1=channel) [INFO] [stdout] 152 | pub capture_source: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 153 | /// One-shot mode (not repeating) [INFO] [stdout] 154 | pub one_shot: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 155 | /// Capture format is PCM8 (vs PCM16) [INFO] [stdout] 156 | pub capture_pcm8: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 157 | /// Capture is active [INFO] [stdout] 158 | pub busy: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 159 | /// Destination address in memory [INFO] [stdout] 160 | pub destination: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 161 | /// Capture length [INFO] [stdout] 162 | pub len: u16, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SndCapture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get` and `set` are never used [INFO] [stdout] --> core/arm7/src/spu.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 165 | impl SndCapture { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get(&self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn set(&mut self, value: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channels`, `soundcnt`, `sndcap0`, `sndcap1`, and `soundbias` are never read [INFO] [stdout] --> core/arm7/src/spu.rs:220:5 [INFO] [stdout] | [INFO] [stdout] 218 | pub struct SPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 219 | /// 16 audio channels [INFO] [stdout] 220 | channels: [SoundChannel; 16], [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | soundcnt: SoundCntReg, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | sndcap0: SndCapture, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 227 | /// Capture 1 settings [INFO] [stdout] 228 | sndcap1: SndCapture, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | soundbias: u16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/spu.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 234 | impl SPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn read_channel_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub fn write_channel_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn write_channel_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn write_channel_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn get_soundcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub fn get_soundbias(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn get_sndcap0(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn get_sndcap1(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn set_soundcnt_lo(&mut self, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | pub fn set_soundcnt_hi(&mut self, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn set_soundcnt(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn set_soundbias(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn set_sndcap0(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 402 | pub fn set_sndcap1(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | pub fn get_channel(&self, index: usize) -> Option<&SoundChannel> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 416 | pub fn get_channel_mut(&mut self, index: usize) -> Option<&mut SoundChannel> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `F64`, `F256`, and `F1024` are never constructed [INFO] [stdout] --> core/arm7/src/timers.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Divisor { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | F64 = 1, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | /// Divide by 256 [INFO] [stdout] 12 | F256 = 2, [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | /// Divide by 1024 [INFO] [stdout] 14 | F1024 = 3, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Divisor` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `value` and `from_value` are never used [INFO] [stdout] --> core/arm7/src/timers.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Divisor { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 18 | /// Get the divisor value as integer [INFO] [stdout] 19 | pub fn value(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/timers.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct TimerReg { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 43 | /// Current counter value [INFO] [stdout] 44 | pub counter: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | /// Value to reload counter on overflow [INFO] [stdout] 46 | pub reload_value: u16, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 47 | /// Cycles remaining before increment [INFO] [stdout] 48 | pub cycles_left: i32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 49 | /// Clock frequency divisor [INFO] [stdout] 50 | pub clock_div: Divisor, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | /// Count up mode: increment when previous timer overflows [INFO] [stdout] 52 | pub count_up_timing: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 53 | /// Generate interrupt on overflow [INFO] [stdout] 54 | pub irq_on_overflow: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 55 | /// Timer enabled [INFO] [stdout] 56 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TimerReg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_control` and `set_control` are never used [INFO] [stdout] --> core/arm7/src/timers.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl TimerReg { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_control(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn set_control(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `emulator_ptr`, `timer_clock_divs`, and `timers` are never read [INFO] [stdout] --> core/arm7/src/timers.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct NDSTiming { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 107 | /// Emulator reference [INFO] [stdout] 108 | emulator_ptr: *mut crate::emulator::Emulator, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | timer_clock_divs: [i32; 4], [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | timers: [TimerReg; 8], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/timers.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl NDSTiming { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn run_timers9(&mut self, cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn run_timers7(&mut self, cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn run_timer(&mut self, cycles: i32, index: usize) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn overflow(&mut self, index: usize) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn read_lo(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn read_hi(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn write(&mut self, value: u32, index: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pub fn write_lo(&mut self, value: u16, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn write_hi(&mut self, value: u16, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn get_counter(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub fn set_counter(&mut self, index: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn get_reload(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn set_reload(&mut self, index: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn is_enabled(&self, index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub fn get_timer(&self, index: usize) -> Option<&TimerReg> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn get_timer_mut(&mut self, index: usize) -> Option<&mut TimerReg> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> core/arm7/src/wifi.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct WiFi { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 8 | /// Power control register (0x0236) [INFO] [stdout] 9 | w_power_us: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | w_bb_write: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 13 | /// Baseband read register (0x015C) [INFO] [stdout] 14 | w_bb_read: u16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 15 | /// Baseband mode register (0x0160) [INFO] [stdout] 16 | w_bb_mode: u16, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | /// Baseband power register (0x0168) [INFO] [stdout] 18 | w_bb_power: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | w_rf_cnt: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | bb_busy: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | /// RF busy flag [INFO] [stdout] 26 | rf_busy: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> core/arm7/src/wifi.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl WiFi { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn set_w_power_us(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_w_power_us(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_w_bb_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_w_bb_write(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get_w_bb_read(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn set_w_bb_mode(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_w_bb_mode(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn set_w_bb_power(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn get_w_bb_power(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn set_w_rf_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get_w_rf_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn get_w_rf_busy(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn get_w_bb_busy(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn bb_read(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn bb_write(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn power_off(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `arm7_write_word`, `arm7_write_halfword`, and `arm7_write_byte` are never used [INFO] [stdout] --> core/arm7/src/write_arm7.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 7 | pub fn arm7_write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn arm7_write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn arm7_write_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/bios.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | cpu.write_word(dest, v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = cpu.write_word(dest, v); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/bios.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | cpu.write_halfword(dest, v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = cpu.write_halfword(dest, v); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/rtc.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | self.interpret_input(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 170 | let _ = self.interpret_input(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> core/arm7/src/cp15.rs:284:56 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn mrc(&self, operation: i32, source_reg: i32, info: i32, operand_reg: i32) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> core/arm7/src/cp15.rs:301:9 [INFO] [stdout] | [INFO] [stdout] 301 | info: i32, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:377:33 [INFO] [stdout] | [INFO] [stdout] 377 | pub fn read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:383:37 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:389:33 [INFO] [stdout] | [INFO] [stdout] 389 | pub fn read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:395:34 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `word` [INFO] [stdout] --> core/arm7/src/cpu.rs:395:48 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_word` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:401:38 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `halfword` [INFO] [stdout] --> core/arm7/src/cpu.rs:401:52 [INFO] [stdout] | [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_halfword` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> core/arm7/src/cpu.rs:407:34 [INFO] [stdout] | [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `byte` [INFO] [stdout] --> core/arm7/src/cpu.rs:407:48 [INFO] [stdout] | [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_byte` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bios` [INFO] [stdout] --> core/arm7/src/emulator.rs:437:34 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn load_bios7(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bios` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bios` [INFO] [stdout] --> core/arm7/src/emulator.rs:443:34 [INFO] [stdout] | [INFO] [stdout] 443 | pub fn load_bios9(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_bios` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rom_name` [INFO] [stdout] --> core/arm7/src/emulator.rs:454:32 [INFO] [stdout] | [INFO] [stdout] 454 | pub fn load_rom(&mut self, rom_name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> core/arm7/src/emulator.rs:632:41 [INFO] [stdout] | [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> core/arm7/src/emulator.rs:632:49 [INFO] [stdout] | [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> core/arm7/src/wifi.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn set_w_bb_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stdout] warning: struct `BIOS` is never constructed [INFO] [stdout] --> core/arm7/src/bios.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct BIOS; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/bios.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl BIOS { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 9 | /// Creates a new BIOS instance. [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | fn get_opcode(&self, cpu: &mut ARMCPU) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn div(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn cpu_set(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | fn get_crc16(&self, cpu: &mut ARMCPU) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn swi7(&self, arm7: &mut ARMCPU) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn swi9(&self, arm9: &mut ARMCPU) -> i32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CartCommand` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum CartCommand { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl CartCommand { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 26 | /// Convert numeric value to CartCommand [INFO] [stdout] 27 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AuxSpiCommand` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 44 | pub enum AuxSpiCommand { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl AuxSpiCommand { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 62 | /// Convert numeric value to AuxSpiCommand [INFO] [stdout] 63 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegRomCtrl` is never constructed [INFO] [stdout] --> core/arm7/src/cartridge.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct RegRomCtrl { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl RegRomCtrl { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 103 | /// Create new ROM control register [INFO] [stdout] 104 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get(&self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn set(&mut self, value: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegAuxSpiCnt` is never constructed [INFO] [stdout] --> core/arm7/src/cartridge.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct RegAuxSpiCnt { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:189:12 [INFO] [stdout] | [INFO] [stdout] 187 | impl RegAuxSpiCnt { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 188 | /// Create new auxiliary SPI control register [INFO] [stdout] 189 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDSCart` is never constructed [INFO] [stdout] --> core/arm7/src/cartridge.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 240 | pub struct NDSCart { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/cartridge.rs:311:12 [INFO] [stdout] | [INFO] [stdout] 309 | impl NDSCart { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 310 | /// Create new cartridge controller [INFO] [stdout] 311 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub fn load_database(&mut self, _file_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn load_rom(&mut self, _file_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn save_check(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn read_command(&self, index: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn receive_command(&mut self, command: u8, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn run(&mut self, _cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub fn debug_encrypt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn direct_read(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn direct_read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 416 | pub fn direct_read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn get_romctrl(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 428 | pub fn get_output(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 433 | pub fn get_auxspicnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn read_auxspidata(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn set_hi_auxspicnt(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 450 | pub fn set_auxspicnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn set_auxspidata(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub fn set_romctrl(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn set_lo_key2_seed0(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn set_lo_key2_seed1(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 475 | pub fn set_hi_key2_seed0(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub fn set_hi_key2_seed1(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | fn key1_encrypt(&mut self, _data: &mut [u32]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 492 | fn key1_decrypt(&mut self, _data: &mut [u32]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | fn apply_keycode(&mut self, _modulo: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 502 | fn init_keycode(&mut self, _idcode: u32, _level: i32, _modulo: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ControlReg` is never constructed [INFO] [stdout] --> core/arm7/src/cp15.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ControlReg { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_values`, and `set_values` are never used [INFO] [stdout] --> core/arm7/src/cp15.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl ControlReg { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 35 | /// Create new control register with defaults [INFO] [stdout] 36 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_values(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn set_values(&mut self, reg: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CP15` is never constructed [INFO] [stdout] --> core/arm7/src/cp15.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct CP15 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/cp15.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl CP15 { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 148 | /// Create new CP15 controller [INFO] [stdout] 149 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn power_on(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn link_with_cpu(&mut self, _arm9: Arc>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn get_itcm_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn get_dtcm_base(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn get_dtcm_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn dtcm_write_only(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn read_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn write_byte(&mut self, address: u32, byte: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn mrc(&self, operation: i32, source_reg: i32, info: i32, operand_reg: i32) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn mcr( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn get_control(&self) -> &ControlReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn get_control_mut(&mut self) -> &mut ControlReg { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 335 | pub fn invalidate_icache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn invalidate_dcache(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_SP` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const REG_SP: usize = 13; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_LR` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const REG_LR: usize = 14; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_PC` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const REG_PC: usize = 15; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PSRMode` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum PSRMode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/cpu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl PSRMode { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 30 | /// Convert numeric value to PSRMode [INFO] [stdout] 31 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PSRFlags` is never constructed [INFO] [stdout] --> core/arm7/src/cpu.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct PSRFlags { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/cpu.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl PSRFlags { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 69 | /// Create new PSR flags with default values [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn get(&self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn set(&mut self, value: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ARMCPU` is never constructed [INFO] [stdout] --> core/arm7/src/cpu.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | pub struct ARMCPU { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/cpu.rs:203:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl ARMCPU { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 202 | /// Create a new ARM CPU instance [INFO] [stdout] 203 | pub fn new(cpu_id: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 241 | pub fn power_on(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn direct_boot(&mut self, entry_point: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn execute(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn jump(&mut self, new_addr: u32, change_thumb_state: bool) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn handle_undefined(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn handle_irq(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn halt(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | pub fn handle_swi(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub fn print_info(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn update_reg_mode(&mut self, _new_mode: PSRMode) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn get_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | pub fn get_timestamp(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn cycles_ran(&self) -> i64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | pub fn get_pc(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fn get_current_instr(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn get_register(&self, id: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | pub fn get_cpsr(&self) -> PSRFlags { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn set_register(&mut self, id: usize, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 370 | pub fn set_cpsr(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | pub fn read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 395 | pub fn write_word(&mut self, address: u32, word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn write_halfword(&mut self, address: u32, halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | pub fn write_byte(&mut self, address: u32, byte: u8) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | pub fn add_n32_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | pub fn add_s32_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub fn add_n16_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn add_s16_code(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn add_n32_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn add_s32_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | pub fn add_n16_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 471 | pub fn add_s16_data(&mut self, address: u32, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 479 | pub fn add_internal_cycles(&mut self, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 484 | pub fn add_cop_cycles(&mut self, cycles: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 491 | pub fn and(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 500 | pub fn orr(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 509 | pub fn eor(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn add(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 528 | pub fn sub(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 538 | pub fn adc(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn sbc(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn cmp(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 567 | pub fn cmn(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | pub fn tst(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 580 | pub fn teq(&mut self, x: u32, y: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn mov(&mut self, dest: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 594 | pub fn mul(&mut self, dest: usize, src: usize, operand: u32, set_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 603 | pub fn bic(&mut self, dest: usize, src: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 612 | pub fn mvn(&mut self, dest: usize, operand: u32, alter_flags: bool) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 621 | pub fn mrs(&mut self, _instruction: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn msr(&mut self, _instruction: u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 633 | pub fn set_zero(&mut self, cond: bool) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 638 | pub fn set_neg(&mut self, cond: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 643 | pub fn set_zero_neg_flags(&mut self, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 649 | fn set_cv_add_flags(&mut self, a: u32, b: u32, result: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | fn set_cv_sub_flags(&mut self, a: u32, b: u32, result: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 669 | pub fn spsr_to_cpsr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 679 | pub fn lsl(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn lsr(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 713 | pub fn asr(&mut self, value: u32, shift: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | pub fn rrx(&mut self, value: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pub fn rotr32(&mut self, n: u32, c: u32, alter_flags: bool) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DmaCnt` is never constructed [INFO] [stdout] --> core/arm7/src/dma.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DmaCnt { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/dma.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl DmaCnt { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 24 | /// Create new DMA control register [INFO] [stdout] 25 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DmaChannel` is never constructed [INFO] [stdout] --> core/arm7/src/dma.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct DmaChannel { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/arm7/src/dma.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl DmaChannel { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 105 | /// Create new DMA channel [INFO] [stdout] 106 | pub fn new(index: u32, is_arm9: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDS_DMA` is never constructed [INFO] [stdout] --> core/arm7/src/dma.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct NDS_DMA { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/dma.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl NDS_DMA { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 146 | /// Create new DMA controller [INFO] [stdout] 147 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn dma_event(&mut self, index: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn update_dma(&mut self, index: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn handle_event(&mut self, _event: &crate::emulator::SchedulerEvent) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub fn read_source(&self, index: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn read_len(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 297 | pub fn read_cnt(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn write_source(&mut self, index: usize, source: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn write_dest(&mut self, index: usize, dest: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn write_len(&mut self, index: usize, len: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn write_cnt(&mut self, index: usize, cnt: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn write_len_cnt(&mut self, index: usize, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn hblank_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn gamecart_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | pub fn gxfifo_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `KeyInputReg` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct KeyInputReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl KeyInputReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 36 | /// Get the current key input register value (bit-packed format) [INFO] [stdout] 37 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtKeyInReg` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct ExtKeyInReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 96 | impl ExtKeyInReg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 97 | /// Get the extended key input register value [INFO] [stdout] 98 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PowCnt2Reg` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct PowCnt2Reg { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_value` and `set_value` are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl PowCnt2Reg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 134 | /// Get the power control register value [INFO] [stdout] 135 | pub fn get_value(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn set_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SchedulerEvent` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct SchedulerEvent { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Interrupt` is never used [INFO] [stdout] --> core/arm7/src/emulator.rs:172:10 [INFO] [stdout] | [INFO] [stdout] 172 | pub enum Interrupt { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BiosMem` is never used [INFO] [stdout] --> core/arm7/src/emulator.rs:198:10 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum BiosMem { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Emulator` is never constructed [INFO] [stdout] --> core/arm7/src/emulator.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 240 | pub struct Emulator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/emulator.rs:348:12 [INFO] [stdout] | [INFO] [stdout] 346 | impl Emulator { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 347 | /// Create a new emulator instance with default values [INFO] [stdout] 348 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 425 | pub fn init(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub fn load_firmware(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 437 | pub fn load_bios7(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | pub fn load_bios9(&mut self, bios: &[u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 449 | pub fn load_save_database(&mut self, _name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | pub fn load_rom(&mut self, rom_name: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | pub fn direct_boot(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 513 | pub fn debug(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn run(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 523 | pub fn requesting_interrupt(&self, cpu_id: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 532 | pub fn write_spidata7(&mut self, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub fn get_timestamp(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 544 | pub fn get_upper_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | pub fn get_lower_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 556 | pub fn set_upper_screen(&mut self, _buffer: &[u32]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 561 | pub fn set_lower_screen(&mut self, _buffer: &[u32]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | pub fn frame_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn display_swapped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn dma_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 581 | pub fn hblank_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn gamecart_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 591 | pub fn gxfifo_dma_request(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 596 | pub fn check_gxfifo_dma(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 601 | pub fn add_gpu_event(&mut self, event_id: u32, relative_time: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 614 | pub fn add_dma_event(&mut self, event_id: u32, relative_time: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 627 | pub fn calculate_system_timestamp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 632 | pub fn touchscreen_press(&mut self, x: i32, y: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 638 | pub fn hle_bios(&mut self, _cpu_id: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 645 | pub fn arm9_read_word(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 650 | pub fn arm9_read_halfword(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 655 | pub fn arm9_read_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 660 | pub fn arm9_write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | pub fn arm9_write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 670 | pub fn arm9_write_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 677 | pub fn cart_copy_keybuffer(&self, _buffer: &mut [u8]) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 682 | pub fn cart_write_header(&mut self, _address: u32, _halfword: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 689 | pub fn request_interrupt7(&mut self, _id: Interrupt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 694 | pub fn request_interrupt9(&mut self, _id: Interrupt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 701 | pub fn arm7_has_cart_rights(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 710 | pub fn button_up_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 715 | pub fn button_down_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 720 | pub fn button_left_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | pub fn button_right_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 730 | pub fn button_start_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | pub fn button_select_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn button_a_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 745 | pub fn button_b_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 750 | pub fn button_x_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 755 | pub fn button_y_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 760 | pub fn button_l_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 765 | pub fn button_r_pressed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 770 | pub fn button_up_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 775 | pub fn button_down_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn button_left_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 785 | pub fn button_right_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 790 | pub fn button_start_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 795 | pub fn button_select_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 800 | pub fn button_a_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 805 | pub fn button_b_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 810 | pub fn button_x_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 815 | pub fn button_y_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 820 | pub fn button_l_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 825 | pub fn button_r_released(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 831 | fn read_byte_internal(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 840 | fn read_halfword_internal(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 846 | fn read_word_internal(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 852 | fn write_byte_internal(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 867 | fn write_halfword_internal(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | fn write_word_internal(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | fn check_fifo7_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 883 | fn check_fifo9_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 888 | fn start_division(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 896 | fn start_sqrt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FirmwareCommand` is never used [INFO] [stdout] --> core/arm7/src/firmware.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum FirmwareCommand { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_value` is never used [INFO] [stdout] --> core/arm7/src/firmware.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl FirmwareCommand { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 21 | /// Convert numeric value to FirmwareCommand [INFO] [stdout] 22 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Firmware` is never constructed [INFO] [stdout] --> core/arm7/src/firmware.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct Firmware { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/firmware.rs:55:15 [INFO] [stdout] | [INFO] [stdout] 53 | impl Firmware { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 54 | /// Firmware size in bytes (256 KB) [INFO] [stdout] 55 | pub const SIZE: usize = 1024 * 256; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn load_firmware(&mut self, file_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn read_u16(&self, offset: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | fn write_u16(&mut self, offset: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn create_crc(data: &[u8], length: usize, mut start: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn verify_crc(&self, start: u32, offset: usize, length: usize, crc_offset: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn transfer_data(&mut self, input: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn deselect(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | pub fn get_byte(&self, address: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 284 | pub fn set_byte(&mut self, address: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn get_status(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_status(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn get_firmware(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 306 | pub fn get_firmware_mut(&mut self) -> &mut [u8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | fn crc_update(mut crc: u16, byte: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn get_user_data(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn set_user_data(&mut self, value: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DispStatReg` is never constructed [INFO] [stdout] --> core/arm7/src/gpu.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct DispStatReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl DispStatReg { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 27 | /// Create new display status register [INFO] [stdout] 28 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VramBankCnt` is never constructed [INFO] [stdout] --> core/arm7/src/gpu.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct VramBankCnt { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl VramBankCnt { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 95 | /// Create new VRAM bank configuration [INFO] [stdout] 96 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PowCnt1Reg` is never constructed [INFO] [stdout] --> core/arm7/src/gpu.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct PowCnt1Reg { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 128 | impl PowCnt1Reg { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 129 | /// Create new power control register [INFO] [stdout] 130 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_A_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:183:11 [INFO] [stdout] | [INFO] [stdout] 183 | pub const VRAM_A_SIZE: usize = 128 * 1024; // 128KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_B_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:184:11 [INFO] [stdout] | [INFO] [stdout] 184 | pub const VRAM_B_SIZE: usize = 128 * 1024; // 128KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_C_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:185:11 [INFO] [stdout] | [INFO] [stdout] 185 | pub const VRAM_C_SIZE: usize = 128 * 1024; // 128KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_D_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:186:11 [INFO] [stdout] | [INFO] [stdout] 186 | pub const VRAM_D_SIZE: usize = 128 * 1024; // 128KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_E_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:187:11 [INFO] [stdout] | [INFO] [stdout] 187 | pub const VRAM_E_SIZE: usize = 64 * 1024; // 64KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_F_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:188:11 [INFO] [stdout] | [INFO] [stdout] 188 | pub const VRAM_F_SIZE: usize = 16 * 1024; // 16KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_G_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:189:11 [INFO] [stdout] | [INFO] [stdout] 189 | pub const VRAM_G_SIZE: usize = 16 * 1024; // 16KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_H_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:190:11 [INFO] [stdout] | [INFO] [stdout] 190 | pub const VRAM_H_SIZE: usize = 32 * 1024; // 32KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_I_SIZE` is never used [INFO] [stdout] --> core/arm7/src/gpu.rs:191:11 [INFO] [stdout] | [INFO] [stdout] 191 | pub const VRAM_I_SIZE: usize = 16 * 1024; // 16KB [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GPU` is never constructed [INFO] [stdout] --> core/arm7/src/gpu.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct GPU { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/gpu.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 261 | impl GPU { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 262 | /// Create new GPU instance [INFO] [stdout] 263 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn get_cycles(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn run_3d(&mut self, _cycles: u64) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn handle_event(&mut self, _event: &crate::emulator::SchedulerEvent) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn get_upper_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn get_lower_frame(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 348 | pub fn start_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn end_frame(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub fn check_gxfifo_dma(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn check_gxfifo_irq(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn is_frame_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn display_swapped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn read_arm7_u16(&self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | pub fn read_arm7_u32(&self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 440 | pub fn write_arm7_u32(&mut self, address: u32, value: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 462 | pub fn write_arm7_u8(&mut self, address: u32, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 483 | pub fn read_palette_a(&self, address: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 494 | pub fn read_palette_b(&self, address: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 505 | pub fn write_palette_a(&mut self, address: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 515 | pub fn write_palette_b(&mut self, address: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 525 | pub fn get_dispstat7(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 530 | pub fn get_dispstat9(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | pub fn set_dispstat7(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 540 | pub fn set_dispstat9(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn get_vcount(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 550 | pub fn get_powcnt1(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 555 | pub fn set_powcnt1(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn get_vramcnt_a(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 565 | pub fn set_vramcnt_a(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn get_vramcnt_b(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn set_vramcnt_b(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 582 | pub fn get_vramcnt_c(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 587 | pub fn set_vramcnt_c(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 593 | pub fn get_vramcnt_d(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 598 | pub fn set_vramcnt_d(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 604 | pub fn get_vramcnt_e(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 609 | pub fn set_vramcnt_e(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | pub fn get_vramcnt_f(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 620 | pub fn set_vramcnt_f(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 626 | pub fn get_vramcnt_g(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 631 | pub fn set_vramcnt_g(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 637 | pub fn get_vramcnt_h(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 642 | pub fn set_vramcnt_h(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 648 | pub fn get_vramcnt_i(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 653 | pub fn set_vramcnt_i(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | pub fn set_upper_buffer(&mut self, buffer: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 664 | pub fn set_lower_buffer(&mut self, buffer: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 671 | pub fn write_gxfifo(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | pub fn set_clear_color(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 681 | pub fn set_clear_depth(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 686 | pub fn set_mtx_mode(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 691 | pub fn mtx_push(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn mtx_pop(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 701 | pub fn mtx_identity(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | pub fn mtx_mult_4x4(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 711 | pub fn mtx_mult_4x3(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 716 | pub fn mtx_mult_3x3(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 721 | pub fn mtx_trans(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 726 | pub fn color(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | pub fn vtx_16(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 736 | pub fn set_polygon_attr(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | pub fn set_teximage_param(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 746 | pub fn set_toon_table(&mut self, _address: u32, _color: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 751 | pub fn begin_vtxs(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn swap_buffers(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 761 | pub fn viewport(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 766 | pub fn set_gxstat(&mut self, _word: u32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 773 | fn draw_bg_txt_line(&mut self, _index: usize, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 778 | fn draw_bg_extended_line(&mut self, _index: usize, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 783 | fn draw_sprite_line(&mut self, _engine_a: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 788 | fn draw_scanline(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Interrupt` is never used [INFO] [stdout] --> core/arm7/src/interrupts.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum Interrupt { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IpcSync` is never constructed [INFO] [stdout] --> core/arm7/src/ipc.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct IpcSync { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, `receive_input`, and `write` are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl IpcSync { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 17 | /// Create new IPC sync register [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn read(&self) -> u16 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn receive_input(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn write(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IpcFifo` is never constructed [INFO] [stdout] --> core/arm7/src/ipc.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct IpcFifo { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl IpcFifo { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 82 | /// Create new IPC FIFO [INFO] [stdout] 83 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn read_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn write_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn read_queue(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn write_queue(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn send_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn receive_not_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn receive_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn send_queue_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn receive_queue_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IPC` is never constructed [INFO] [stdout] --> core/arm7/src/ipc.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 209 | pub struct IPC { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/ipc.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 221 | impl IPC { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 222 | /// Create new IPC system [INFO] [stdout] 223 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn arm7_read_sync(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub fn arm7_write_sync(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 247 | pub fn arm7_read_fifo(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn arm7_write_fifo(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn arm7_read_fifo_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn arm7_write_fifo_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | pub fn arm9_read_sync(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn arm9_write_sync(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | pub fn arm9_read_fifo(&mut self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn arm9_write_fifo(&mut self, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn arm9_read_fifo_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn arm9_write_fifo_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn arm7_should_irq_receive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn arm7_should_irq_send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn arm9_should_irq_receive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn arm9_should_irq_send_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `arm7_read_word`, `arm7_read_halfword`, and `arm7_read_byte` are never used [INFO] [stdout] --> core/arm7/src/read_arm7.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn arm7_read_word(&mut self, address: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn arm7_read_halfword(&mut self, address: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn arm7_read_byte(&mut self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Alarm` is never constructed [INFO] [stdout] --> core/arm7/src/rtc.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Alarm { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/arm7/src/rtc.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Alarm { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 16 | /// Create new alarm [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RealTimeClock` is never constructed [INFO] [stdout] --> core/arm7/src/rtc.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct RealTimeClock { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/rtc.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 80 | impl RealTimeClock { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 81 | /// Create new RTC [INFO] [stdout] 82 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn init(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn interpret_input(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn read(&self) -> u16 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn write(&mut self, mut value: u16, is_byte: bool) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn get_year(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn get_month(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn get_day(&self) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn get_day_of_week(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn get_hour(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn get_minute(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn get_second(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn set_year(&mut self, year: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn set_month(&mut self, month: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn set_day(&mut self, day: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub fn set_day_of_week(&mut self, dow: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | pub fn set_hour(&mut self, hour: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn set_minute(&mut self, minute: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn set_second(&mut self, second: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn get_alarm1(&self) -> Alarm { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn set_alarm1(&mut self, alarm: Alarm) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn get_alarm2(&self) -> Alarm { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_alarm2(&mut self, alarm: Alarm) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn get_stat1(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn set_stat1(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | pub fn get_stat2(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn set_stat2(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub fn tick_second(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | fn tick_minute(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | fn tick_hour(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | fn tick_day(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | fn tick_month(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | fn tick_year(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn to_bcd(value: u8) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn from_bcd(value: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegSpiCnt` is never constructed [INFO] [stdout] --> core/arm7/src/spi.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RegSpiCnt { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/spi.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl RegSpiCnt { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 26 | /// Create new SPI control register [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SPIBus` is never constructed [INFO] [stdout] --> core/arm7/src/spi.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct SPIBus { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/spi.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl SPIBus { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 95 | /// Create new SPI bus [INFO] [stdout] 96 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn init(&mut self, firmware_path: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn touchscreen_press(&mut self, x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn read_spidata(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn write_spidata(&mut self, data: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_spicnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn set_spicnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelCntReg` is never constructed [INFO] [stdout] --> core/arm7/src/spu.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ChannelCntReg { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/arm7/src/spu.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl ChannelCntReg { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 26 | /// Create new channel control register [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoundChannel` is never constructed [INFO] [stdout] --> core/arm7/src/spu.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct SoundChannel { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/arm7/src/spu.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl SoundChannel { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 63 | /// Create new sound channel [INFO] [stdout] 64 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoundCntReg` is never constructed [INFO] [stdout] --> core/arm7/src/spu.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct SoundCntReg { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/spu.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl SoundCntReg { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 99 | /// Create new sound control register [INFO] [stdout] 100 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn set(&mut self, value: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SndCapture` is never constructed [INFO] [stdout] --> core/arm7/src/spu.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | pub struct SndCapture { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used [INFO] [stdout] --> core/arm7/src/spu.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 165 | impl SndCapture { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 166 | /// Create new capture settings [INFO] [stdout] 167 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get(&self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn set(&mut self, value: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SPU` is never constructed [INFO] [stdout] --> core/arm7/src/spu.rs:218:12 [INFO] [stdout] | [INFO] [stdout] 218 | pub struct SPU { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/spu.rs:236:12 [INFO] [stdout] | [INFO] [stdout] 234 | impl SPU { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 235 | /// Create new SPU instance [INFO] [stdout] 236 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | pub fn read_channel_byte(&self, address: u32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub fn write_channel_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn write_channel_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn write_channel_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn get_soundcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub fn get_soundbias(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub fn get_sndcap0(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn get_sndcap1(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn set_soundcnt_lo(&mut self, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | pub fn set_soundcnt_hi(&mut self, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn set_soundcnt(&mut self, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn set_soundbias(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 397 | pub fn set_sndcap0(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 402 | pub fn set_sndcap1(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | pub fn get_channel(&self, index: usize) -> Option<&SoundChannel> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 416 | pub fn get_channel_mut(&mut self, index: usize) -> Option<&mut SoundChannel> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Divisor` is never used [INFO] [stdout] --> core/arm7/src/timers.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Divisor { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `value` and `from_value` are never used [INFO] [stdout] --> core/arm7/src/timers.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Divisor { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 18 | /// Get the divisor value as integer [INFO] [stdout] 19 | pub fn value(&self) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn from_value(val: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimerReg` is never constructed [INFO] [stdout] --> core/arm7/src/timers.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct TimerReg { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_control`, and `set_control` are never used [INFO] [stdout] --> core/arm7/src/timers.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl TimerReg { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 60 | /// Create new timer register [INFO] [stdout] 61 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_control(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn set_control(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NDSTiming` is never constructed [INFO] [stdout] --> core/arm7/src/timers.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct NDSTiming { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/timers.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl NDSTiming { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 118 | /// Create new timing system [INFO] [stdout] 119 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn run_timers9(&mut self, cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn run_timers7(&mut self, cycles: i32) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn run_timer(&mut self, cycles: i32, index: usize) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | fn overflow(&mut self, index: usize) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn read_lo(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn read_hi(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn write(&mut self, value: u32, index: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pub fn write_lo(&mut self, value: u16, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn write_hi(&mut self, value: u16, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn get_counter(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub fn set_counter(&mut self, index: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn get_reload(&self, index: usize) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn set_reload(&mut self, index: usize, value: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn is_enabled(&self, index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub fn get_timer(&self, index: usize) -> Option<&TimerReg> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn get_timer_mut(&mut self, index: usize) -> Option<&mut TimerReg> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TouchScreen` is never constructed [INFO] [stdout] --> core/arm7/src/touchscreen.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TouchScreen { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `power_on`, `press_event`, `transfer_data`, and `deselect` are never used [INFO] [stdout] --> core/arm7/src/touchscreen.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl TouchScreen { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn power_on(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn press_event(&mut self, x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn transfer_data(&mut self, input: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn deselect(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WiFi` is never constructed [INFO] [stdout] --> core/arm7/src/wifi.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct WiFi { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> core/arm7/src/wifi.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl WiFi { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 30 | /// Create new WiFi controller [INFO] [stdout] 31 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn set_w_power_us(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_w_power_us(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn set_w_bb_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_w_bb_write(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get_w_bb_read(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn set_w_bb_mode(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_w_bb_mode(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn set_w_bb_power(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn get_w_bb_power(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn set_w_rf_cnt(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn get_w_rf_cnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn get_w_rf_busy(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn get_w_bb_busy(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn bb_read(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | fn bb_write(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn update(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn power_on(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn power_off(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `arm7_write_word`, `arm7_write_halfword`, and `arm7_write_byte` are never used [INFO] [stdout] --> core/arm7/src/write_arm7.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 7 | pub fn arm7_write_word(&mut self, address: u32, word: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn arm7_write_halfword(&mut self, address: u32, halfword: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn arm7_write_byte(&mut self, address: u32, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/bios.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | cpu.write_word(dest, v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = cpu.write_word(dest, v); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/bios.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | cpu.write_halfword(dest, v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = cpu.write_halfword(dest, v); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> core/arm7/src/rtc.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | self.interpret_input(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 170 | let _ = self.interpret_input(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking wayland-protocols v0.32.9 [INFO] [stderr] Checking wayland-cursor v0.31.11 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.9 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.9 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking desk v0.1.0 (/opt/rustwide/workdir/gui/desk) [INFO] [stdout] warning: struct `ReadableError` is never constructed [INFO] [stdout] --> gui/desk/src/error.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct ReadableError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_parse`, `from_context`, and `from_display` are never used [INFO] [stdout] --> gui/desk/src/error.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl ReadableError { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 16 | /// Constructs [`Self`] from parse error & input. [INFO] [stdout] 17 | pub fn from_parse(error: ParseError<&str, ContextError>, input: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn from_context(error: ErrMode, input: T, err_pos: usize) -> Self [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn from_display(message: T, input: U, err_pos: usize) -> Self [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_string` is never used [INFO] [stdout] --> gui/desk/src/hexdump.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn to_string(bytes: A) -> String [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_bytes` is never used [INFO] [stdout] --> gui/desk/src/hexdump.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn to_bytes(hexdump: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_hexdump_pos` is never used [INFO] [stdout] --> gui/desk/src/hexdump.rs:78:14 [INFO] [stdout] | [INFO] [stdout] 78 | pub const fn to_hexdump_pos(bytes_pos: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NdsHeader` is never constructed [INFO] [stdout] --> gui/desk/src/nds_header.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct NdsHeader { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_bytes` and `parser` are never used [INFO] [stdout] --> gui/desk/src/nds_header.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 128 | impl NdsHeader { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 129 | pub fn from_bytes(bytes: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn parser<'a>() -> impl Parser<&'a [u8], Self, ContextError> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> gui/desk/src/main.rs:20:62 [INFO] [stdout] | [INFO] [stdout] 20 | fn window_event(&mut self, event_loop: &ActiveEventLoop, id: WindowId, event: WindowEvent) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> gui/desk/src/main.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | event_loop.run_app(&mut app); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = event_loop.run_app(&mut app); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_parse` and `from_display` are never used [INFO] [stdout] --> gui/desk/src/error.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl ReadableError { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 16 | /// Constructs [`Self`] from parse error & input. [INFO] [stdout] 17 | pub fn from_parse(error: ParseError<&str, ContextError>, input: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn from_display(message: T, input: U, err_pos: usize) -> Self [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_bytes` is never used [INFO] [stdout] --> gui/desk/src/hexdump.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn to_bytes(hexdump: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> gui/desk/src/main.rs:20:62 [INFO] [stdout] | [INFO] [stdout] 20 | fn window_event(&mut self, event_loop: &ActiveEventLoop, id: WindowId, event: WindowEvent) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> gui/desk/src/main.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | event_loop.run_app(&mut app); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = event_loop.run_app(&mut app); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.18s [INFO] running `Command { std: "docker" "inspect" "f0669dde6a9eb421d78900ae19fb4a8b67ba43d936931e3641d0053765819fff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f0669dde6a9eb421d78900ae19fb4a8b67ba43d936931e3641d0053765819fff", kill_on_drop: false }` [INFO] [stdout] f0669dde6a9eb421d78900ae19fb4a8b67ba43d936931e3641d0053765819fff