[INFO] cloning repository https://github.com/JackDraak/Aruu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JackDraak/Aruu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJackDraak%2FAruu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJackDraak%2FAruu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a663baedf644432e1a7b13f45166e28334114cff [INFO] linting JackDraak/Aruu against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJackDraak%2FAruu" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/JackDraak/Aruu [INFO] finished tweaking git repo https://github.com/JackDraak/Aruu [INFO] tweaked toml for git repo https://github.com/JackDraak/Aruu written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JackDraak/Aruu on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 311 packages to latest compatible versions [INFO] [stderr] Adding cpal v0.15.3 (available: v0.17.3) [INFO] [stderr] Adding pollster v0.3.0 (available: v0.4.0) [INFO] [stderr] Adding rodio v0.19.0 (available: v0.22.2) [INFO] [stderr] Adding wgpu v22.1.0 (available: v28.0.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a2800d1835c53be7566efe16cd81ca7da03c2d0661449b4e428a7792a2718d0b [INFO] running `Command { std: "docker" "start" "-a" "a2800d1835c53be7566efe16cd81ca7da03c2d0661449b4e428a7792a2718d0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a2800d1835c53be7566efe16cd81ca7da03c2d0661449b4e428a7792a2718d0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2800d1835c53be7566efe16cd81ca7da03c2d0661449b4e428a7792a2718d0b", kill_on_drop: false }` [INFO] [stdout] a2800d1835c53be7566efe16cd81ca7da03c2d0661449b4e428a7792a2718d0b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6968a440d47c2d1c678c6cd89a6abc4c84c26615fd53af8485f2b27c17388f80 [INFO] running `Command { std: "docker" "start" "-a" "6968a440d47c2d1c678c6cd89a6abc4c84c26615fd53af8485f2b27c17388f80", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Checking linux-raw-sys v0.12.1 [INFO] [stderr] Checking dlib v0.5.3 [INFO] [stderr] Compiling wayland-sys v0.31.10 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling wayland-client v0.31.13 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling naga v22.1.0 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Checking bit-vec v0.7.0 [INFO] [stderr] Compiling wgpu-hal v22.0.0 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking wgpu-types v22.0.0 [INFO] [stderr] Checking bit-set v0.6.0 [INFO] [stderr] Checking ash v0.38.0+1.3.281 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling wgpu-core v22.1.0 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Checking extended v0.1.0 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Compiling winit v0.30.13 [INFO] [stderr] Checking ogg v0.8.0 [INFO] [stderr] Checking tinyvec v1.11.0 [INFO] [stderr] Compiling wgpu v22.1.0 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Checking dasp_sample v0.11.0 [INFO] [stderr] Checking transpose v0.2.3 [INFO] [stderr] Checking primal-check v0.3.4 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking hound v3.5.1 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking memmap2 v0.9.10 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking alsa v0.9.1 [INFO] [stderr] Checking socket2 v0.6.3 [INFO] [stderr] Checking rustfft v6.4.1 [INFO] [stderr] Compiling wayland-backend v0.3.14 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Compiling wayland-scanner v0.31.9 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking symphonia-core v0.5.5 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking symphonia-metadata v0.5.5 [INFO] [stderr] Checking symphonia-codec-aac v0.5.5 [INFO] [stderr] Checking symphonia-codec-pcm v0.5.5 [INFO] [stderr] Checking symphonia-codec-adpcm v0.5.5 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking symphonia-utils-xiph v0.5.5 [INFO] [stderr] Checking symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Checking symphonia-format-riff v0.5.5 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking symphonia-bundle-flac v0.5.5 [INFO] [stderr] Checking symphonia-format-ogg v0.5.5 [INFO] [stderr] Checking symphonia-codec-vorbis v0.5.5 [INFO] [stderr] Checking symphonia-format-isomp4 v0.5.5 [INFO] [stderr] Checking symphonia-format-mkv v0.5.5 [INFO] [stderr] Checking symphonia v0.5.5 [INFO] [stderr] Checking rodio v0.19.0 [INFO] [stderr] Checking wayland-protocols v0.32.11 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking wayland-cursor v0.31.13 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.11 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.11 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking aruu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/control/safety.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / /// - Intelligent dampening rather than blanket restrictions [INFO] [stdout] 12 | | [INFO] [stdout] | |_^ [INFO] [stdout] 13 | use std::time::Instant; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Epilepsy Safety Engine for Aruu Audio Visualizer [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Implements photosensitive epilepsy prevention measures based on international standards: [INFO] [stdout] 4 ~ //! - WCAG 2.0 Guidelines: ≤3 flashes per second, ≤10% luminance change [INFO] [stdout] 5 ~ //! - Gaming Industry Standards: Xbox, PlayStation, Steam safety requirements [INFO] [stdout] 6 ~ //! - Medical Research: 5-30 Hz range most dangerous, particularly 15-20 Hz [INFO] [stdout] 7 ~ //! [INFO] [stdout] 8 ~ //! Core Safety Principles: [INFO] [stdout] 9 ~ //! - "Maximum Audio Response, Minimum Seizure Risk" [INFO] [stdout] 10 ~ //! - Preserve musical reactivity while ensuring user safety [INFO] [stdout] 11 ~ //! - Intelligent dampening rather than blanket restrictions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/control/warning.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / /// Complies with international epilepsy prevention standards and gaming industry requirements. [INFO] [stdout] 5 | | [INFO] [stdout] | |_^ [INFO] [stdout] 6 | use winit::event::{ElementState, KeyEvent}; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Photosensitive Epilepsy Warning Screen Implementation [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Provides mandatory user consent and safety information before starting visualization. [INFO] [stdout] 4 ~ //! Complies with international epilepsy prevention standards and gaming industry requirements. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/control/safety.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / /// - Intelligent dampening rather than blanket restrictions [INFO] [stdout] 12 | | [INFO] [stdout] | |_^ [INFO] [stdout] 13 | use std::time::Instant; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Epilepsy Safety Engine for Aruu Audio Visualizer [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Implements photosensitive epilepsy prevention measures based on international standards: [INFO] [stdout] 4 ~ //! - WCAG 2.0 Guidelines: ≤3 flashes per second, ≤10% luminance change [INFO] [stdout] 5 ~ //! - Gaming Industry Standards: Xbox, PlayStation, Steam safety requirements [INFO] [stdout] 6 ~ //! - Medical Research: 5-30 Hz range most dangerous, particularly 15-20 Hz [INFO] [stdout] 7 ~ //! [INFO] [stdout] 8 ~ //! Core Safety Principles: [INFO] [stdout] 9 ~ //! - "Maximum Audio Response, Minimum Seizure Risk" [INFO] [stdout] 10 ~ //! - Preserve musical reactivity while ensuring user safety [INFO] [stdout] 11 ~ //! - Intelligent dampening rather than blanket restrictions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/control/warning.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / /// Complies with international epilepsy prevention standards and gaming industry requirements. [INFO] [stdout] 5 | | [INFO] [stdout] | |_^ [INFO] [stdout] 6 | use winit::event::{ElementState, KeyEvent}; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Photosensitive Epilepsy Warning Screen Implementation [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Provides mandatory user consent and safety information before starting visualization. [INFO] [stdout] 4 ~ //! Complies with international epilepsy prevention standards and gaming industry requirements. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `winit::event_loop::EventLoop::::create_window`: use `ActiveEventLoop::create_window` instead [INFO] [stdout] --> src/rendering/context.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | ... .create_window(winit::window::WindowAttributes::default() // ASSUMPTION: Keeping deprecated API for simplicity - requires majo... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `winit::event_loop::EventLoop::::create_window`: use `ActiveEventLoop::create_window` instead [INFO] [stdout] --> src/rendering/context.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | ... .create_window(winit::window::WindowAttributes::default() // ASSUMPTION: Keeping deprecated API for simplicity - requires majo... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `winit::event_loop::EventLoop::::run`: use `EventLoop::run_app` instead [INFO] [stdout] --> src/visualizer.rs:61:20 [INFO] [stdout] | [INFO] [stdout] 61 | event_loop.run(move |event, elwt| { // ASSUMPTION: Keeping deprecated API for simplicity - requires major refactoring to fix [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `winit::event_loop::EventLoop::::run`: use `EventLoop::run_app` instead [INFO] [stdout] --> src/visualizer.rs:61:20 [INFO] [stdout] | [INFO] [stdout] 61 | event_loop.run(move |event, elwt| { // ASSUMPTION: Keeping deprecated API for simplicity - requires major refactoring to fix [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_start` [INFO] [stdout] --> src/visualizer.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | let frame_start = Instant::now(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_start` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/visualizer.rs:202:28 [INFO] [stdout] | [INFO] [stdout] 202 | if let Err(e) = self.load_audio_file("sample_gentle.wav") { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/audio/processor.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | self.sink.as_ref().map_or(false, |sink| !sink.empty()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 170 - self.sink.as_ref().map_or(false, |sink| !sink.empty()) [INFO] [stdout] 170 + self.sink.as_ref().is_some_and(|sink| !sink.empty()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `AudioFeatures` [INFO] [stdout] --> src/audio/features.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn new() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | // 5-band frequency analysis [INFO] [stdout] 33 | | sub_bass: 0.0, [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 29 + impl Default for AudioFeatures { [INFO] [stdout] 30 + fn default() -> Self { [INFO] [stdout] 31 + Self::new() [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `RhythmFeatures` [INFO] [stdout] --> src/audio/rhythm.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn new() -> Self { [INFO] [stdout] 22 | | Self { [INFO] [stdout] 23 | | beat_strength: 0.0, [INFO] [stdout] 24 | | tempo_bpm: 120.0, [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 20 + impl Default for RhythmFeatures { [INFO] [stdout] 21 + fn default() -> Self { [INFO] [stdout] 22 + Self::new() [INFO] [stdout] 23 + } [INFO] [stdout] 24 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/audio/rhythm.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | candidates.sort_by(|a, b| b.1.cmp(&a.1)); // Sort by count, descending [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 212 - candidates.sort_by(|a, b| b.1.cmp(&a.1)); // Sort by count, descending [INFO] [stdout] 212 + candidates.sort_by_key(|b| std::cmp::Reverse(b.1)); // Sort by count, descending [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/audio/advanced_analyzer.rs:56:102 [INFO] [stdout] | [INFO] [stdout] 56 | for (_i, (¤t, &previous)) in current_spectrum.iter().zip(self.previous_spectrum.iter()).enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 56 - for (_i, (¤t, &previous)) in current_spectrum.iter().zip(self.previous_spectrum.iter()).enumerate() { [INFO] [stdout] 56 + for (¤t, &previous) in current_spectrum.iter().zip(self.previous_spectrum.iter()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ShaderRegistry` [INFO] [stdout] --> src/rendering/shader_system.rs:252:5 [INFO] [stdout] | [INFO] [stdout] 252 | / pub fn new() -> Self { [INFO] [stdout] 253 | | let mut registry = Self { [INFO] [stdout] 254 | | shaders: HashMap::new(), [INFO] [stdout] 255 | | }; [INFO] [stdout] ... | [INFO] [stdout] 259 | | registry [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 251 + impl Default for ShaderRegistry { [INFO] [stdout] 252 + fn default() -> Self { [INFO] [stdout] 253 + Self::new() [INFO] [stdout] 254 + } [INFO] [stdout] 255 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `UniformManager` [INFO] [stdout] --> src/rendering/shader_system.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | / pub fn new() -> Self { [INFO] [stdout] 431 | | Self { [INFO] [stdout] 432 | | start_time: std::time::Instant::now(), [INFO] [stdout] 433 | | } [INFO] [stdout] 434 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 429 + impl Default for UniformManager { [INFO] [stdout] 430 + fn default() -> Self { [INFO] [stdout] 431 + Self::new() [INFO] [stdout] 432 + } [INFO] [stdout] 433 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/rendering/shader_system.rs:694:5 [INFO] [stdout] | [INFO] [stdout] 694 | / pub fn render(&self, [INFO] [stdout] 695 | | device: &wgpu::Device, [INFO] [stdout] 696 | | queue: &wgpu::Queue, [INFO] [stdout] 697 | | view: &wgpu::TextureView, [INFO] [stdout] ... | [INFO] [stdout] 701 | | audio_features: &AudioFeatures, [INFO] [stdout] 702 | | rhythm_features: &RhythmFeatures) -> Result<()> { [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/rendering/shader_system.rs:752:5 [INFO] [stdout] | [INFO] [stdout] 752 | / pub fn render_with_quality(&self, [INFO] [stdout] 753 | | device: &wgpu::Device, [INFO] [stdout] 754 | | queue: &wgpu::Queue, [INFO] [stdout] 755 | | view: &wgpu::TextureView, [INFO] [stdout] ... | [INFO] [stdout] 761 | | quality: QualityLevel, [INFO] [stdout] 762 | | safety_multipliers: Option) -> Result<()> { [INFO] [stdout] | |___________________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/rendering/enhanced_composer.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | &context, [INFO] [stdout] | ^^^^^^^^ help: change this to: `context` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_start` [INFO] [stdout] --> src/visualizer.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | let frame_start = Instant::now(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_start` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/visualizer.rs:202:28 [INFO] [stdout] | [INFO] [stdout] 202 | if let Err(e) = self.load_audio_file("sample_gentle.wav") { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:339:20 [INFO] [stdout] | [INFO] [stdout] 339 | if local_y >= 0.2 && local_y <= 0.4 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.2..=0.4).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | if local_x >= 0.1 && local_x <= 0.9 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.9).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:345:27 [INFO] [stdout] | [INFO] [stdout] 345 | } else if local_y >= 0.4 && local_y <= 0.6 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.4..=0.6).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:347:24 [INFO] [stdout] | [INFO] [stdout] 347 | if local_x >= 0.1 && local_x <= 0.3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.3).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:349:31 [INFO] [stdout] | [INFO] [stdout] 349 | } else if local_x >= 0.4 && local_x <= 0.5 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.4..=0.5).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:351:31 [INFO] [stdout] | [INFO] [stdout] 351 | } else if local_x >= 0.6 && local_x <= 0.7 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.6..=0.7).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:354:27 [INFO] [stdout] | [INFO] [stdout] 354 | } else if local_y >= 0.6 && local_y <= 0.8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.6..=0.8).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:356:24 [INFO] [stdout] | [INFO] [stdout] 356 | if local_x >= 0.1 && local_x <= 0.9 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.9).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FeatureMapper` [INFO] [stdout] --> src/control/mapper.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn new() -> Self { [INFO] [stdout] 12 | | let mut smoother = Smoother::new(); [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 10 + impl Default for FeatureMapper { [INFO] [stdout] 11 + fn default() -> Self { [INFO] [stdout] 12 + Self::new() [INFO] [stdout] 13 + } [INFO] [stdout] 14 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ShaderParameters` [INFO] [stdout] --> src/control/parameters.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub fn new() -> Self { [INFO] [stdout] 25 | | Self { [INFO] [stdout] 26 | | color_intensity: 1.0, [INFO] [stdout] 27 | | frequency_scale: 1.0, [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 23 + impl Default for ShaderParameters { [INFO] [stdout] 24 + fn default() -> Self { [INFO] [stdout] 25 + Self::new() [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Smoother` [INFO] [stdout] --> src/control/smoothing.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn new() -> Self { [INFO] [stdout] 36 | | Self { [INFO] [stdout] 37 | | smoothing_configs: HashMap::new(), [INFO] [stdout] 38 | | previous_values: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 34 + impl Default for Smoother { [INFO] [stdout] 35 + fn default() -> Self { [INFO] [stdout] 36 + Self::new() [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/audio/processor.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | self.sink.as_ref().map_or(false, |sink| !sink.empty()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 170 - self.sink.as_ref().map_or(false, |sink| !sink.empty()) [INFO] [stdout] 170 + self.sink.as_ref().is_some_and(|sink| !sink.empty()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PaletteManager` [INFO] [stdout] --> src/control/palettes.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / pub fn new() -> Self { [INFO] [stdout] 90 | | Self { [INFO] [stdout] 91 | | current_palette: ColorPalette::Rainbow, [INFO] [stdout] 92 | | previous_palette: ColorPalette::Rainbow, [INFO] [stdout] ... | [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 88 + impl Default for PaletteManager { [INFO] [stdout] 89 + fn default() -> Self { [INFO] [stdout] 90 + Self::new() [INFO] [stdout] 91 + } [INFO] [stdout] 92 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/audio/fft.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | assert!(result.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!result.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `AudioFeatures` [INFO] [stdout] --> src/audio/features.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn new() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | // 5-band frequency analysis [INFO] [stdout] 33 | | sub_bass: 0.0, [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 29 + impl Default for AudioFeatures { [INFO] [stdout] 30 + fn default() -> Self { [INFO] [stdout] 31 + Self::new() [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `RhythmFeatures` [INFO] [stdout] --> src/audio/rhythm.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn new() -> Self { [INFO] [stdout] 22 | | Self { [INFO] [stdout] 23 | | beat_strength: 0.0, [INFO] [stdout] 24 | | tempo_bpm: 120.0, [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 20 + impl Default for RhythmFeatures { [INFO] [stdout] 21 + fn default() -> Self { [INFO] [stdout] 22 + Self::new() [INFO] [stdout] 23 + } [INFO] [stdout] 24 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/control/safety.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for SafetyLevel { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | SafetyLevel::Safe // Default to conservative settings [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 56 + #[derive(Default)] [INFO] [stdout] 57 | pub enum SafetyLevel { [INFO] [stdout] 58 | /// Ultra-conservative for maximum safety [INFO] [stdout] 59 | UltraSafe, [INFO] [stdout] 60 | /// Conservative for users with mild sensitivity [INFO] [stdout] 61 ~ #[default] [INFO] [stdout] 62 ~ Safe, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FlashTracker` [INFO] [stdout] --> src/control/safety.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | / pub fn new() -> Self { [INFO] [stdout] 86 | | // Initialize with past timestamps to allow first flash [INFO] [stdout] 87 | | let past_time = Instant::now() - std::time::Duration::from_secs(1); [INFO] [stdout] 88 | | Self { [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 84 + impl Default for FlashTracker { [INFO] [stdout] 85 + fn default() -> Self { [INFO] [stdout] 86 + Self::new() [INFO] [stdout] 87 + } [INFO] [stdout] 88 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LuminanceLimiter` [INFO] [stdout] --> src/control/safety.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / pub fn new() -> Self { [INFO] [stdout] 157 | | Self { [INFO] [stdout] 158 | | previous_luminance: 0.5, // Start with medium brightness [INFO] [stdout] 159 | | luminance_history: Vec::new(), [INFO] [stdout] 160 | | } [INFO] [stdout] 161 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 155 + impl Default for LuminanceLimiter { [INFO] [stdout] 156 + fn default() -> Self { [INFO] [stdout] 157 + Self::new() [INFO] [stdout] 158 + } [INFO] [stdout] 159 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/audio/rhythm.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | candidates.sort_by(|a, b| b.1.cmp(&a.1)); // Sort by count, descending [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 212 - candidates.sort_by(|a, b| b.1.cmp(&a.1)); // Sort by count, descending [INFO] [stdout] 212 + candidates.sort_by_key(|b| std::cmp::Reverse(b.1)); // Sort by count, descending [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SafetyEngine` [INFO] [stdout] --> src/control/safety.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | / pub fn new() -> Self { [INFO] [stdout] 233 | | Self { [INFO] [stdout] 234 | | flash_tracker: FlashTracker::new(), [INFO] [stdout] 235 | | luminance_limiter: LuminanceLimiter::new(), [INFO] [stdout] ... | [INFO] [stdout] 240 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 231 + impl Default for SafetyEngine { [INFO] [stdout] 232 + fn default() -> Self { [INFO] [stdout] 233 + Self::new() [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/audio/rhythm.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | assert_eq!(features.onset_detected, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 385 - assert_eq!(features.onset_detected, false); [INFO] [stdout] 385 + assert!(!features.onset_detected); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/audio/rhythm.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | assert_eq!(features.downbeat_detected, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 386 - assert_eq!(features.downbeat_detected, false); [INFO] [stdout] 386 + assert!(!features.downbeat_detected); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/visualizer.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | / ... if *button == winit::event::MouseButton::Left { [INFO] [stdout] 112 | | ... let pressed = *state == winit::event::ElementState::Pressed; [INFO] [stdout] 113 | | ... self.frame_composer.update_mouse_pressed(pressed); [INFO] [stdout] ... | [INFO] [stdout] 128 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 110 ~ WindowEvent::MouseInput { state, button, .. } [INFO] [stdout] 111 ~ if *button == winit::event::MouseButton::Left => { [INFO] [stdout] 112 | let pressed = *state == winit::event::ElementState::Pressed; [INFO] [stdout] ... [INFO] [stdout] 127 | } [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/audio/advanced_analyzer.rs:56:102 [INFO] [stdout] | [INFO] [stdout] 56 | for (_i, (¤t, &previous)) in current_spectrum.iter().zip(self.previous_spectrum.iter()).enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 56 - for (_i, (¤t, &previous)) in current_spectrum.iter().zip(self.previous_spectrum.iter()).enumerate() { [INFO] [stdout] 56 + for (¤t, &previous) in current_spectrum.iter().zip(self.previous_spectrum.iter()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/visualizer.rs:175:20 [INFO] [stdout] | [INFO] [stdout] 175 | if FRAME_COUNTER % 60 == 0 { // Display every 60 frames (once per second at 60fps) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `FRAME_COUNTER.is_multiple_of(60)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ShaderRegistry` [INFO] [stdout] --> src/rendering/shader_system.rs:252:5 [INFO] [stdout] | [INFO] [stdout] 252 | / pub fn new() -> Self { [INFO] [stdout] 253 | | let mut registry = Self { [INFO] [stdout] 254 | | shaders: HashMap::new(), [INFO] [stdout] 255 | | }; [INFO] [stdout] ... | [INFO] [stdout] 259 | | registry [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 251 + impl Default for ShaderRegistry { [INFO] [stdout] 252 + fn default() -> Self { [INFO] [stdout] 253 + Self::new() [INFO] [stdout] 254 + } [INFO] [stdout] 255 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `UniformManager` [INFO] [stdout] --> src/rendering/shader_system.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | / pub fn new() -> Self { [INFO] [stdout] 431 | | Self { [INFO] [stdout] 432 | | start_time: std::time::Instant::now(), [INFO] [stdout] 433 | | } [INFO] [stdout] 434 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 429 + impl Default for UniformManager { [INFO] [stdout] 430 + fn default() -> Self { [INFO] [stdout] 431 + Self::new() [INFO] [stdout] 432 + } [INFO] [stdout] 433 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/rendering/shader_system.rs:694:5 [INFO] [stdout] | [INFO] [stdout] 694 | / pub fn render(&self, [INFO] [stdout] 695 | | device: &wgpu::Device, [INFO] [stdout] 696 | | queue: &wgpu::Queue, [INFO] [stdout] 697 | | view: &wgpu::TextureView, [INFO] [stdout] ... | [INFO] [stdout] 701 | | audio_features: &AudioFeatures, [INFO] [stdout] 702 | | rhythm_features: &RhythmFeatures) -> Result<()> { [INFO] [stdout] | |_________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/rendering/shader_system.rs:752:5 [INFO] [stdout] | [INFO] [stdout] 752 | / pub fn render_with_quality(&self, [INFO] [stdout] 753 | | device: &wgpu::Device, [INFO] [stdout] 754 | | queue: &wgpu::Queue, [INFO] [stdout] 755 | | view: &wgpu::TextureView, [INFO] [stdout] ... | [INFO] [stdout] 761 | | quality: QualityLevel, [INFO] [stdout] 762 | | safety_multipliers: Option) -> Result<()> { [INFO] [stdout] | |___________________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/rendering/enhanced_composer.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | &context, [INFO] [stdout] | ^^^^^^^^ help: change this to: `context` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:339:20 [INFO] [stdout] | [INFO] [stdout] 339 | if local_y >= 0.2 && local_y <= 0.4 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.2..=0.4).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | if local_x >= 0.1 && local_x <= 0.9 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.9).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:345:27 [INFO] [stdout] | [INFO] [stdout] 345 | } else if local_y >= 0.4 && local_y <= 0.6 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.4..=0.6).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:347:24 [INFO] [stdout] | [INFO] [stdout] 347 | if local_x >= 0.1 && local_x <= 0.3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.3).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:349:31 [INFO] [stdout] | [INFO] [stdout] 349 | } else if local_x >= 0.4 && local_x <= 0.5 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.4..=0.5).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:351:31 [INFO] [stdout] | [INFO] [stdout] 351 | } else if local_x >= 0.6 && local_x <= 0.7 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.6..=0.7).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:354:27 [INFO] [stdout] | [INFO] [stdout] 354 | } else if local_y >= 0.6 && local_y <= 0.8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.6..=0.8).contains(&local_y)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/rendering/overlay_system.rs:356:24 [INFO] [stdout] | [INFO] [stdout] 356 | if local_x >= 0.1 && local_x <= 0.9 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0.1..=0.9).contains(&local_x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FeatureMapper` [INFO] [stdout] --> src/control/mapper.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn new() -> Self { [INFO] [stdout] 12 | | let mut smoother = Smoother::new(); [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 10 + impl Default for FeatureMapper { [INFO] [stdout] 11 + fn default() -> Self { [INFO] [stdout] 12 + Self::new() [INFO] [stdout] 13 + } [INFO] [stdout] 14 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ShaderParameters` [INFO] [stdout] --> src/control/parameters.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub fn new() -> Self { [INFO] [stdout] 25 | | Self { [INFO] [stdout] 26 | | color_intensity: 1.0, [INFO] [stdout] 27 | | frequency_scale: 1.0, [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 23 + impl Default for ShaderParameters { [INFO] [stdout] 24 + fn default() -> Self { [INFO] [stdout] 25 + Self::new() [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Smoother` [INFO] [stdout] --> src/control/smoothing.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn new() -> Self { [INFO] [stdout] 36 | | Self { [INFO] [stdout] 37 | | smoothing_configs: HashMap::new(), [INFO] [stdout] 38 | | previous_values: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 34 + impl Default for Smoother { [INFO] [stdout] 35 + fn default() -> Self { [INFO] [stdout] 36 + Self::new() [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PaletteManager` [INFO] [stdout] --> src/control/palettes.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / pub fn new() -> Self { [INFO] [stdout] 90 | | Self { [INFO] [stdout] 91 | | current_palette: ColorPalette::Rainbow, [INFO] [stdout] 92 | | previous_palette: ColorPalette::Rainbow, [INFO] [stdout] ... | [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 88 + impl Default for PaletteManager { [INFO] [stdout] 89 + fn default() -> Self { [INFO] [stdout] 90 + Self::new() [INFO] [stdout] 91 + } [INFO] [stdout] 92 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/control/safety.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for SafetyLevel { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | SafetyLevel::Safe // Default to conservative settings [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 56 + #[derive(Default)] [INFO] [stdout] 57 | pub enum SafetyLevel { [INFO] [stdout] 58 | /// Ultra-conservative for maximum safety [INFO] [stdout] 59 | UltraSafe, [INFO] [stdout] 60 | /// Conservative for users with mild sensitivity [INFO] [stdout] 61 ~ #[default] [INFO] [stdout] 62 ~ Safe, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FlashTracker` [INFO] [stdout] --> src/control/safety.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | / pub fn new() -> Self { [INFO] [stdout] 86 | | // Initialize with past timestamps to allow first flash [INFO] [stdout] 87 | | let past_time = Instant::now() - std::time::Duration::from_secs(1); [INFO] [stdout] 88 | | Self { [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 84 + impl Default for FlashTracker { [INFO] [stdout] 85 + fn default() -> Self { [INFO] [stdout] 86 + Self::new() [INFO] [stdout] 87 + } [INFO] [stdout] 88 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LuminanceLimiter` [INFO] [stdout] --> src/control/safety.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / pub fn new() -> Self { [INFO] [stdout] 157 | | Self { [INFO] [stdout] 158 | | previous_luminance: 0.5, // Start with medium brightness [INFO] [stdout] 159 | | luminance_history: Vec::new(), [INFO] [stdout] 160 | | } [INFO] [stdout] 161 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 155 + impl Default for LuminanceLimiter { [INFO] [stdout] 156 + fn default() -> Self { [INFO] [stdout] 157 + Self::new() [INFO] [stdout] 158 + } [INFO] [stdout] 159 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SafetyEngine` [INFO] [stdout] --> src/control/safety.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | / pub fn new() -> Self { [INFO] [stdout] 233 | | Self { [INFO] [stdout] 234 | | flash_tracker: FlashTracker::new(), [INFO] [stdout] 235 | | luminance_limiter: LuminanceLimiter::new(), [INFO] [stdout] ... | [INFO] [stdout] 240 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 231 + impl Default for SafetyEngine { [INFO] [stdout] 232 + fn default() -> Self { [INFO] [stdout] 233 + Self::new() [INFO] [stdout] 234 + } [INFO] [stdout] 235 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/visualizer.rs:111:33 [INFO] [stdout] | [INFO] [stdout] 111 | / ... if *button == winit::event::MouseButton::Left { [INFO] [stdout] 112 | | ... let pressed = *state == winit::event::ElementState::Pressed; [INFO] [stdout] 113 | | ... self.frame_composer.update_mouse_pressed(pressed); [INFO] [stdout] ... | [INFO] [stdout] 128 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 110 ~ WindowEvent::MouseInput { state, button, .. } [INFO] [stdout] 111 ~ if *button == winit::event::MouseButton::Left => { [INFO] [stdout] 112 | let pressed = *state == winit::event::ElementState::Pressed; [INFO] [stdout] ... [INFO] [stdout] 127 | } [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/visualizer.rs:175:20 [INFO] [stdout] | [INFO] [stdout] 175 | if FRAME_COUNTER % 60 == 0 { // Display every 60 frames (once per second at 60fps) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `FRAME_COUNTER.is_multiple_of(60)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.50s [INFO] running `Command { std: "docker" "inspect" "6968a440d47c2d1c678c6cd89a6abc4c84c26615fd53af8485f2b27c17388f80", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6968a440d47c2d1c678c6cd89a6abc4c84c26615fd53af8485f2b27c17388f80", kill_on_drop: false }` [INFO] [stdout] 6968a440d47c2d1c678c6cd89a6abc4c84c26615fd53af8485f2b27c17388f80