[INFO] cloning repository https://github.com/brewedBorrows/oxy-viz
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/brewedBorrows/oxy-viz" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbrewedBorrows%2Foxy-viz", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbrewedBorrows%2Foxy-viz'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a67ca7600c802859d0d641981f737e8a6b0037c
[INFO] checking brewedBorrows/oxy-viz against 0b63defc8fd68957c635fe61f097b84df8fd9611 for pr-154715
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbrewedBorrows%2Foxy-viz" "/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/brewedBorrows/oxy-viz
[INFO] finished tweaking git repo https://github.com/brewedBorrows/oxy-viz
[INFO] tweaked toml for git repo https://github.com/brewedBorrows/oxy-viz written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/brewedBorrows/oxy-viz on toolchain 0b63defc8fd68957c635fe61f097b84df8fd9611
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0b63defc8fd68957c635fe61f097b84df8fd9611" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/brewedBorrows/oxy-viz 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" "+0b63defc8fd68957c635fe61f097b84df8fd9611" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/RustAudio/rodio.git`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thiserror v1.0.59
[INFO] [stderr]   Downloaded tracing-appender v0.1.2
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.12
[INFO] [stderr]   Downloaded thiserror-impl v1.0.59
[INFO] [stderr]   Downloaded splines v4.3.1
[INFO] [stderr]   Downloaded windows-result v0.1.1
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.33
[INFO] [stderr]   Downloaded nannou v0.19.0
[INFO] [stderr]   Downloaded zerocopy v0.7.33
[INFO] [stderr]   Downloaded ab_glyph v0.2.25
[INFO] [stderr]   Downloaded nannou_wgpu v0.19.0
[INFO] [stderr]   Downloaded nannou_core v0.19.0
[INFO] [stderr]   Downloaded nannou_mesh v0.19.0
[INFO] [stderr]   Downloaded lofty_attr v0.10.0
[INFO] [stderr]   Downloaded ogg_pager v0.6.1
[INFO] [stderr]   Downloaded lofty v0.19.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32
[INFO] running `Command { std: "docker" "start" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32" "/opt/rustwide/cargo-home/bin/cargo" "+0b63defc8fd68957c635fe61f097b84df8fd9611" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32" "/opt/rustwide/cargo-home/bin/cargo" "+0b63defc8fd68957c635fe61f097b84df8fd9611" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror v1.0.59
[INFO] [stderr]     Checking libloading v0.8.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking bytemuck v1.15.0
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking zerocopy v0.7.33
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking either v1.11.0
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]     Checking unicode-width v0.1.12
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]     Checking unicode-xid v0.2.4
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking flate2 v1.0.30
[INFO] [stderr]     Checking wgpu-types v0.17.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]    Compiling palette v0.5.0
[INFO] [stderr]     Checking xcursor v0.3.5
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking euclid v0.22.9
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]     Checking symphonia-core v0.5.4
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.2.14
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking lyon_geom v0.17.7
[INFO] [stderr]     Checking parking_lot v0.12.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]    Compiling cc v1.0.96
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking lyon_path v0.17.7
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.4
[INFO] [stderr]     Checking sid v0.6.1
[INFO] [stderr]     Checking float_next_after v0.1.5
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]     Checking lyon_algorithms v0.17.7
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking owned_ttf_parser v0.20.0
[INFO] [stderr]     Checking lyon_tessellation v0.17.10
[INFO] [stderr]     Checking ab_glyph v0.2.25
[INFO] [stderr]     Checking alsa v0.9.0
[INFO] [stderr]    Compiling palette_derive v0.5.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand_xorshift v0.2.0
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]    Compiling rustfft v6.2.0
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking symphonia v0.5.4
[INFO] [stderr]     Checking lyon v0.17.10
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking slice-deque v0.3.0
[INFO] [stderr]     Checking primal-check v0.3.3
[INFO] [stderr]     Checking pennereq v0.3.1
[INFO] [stderr]     Checking num-complex v0.4.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.12
[INFO] [stderr]     Checking ogg_pager v0.6.1
[INFO] [stderr]     Checking notosans v0.1.0
[INFO] [stderr]    Compiling minimp3-sys v0.3.2
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking splines v4.3.1
[INFO] [stderr]     Checking tracing-appender v0.1.2
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.59
[INFO] [stderr]    Compiling serde_derive v1.0.200
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling lofty_attr v0.10.0
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking lofty v0.19.2
[INFO] [stderr]     Checking tokio v1.37.0
[INFO] [stderr]     Checking naga v0.13.0
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking rodio v0.17.3 (https://github.com/RustAudio/rodio.git#14944371)
[INFO] [stderr]     Checking minimp3 v0.5.1
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking noise v0.7.0
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking glam v0.17.3
[INFO] [stderr]     Checking serde_json v1.0.116
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking wgpu-hal v0.17.2
[INFO] [stderr]     Checking nannou_core v0.19.0
[INFO] [stderr]     Checking nannou_mesh v0.19.0
[INFO] [stderr]     Checking wgpu-core v0.17.1
[INFO] [stderr]     Checking wgpu v0.17.2
[INFO] [stderr]     Checking nannou_wgpu v0.19.0
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking nannou v0.19.0
[INFO] [stderr]     Checking audio_vis v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::ui::Button`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::ui::Button;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder as MiniDecoder` and `Frame as miniFrame`
[INFO] [stdout]  --> src/main.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use minimp3::{Decoder as MiniDecoder, Frame as miniFrame};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::state::mouse`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nannou::state::mouse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::text::pt_to_scale`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nannou::text::pt_to_scale;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdout`
[INFO] [stdout]   --> src/main.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{BufReader, Stdout};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]   --> src/main.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::mpsc::{self, channel, Receiver, Sender};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Level` and `debug`
[INFO] [stdout]   --> src/main.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tracing::{debug, info, warn, Level};
[INFO] [stdout]    |               ^^^^^              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `non_blocking`
[INFO] [stdout]   --> src/main.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tracing_appender::{non_blocking, rolling};
[INFO] [stdout]    |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Level`, `debug`, and `info`
[INFO] [stdout]  --> src/render_drawing.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info, warn, Level};
[INFO] [stdout]   |               ^^^^^  ^^^^        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/render_drawing.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         /// returns a list of Vec2 samples from the spline curve
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |         let mut result: Vec<Vec2> = vec![];
[INFO] [stdout]     |         ----------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::Button`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::ui::Button;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder as MiniDecoder` and `Frame as miniFrame`
[INFO] [stdout]  --> src/main.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use minimp3::{Decoder as MiniDecoder, Frame as miniFrame};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::state::mouse`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nannou::state::mouse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nannou::text::pt_to_scale`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nannou::text::pt_to_scale;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdout`
[INFO] [stdout]   --> src/main.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{BufReader, Stdout};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]   --> src/main.rs:13:29
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::mpsc::{self, channel, Receiver, Sender};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Level` and `debug`
[INFO] [stdout]   --> src/main.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tracing::{debug, info, warn, Level};
[INFO] [stdout]    |               ^^^^^              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `non_blocking`
[INFO] [stdout]   --> src/main.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tracing_appender::{non_blocking, rolling};
[INFO] [stdout]    |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Level`, `debug`, and `info`
[INFO] [stdout]  --> src/render_drawing.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info, warn, Level};
[INFO] [stdout]   |               ^^^^^  ^^^^        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/render_drawing.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         /// returns a list of Vec2 samples from the spline curve
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |         let mut result: Vec<Vec2> = vec![];
[INFO] [stdout]     |         ----------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_amp`
[INFO] [stdout]    --> src/render_drawing.rs:202:48
[INFO] [stdout]     |
[INFO] [stdout] 202 |     pub fn new(input_data: &Data, radius: f32, max_amp: f32) -> Self {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_amp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/render_drawing.rs:303:32
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn scale_visual(&mut self, win: Rect) {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_amp`
[INFO] [stdout]    --> src/render_drawing.rs:202:48
[INFO] [stdout]     |
[INFO] [stdout] 202 |     pub fn new(input_data: &Data, radius: f32, max_amp: f32) -> Self {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_amp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `songinfo`
[INFO] [stdout]   --> src/ui.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |             UIElem::SongInfo(songinfo) => {}
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_songinfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/ui.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |             UIElem::TimeStamp(timestamp) => {}
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]   --> src/ui.rs:56:32
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn scale_visual(&mut self, win: Rect) {}
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn scale_visual(&mut self, win: nannou::prelude::Rect) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/render_drawing.rs:303:32
[INFO] [stdout]     |
[INFO] [stdout] 303 |     fn scale_visual(&mut self, win: Rect) {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `songinfo`
[INFO] [stdout]   --> src/ui.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |             UIElem::SongInfo(songinfo) => {}
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_songinfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]   --> src/ui.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |             UIElem::TimeStamp(timestamp) => {}
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]   --> src/ui.rs:56:32
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn scale_visual(&mut self, win: Rect) {}
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn scale_visual(&mut self, win: nannou::prelude::Rect) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             ButtonName::Play => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 196 |             ButtonName::FavPlay => {
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             ButtonName::FavRecord => {
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 202 |             ButtonName::Seek => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 207 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/ui.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         config: &DrawConfig,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/ui.rs:190:23
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let (x, y, w, h) = self.bbox.for_draw_visual().to_tuple();
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |     fn scale_visual(&mut self, win: nannou::prelude::Rect) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui.rs:244:17
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 _ => return None,
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui.rs:244:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 ButtonName::Play => return Some(ButtonName::Play),
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 241 |                 ButtonName::FavPlay => return Some(ButtonName::FavPlay),
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] 242 |                 ButtonName::FavRecord => return Some(ButtonName::FavRecord),
[INFO] [stdout]     |                 --------------------- matches some of the same values
[INFO] [stdout] 243 |                 ButtonName::Seek => return Some(ButtonName::Seek),
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 244 |                 _ => return None,
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             ButtonName::Play => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 196 |             ButtonName::FavPlay => {
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             ButtonName::FavRecord => {
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 202 |             ButtonName::Seek => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 207 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/ui.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         config: &DrawConfig,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/ui.rs:190:23
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let (x, y, w, h) = self.bbox.for_draw_visual().to_tuple();
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |     fn scale_visual(&mut self, win: nannou::prelude::Rect) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui.rs:244:17
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 _ => return None,
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui.rs:244:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 ButtonName::Play => return Some(ButtonName::Play),
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 241 |                 ButtonName::FavPlay => return Some(ButtonName::FavPlay),
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] 242 |                 ButtonName::FavRecord => return Some(ButtonName::FavRecord),
[INFO] [stdout]     |                 --------------------- matches some of the same values
[INFO] [stdout] 243 |                 ButtonName::Seek => return Some(ButtonName::Seek),
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 244 |                 _ => return None,
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:619:11
[INFO] [stdout]     |
[INFO] [stdout] 619 | fn update(app: &App, model: &mut Model, event: Update) {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:619:11
[INFO] [stdout]     |
[INFO] [stdout] 619 | fn update(app: &App, model: &mut Model, event: Update) {
[INFO] [stdout]     |           ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SongInfo` is more private than the item `UIElem::SongInfo::0`
[INFO] [stdout]   --> src/ui.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     SongInfo(SongInfo),
[INFO] [stdout]    |              ^^^^^^^^ field `UIElem::SongInfo::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SongInfo` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ui.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct SongInfo {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TimeStamp` is more private than the item `UIElem::TimeStamp::0`
[INFO] [stdout]   --> src/ui.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     TimeStamp(TimeStamp),
[INFO] [stdout]    |               ^^^^^^^^^ field `UIElem::TimeStamp::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TimeStamp` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ui.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TimeStamp {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `mp3_files`, and `current_track_index` are never read
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Model {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     data: render_drawing::Data,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     mp3_files: Vec<std::path::PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 48 |     current_track_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `File` is never constructed
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum LogDestination {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 52 |     Stdout,
[INFO] [stdout] 53 |     File,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_fft_generated_at` is never read
[INFO] [stdout]    --> src/main.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct AudioManager {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 112 |     last_fft_generated_at: Arc<Mutex<Option<Instant>>>, // for debugging mostly
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_fft_output` is never used
[INFO] [stdout]  --> src/calculation.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn process_fft_output(fft_output: &[f32], prev_power_spectrum: &mut Vec<f32>) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/calculation.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn calculate(playing: &bool, volume: &Arc<Mutex<f32>>, fft_output: &Arc<Mutex<Vec<Complex<f32>>>>) -> Option<f32> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Visualization` is never used
[INFO] [stdout]    --> src/render_drawing.rs:161:6
[INFO] [stdout]     |
[INFO] [stdout] 161 | enum Visualization {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frame_rate`, `color_scheme`, and `resolution` are never read
[INFO] [stdout]    --> src/render_drawing.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct DrawConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 167 |     frame_rate: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 168 |     color_scheme: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 169 |     resolution: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/render_drawing.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct CircleWave {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 185 |     points: Vec<PointPolar>,
[INFO] [stdout] 186 |     radius: f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale_visual` is never used
[INFO] [stdout]    --> src/render_drawing.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub trait DrawVisual {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn scale_visual(&mut self, win: Rect);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTON_H` is never used
[INFO] [stdout]  --> src/ui.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const BUTTON_H: f32 = 50.;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SongInfo` is more private than the item `UIElem::SongInfo::0`
[INFO] [stdout]   --> src/ui.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     SongInfo(SongInfo),
[INFO] [stdout]    |              ^^^^^^^^ field `UIElem::SongInfo::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `SongInfo` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ui.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct SongInfo {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TimeStamp` is more private than the item `UIElem::TimeStamp::0`
[INFO] [stdout]   --> src/ui.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     TimeStamp(TimeStamp),
[INFO] [stdout]    |               ^^^^^^^^^ field `UIElem::TimeStamp::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `TimeStamp` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ui.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TimeStamp {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `mp3_files`, and `current_track_index` are never read
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Model {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     data: render_drawing::Data,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     mp3_files: Vec<std::path::PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 48 |     current_track_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `onclick` is never read
[INFO] [stdout]   --> src/ui.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Button {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub onclick: fn(),
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Button` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `File` is never constructed
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum LogDestination {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 52 |     Stdout,
[INFO] [stdout] 53 |     File,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Seek` is never constructed
[INFO] [stdout]   --> src/ui.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ButtonName {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Seek,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ButtonName` 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: field `last_fft_generated_at` is never read
[INFO] [stdout]    --> src/main.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct AudioManager {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 112 |     last_fft_generated_at: Arc<Mutex<Option<Instant>>>, // for debugging mostly
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_fft_output` is never used
[INFO] [stdout]  --> src/calculation.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn process_fft_output(fft_output: &[f32], prev_power_spectrum: &mut Vec<f32>) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SongInfo` and `TimeStamp` are never constructed
[INFO] [stdout]   --> src/ui.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum UIElem {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 43 |     SongInfo(SongInfo),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 44 |     TimeStamp(TimeStamp),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UIElem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/calculation.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn calculate(playing: &bool, volume: &Arc<Mutex<f32>>, fft_output: &Arc<Mutex<Vec<Complex<f32>>>>) -> Option<f32> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_elapsed` and `total_time` are never read
[INFO] [stdout]   --> src/ui.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TimeStamp {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 61 |     pub time_elapsed: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub total_time: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeStamp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Visualization` is never used
[INFO] [stdout]    --> src/render_drawing.rs:161:6
[INFO] [stdout]     |
[INFO] [stdout] 161 | enum Visualization {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frame_rate`, `color_scheme`, and `resolution` are never read
[INFO] [stdout]    --> src/render_drawing.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct DrawConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 167 |     frame_rate: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 168 |     color_scheme: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 169 |     resolution: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `artist`, `album`, `year`, and `genre` are never read
[INFO] [stdout]   --> src/ui.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct SongInfo {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 67 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 68 |     pub artist: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 69 |     pub album: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 70 |     pub year: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 71 |     pub genre: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SongInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/render_drawing.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | struct CircleWave {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 185 |     points: Vec<PointPolar>,
[INFO] [stdout] 186 |     radius: f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_scroller_pos` is never used
[INFO] [stdout]   --> src/ui.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl SeekLine {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn set_scroller_pos(&mut self, playback_pos: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale_visual` is never used
[INFO] [stdout]    --> src/render_drawing.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub trait DrawVisual {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn scale_visual(&mut self, win: Rect);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTON_H` is never used
[INFO] [stdout]  --> src/ui.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const BUTTON_H: f32 = 50.;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_button_click` is never used
[INFO] [stdout]    --> src/ui.rs:230:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub fn check_button_click(x: f32, y: f32, buttons: &Vec<Button>) -> Option<ButtonName> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `onclick` is never read
[INFO] [stdout]   --> src/ui.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Button {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub onclick: fn(),
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Button` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Seek` is never constructed
[INFO] [stdout]   --> src/ui.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ButtonName {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Seek,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ButtonName` 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: variants `SongInfo` and `TimeStamp` are never constructed
[INFO] [stdout]   --> src/ui.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum UIElem {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 43 |     SongInfo(SongInfo),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 44 |     TimeStamp(TimeStamp),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UIElem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_elapsed` and `total_time` are never read
[INFO] [stdout]   --> src/ui.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TimeStamp {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 61 |     pub time_elapsed: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub total_time: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeStamp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `artist`, `album`, `year`, and `genre` are never read
[INFO] [stdout]   --> src/ui.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct SongInfo {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 67 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 68 |     pub artist: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 69 |     pub album: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 70 |     pub year: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 71 |     pub genre: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SongInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_scroller_pos` is never used
[INFO] [stdout]   --> src/ui.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl SeekLine {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn set_scroller_pos(&mut self, playback_pos: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/main.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let THRESHOLD = 100.0;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `threshold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_button_click` is never used
[INFO] [stdout]    --> src/ui.rs:230:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub fn check_button_click(x: f32, y: f32, buttons: &Vec<Button>) -> Option<ButtonName> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/main.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let THRESHOLD = 100.0;
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `threshold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 19s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: noise v0.7.0, winit v0.28.7
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32", kill_on_drop: false }`
[INFO] [stdout] 1606ebb86af5c07aa81249e5477a8c2c5dc4d0088ed8d1e55a663af7e9583b32
