[INFO] cloning repository https://github.com/19h/PHASEBURN
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/19h/PHASEBURN" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2FPHASEBURN", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2FPHASEBURN'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6ddda4010887d4e76318293d3870f13cccbf55de
[INFO] checking 19h/PHASEBURN against try#7dabc88a3b6768751847baeb49983f31ac5f20e2 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2FPHASEBURN" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/19h/PHASEBURN
[INFO] finished tweaking git repo https://github.com/19h/PHASEBURN
[INFO] tweaked toml for git repo https://github.com/19h/PHASEBURN written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/19h/PHASEBURN on toolchain 7dabc88a3b6768751847baeb49983f31ac5f20e2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/19h/PHASEBURN 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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65a09c0d92358a1af16ba8ca5dea65b7b8186c201efb86ae562cc550ea239cc1
[INFO] running `Command { std: "docker" "start" "-a" "65a09c0d92358a1af16ba8ca5dea65b7b8186c201efb86ae562cc550ea239cc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65a09c0d92358a1af16ba8ca5dea65b7b8186c201efb86ae562cc550ea239cc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65a09c0d92358a1af16ba8ca5dea65b7b8186c201efb86ae562cc550ea239cc1", kill_on_drop: false }`
[INFO] [stdout] 65a09c0d92358a1af16ba8ca5dea65b7b8186c201efb86ae562cc550ea239cc1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a921553b0f7ca1d169f1b22b7c55145ea60133c4398f9bfbb844e8485080ccfe
[INFO] running `Command { std: "docker" "start" "-a" "a921553b0f7ca1d169f1b22b7c55145ea60133c4398f9bfbb844e8485080ccfe", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling zmij v1.0.15
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking terminal_size v0.4.3
[INFO] [stderr]    Compiling cc v1.2.53
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]    Compiling libm v0.1.4
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]     Checking unicase v2.9.0
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking clap_builder v4.5.54
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]    Compiling blake3 v1.8.3
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking realfft v3.5.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking symphonia-format-isomp4 v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-format-mkv v0.5.5
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking symphonia-format-caf v0.5.5
[INFO] [stderr]     Checking noisy_float v0.2.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking symphonia-codec-alac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-adpcm v0.5.5
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking arc-swap v1.8.0
[INFO] [stderr]     Checking rubato v0.16.2
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking biquad v0.4.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling test-case-core v3.3.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.33
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling test-case-macros v3.3.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking test-case v3.3.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking clap v4.5.54
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking proptest v1.9.0
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking ndarray-stats v0.6.0
[INFO] [stderr]     Checking statrs v0.18.0
[INFO] [stderr]     Checking remark v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TemporalMaskingAnalysis`
[INFO] [stdout]   --> src/analysis/detectors/psychoacoustic_wm.rs:27:60
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::analysis::psychoacoustic::{PsychoacousticModel, TemporalMaskingAnalysis};
[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: `SampleStatistics`
[INFO] [stdout]  --> src/analysis/detectors/statistical.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::{PatternDetector, Result, Sample, SampleStatistics, TimePosition};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Frequency`
[INFO] [stdout]  --> src/analysis/features.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::{Error, Frequency, Result, Sample, SampleStatistics};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `Sample`
[INFO] [stdout]   --> src/analysis/psychoacoustic.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::core::{Result, Sample};
[INFO] [stdout]    |                   ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SeekFrom` and `Seek`
[INFO] [stdout]  --> src/audio/format.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Read, Seek, SeekFrom};
[INFO] [stdout]   |                                ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioFileFormat` and `FormatDetector`
[INFO] [stdout]  --> src/audio/reader.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::audio::format::{AudioFileFormat, FormatDetector};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `Seek`
[INFO] [stdout]  --> src/audio/reader.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::{BufReader, Read, Seek};
[INFO] [stdout]   |                          ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sample`
[INFO] [stdout]   --> src/audio/mod.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::core::{AudioFormat, Result, Sample, SampleBuffer};
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/core/buffer.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::{Deref, DerefMut, Index, IndexMut};
[INFO] [stdout]   |                                 ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/core/buffer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/core/channel.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/core/types.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Index, IndexMut, Range};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/dsp/correlation.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::{Complex, Error, Result, Sample};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FftPlan`
[INFO] [stdout]  --> src/dsp/correlation.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::dsp::fft::{FftPlan, RealFftProcessor};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FftProcessor`
[INFO] [stdout]  --> src/dsp/spectrum.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::dsp::{FftProcessor, RealFftProcessor, Window, WindowType};
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/dsp/spectrum.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `neural-codec`
[INFO] [stdout]   --> src/processing/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | #[cfg(feature = "neural-codec")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cli`, `default`, `parallel`, `rodio`, and `simd`
[INFO] [stdout]    = help: consider adding `neural-codec` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `neural-codec`
[INFO] [stdout]   --> src/processing/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[cfg(feature = "neural-codec")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cli`, `default`, `parallel`, `rodio`, and `simd`
[INFO] [stdout]    = help: consider adding `neural-codec` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QualityMetrics`
[INFO] [stdout]  --> src/processing/pipeline.rs:7:41
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::processing::{AudioProcessor, QualityMetrics};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/audioseal.rs:332:56
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn analyze_hf_artifacts(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/detectors/fingerprint.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let freq_resolution = sample_rate as f64 / fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/detectors/fingerprint.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |         let freq_resolution = sample_rate as f64 / fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/analysis/detectors/modulation.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_diff`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let expected_diff =
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:187:17
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:164:64
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn analyze_amplitude_modulation(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_lag` is assigned to, but never used
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let mut best_lag = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_lag` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_lag` is never read
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:273:21
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     best_lag = lag;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_centroid`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let mean_centroid: f64 = centroids.iter().sum::<f64>() / centroids.len() as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_centroid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut band_sizes = [8, 16, 32, 64, 128]; // Common RVQ band sizes
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]   --> src/analysis/detectors/neural_codec.rs:59:60
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn analyze_spectral_banding(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spectrum_size`
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let spectrum_size = fft_size / 2 + 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spectrum_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:295:56
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn analyze_rvq_patterns(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_energy` is never read
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:425:44
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let mut total_energy = 0.0;
[INFO] [stdout]     |                                            ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 443 |                     total_energy = magnitudes.iter().sum::<f64>();
[INFO] [stdout]     |                     --------------------------------------------- `total_energy` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/spread_spectrum.rs:262:55
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn compute_spectrogram(&self, samples: &[Sample], sample_rate: u32) -> Result<Vec<Vec<f64>>> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variance`
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let variance: f64 = histogram
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lsb_ones` is assigned to, but never used
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut lsb_ones = 0u64;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_lsb_ones` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lsb_ones` is never read
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:349:17
[INFO] [stdout]     |
[INFO] [stdout] 349 |                 lsb_ones += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/synthid.rs:248:63
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn analyze_temporal_modulation(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]   --> src/analysis/detectors/wavmark.rs:58:62
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn analyze_magnitude_patterns(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/wavmark.rs:164:59
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn analyze_phase_coherence(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/wavmark.rs:358:57
[INFO] [stdout]     |
[INFO] [stdout] 358 |     fn analyze_spectral_flux(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/features.rs:459:17
[INFO] [stdout]     |
[INFO] [stdout] 459 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/features.rs:440:61
[INFO] [stdout]     |
[INFO] [stdout] 440 |     pub fn compute_spectral_flux(&self, samples: &[Sample], sample_rate: u32) -> Result<Vec<f64>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/psychoacoustic.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let freq_resolution = self.sample_rate as f64 / self.fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channels`
[INFO] [stdout]    --> src/core/traits.rs:288:54
[INFO] [stdout]     |
[INFO] [stdout] 288 |     fn resample(&self, from_rate: u32, to_rate: u32, channels: usize) -> Result<Vec<Sample>> {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_len`
[INFO] [stdout]    --> src/dsp/correlation.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let result_len = len_a + len_b - 1;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/dsp/window.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let n = size as f32;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_rate` is never read
[INFO] [stdout]    --> src/processing/anonymize.rs:203:28
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let mut current_rate = sample_rate;
[INFO] [stdout]     |                            ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 268 |     current_rate = result.final_sample_rate;
[INFO] [stdout]     |     --------------------------------------- `current_rate` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compute_sample_entropy` and `compute_std_dev` are never used
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl StatisticalDetector {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn compute_sample_entropy(&self, samples: &[Sample], m: usize, r: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn compute_std_dev(&self, samples: &[Sample]) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WavReader` is never constructed
[INFO] [stdout]    --> src/audio/reader.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub struct WavReader {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `open` and `read_all_f32` are never used
[INFO] [stdout]    --> src/audio/reader.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl WavReader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 312 |     /// Opens a WAV file for reading.
[INFO] [stdout] 313 |     pub fn open(path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn read_all_f32(&mut self) -> Result<Vec<Sample>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioWriterBuilder` is never constructed
[INFO] [stdout]    --> src/audio/writer.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct AudioWriterBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `bit_depth`, `normalize`, `dither`, `build`, and `write_samples` are never used
[INFO] [stdout]    --> src/audio/writer.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl AudioWriterBuilder {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 202 |     /// Creates a new builder with default settings.
[INFO] [stdout] 203 |     pub fn new(sample_rate: u32, channels: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn bit_depth(mut self, depth: u16) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn normalize(mut self, enable: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn dither(mut self, enable: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn build(self, path: impl AsRef<Path>) -> Result<AudioFileWriter> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn write_samples(self, path: impl AsRef<Path>, mut samples: Vec<Sample>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChannelMapping` is never constructed
[INFO] [stdout]    --> src/core/channel.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub struct ChannelMapping {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compute_coefficients`, and `apply` are never used
[INFO] [stdout]    --> src/core/channel.rs:251:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl ChannelMapping {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 250 |     /// Creates a new channel mapping.
[INFO] [stdout] 251 |     pub fn new(source: ChannelLayout, target: ChannelLayout) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn compute_coefficients(source: &ChannelLayout, target: &ChannelLayout) -> Vec<Vec<f32>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn apply(&self, input: &[f32]) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ResultExt` is never used
[INFO] [stdout]    --> src/core/error.rs:272:11
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub trait ResultExt<T> {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `autocorrelation_normalized` is never used
[INFO] [stdout]   --> src/dsp/correlation.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn autocorrelation_normalized(signal: &[Sample]) -> Vec<Sample> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_pitch_autocorrelation` is never used
[INFO] [stdout]    --> src/dsp/correlation.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn find_pitch_autocorrelation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `correlation_coefficient` is never used
[INFO] [stdout]    --> src/dsp/correlation.rs:413:8
[INFO] [stdout]     |
[INFO] [stdout] 413 | pub fn correlation_coefficient(signal_a: &[Sample], signal_b: &[Sample]) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_delay` is never used
[INFO] [stdout]    --> src/dsp/correlation.rs:451:8
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub fn find_delay(signal_a: &[Sample], signal_b: &[Sample]) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scratch` is never read
[INFO] [stdout]   --> src/dsp/fft.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct FftProcessor {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 83 |     plan: FftPlan,
[INFO] [stdout] 84 |     scratch: Vec<Complex>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complex_to_db` is never used
[INFO] [stdout]    --> src/dsp/fft.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn complex_to_db(c: Complex, min_db: Sample) -> Sample {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchFftProcessor` is never constructed
[INFO] [stdout]    --> src/dsp/fft.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub struct BatchFftProcessor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `frame_size`, `hop_size`, `spectrum_size`, `process_frames`, and `reconstruct_frames` are never used
[INFO] [stdout]    --> src/dsp/fft.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl BatchFftProcessor {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 342 |     /// Creates a new batch FFT processor.
[INFO] [stdout] 343 |     pub fn new(frame_size: usize, hop_size: usize) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn frame_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn hop_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn spectrum_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn process_frames(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn reconstruct_frames(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_output_length` is never used
[INFO] [stdout]    --> src/dsp/resample.rs:376:8
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub fn estimate_output_length(input_len: usize, from_rate: u32, to_rate: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_input_length` is never used
[INFO] [stdout]    --> src/dsp/resample.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub fn estimate_input_length(output_len: usize, from_rate: u32, to_rate: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_synthesis_window` is never used
[INFO] [stdout]    --> src/dsp/window.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn compute_synthesis_window(analysis_window: &[Sample], hop_size: usize) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `root_hann` is never used
[INFO] [stdout]    --> src/dsp/window.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub fn root_hann(size: usize) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         source: Option<Box<dyn std::error::Error + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         source: Option<Box<dyn std::error::Error + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |     UnsupportedFormat { format: String },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     InvalidAudioParameters { reason: String },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:28
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:49
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         from_rate: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         to_rate: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         reason: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     FftFailed { reason: String },
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:117:20
[INFO] [stdout]     |
[INFO] [stdout] 117 |     FilterFailed { reason: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:121:24
[INFO] [stdout]     |
[INFO] [stdout] 121 |     InsufficientData { required: usize, available: usize },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:121:41
[INFO] [stdout]     |
[INFO] [stdout] 121 |     InsufficientData { required: usize, available: usize },
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |     DetectionFailed { reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:129:22
[INFO] [stdout]     |
[INFO] [stdout] 129 |     AnalysisFailed { reason: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:133:24
[INFO] [stdout]     |
[INFO] [stdout] 133 |     ProcessingFailed { reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:137:22
[INFO] [stdout]     |
[INFO] [stdout] 137 |     MetadataFailed { reason: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ConfigurationError { reason: String },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |     VerificationFailed { reason: String },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         resource: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         limit: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         requested: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:157:24
[INFO] [stdout]     |
[INFO] [stdout] 157 |     InvalidParameter { name: String, reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:157:38
[INFO] [stdout]     |
[INFO] [stdout] 157 |     InvalidParameter { name: String, reason: String },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:161:29
[INFO] [stdout]     |
[INFO] [stdout] 161 |     OperationNotSupported { operation: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:165:28
[INFO] [stdout]     |
[INFO] [stdout] 165 |     ChannelCountMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:165:45
[INFO] [stdout]     |
[INFO] [stdout] 165 |     ChannelCountMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:169:26
[INFO] [stdout]     |
[INFO] [stdout] 169 |     BufferSizeMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:169:43
[INFO] [stdout]     |
[INFO] [stdout] 169 |     BufferSizeMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:173:20
[INFO] [stdout]     |
[INFO] [stdout] 173 |     NumericError { reason: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |     ParallelismError { reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     InternalError { reason: String },
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |     WithContext { context: String, message: String },
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:189:36
[INFO] [stdout]     |
[INFO] [stdout] 189 |     WithContext { context: String, message: String },
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub b0: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub b1: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub b2: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub a1: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub a2: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Kaiser { beta: f32 },
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Gaussian { sigma: f32 },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Tukey { alpha: f32 },
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/main.rs:148:41
[INFO] [stdout]     |
[INFO] [stdout] 148 |         Some(Commands::Analyze { input, format }) => {
[INFO] [stdout]     |                                         ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit_depth`
[INFO] [stdout]    --> src/main.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             bit_depth,
[INFO] [stdout]     |             ^^^^^^^^^ help: try ignoring the field: `bit_depth: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rstest v0.23.0
[INFO] [stdout] warning: use of deprecated method `remark::analysis::DetectorSuite::analyze_watermarks`: Use analyze_anomalies instead - these detect anomalies, not confirmed watermarks
[INFO] [stdout]   --> examples/analyze_watermarks.rs:99:35
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let wm_detections = suite.analyze_watermarks(mono.samples(), mono.sample_rate(), 1)?;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/main.rs:148:41
[INFO] [stdout]     |
[INFO] [stdout] 148 |         Some(Commands::Analyze { input, format }) => {
[INFO] [stdout]     |                                         ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit_depth`
[INFO] [stdout]    --> src/main.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             bit_depth,
[INFO] [stdout]     |             ^^^^^^^^^ help: try ignoring the field: `bit_depth: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TemporalMaskingAnalysis`
[INFO] [stdout]   --> src/analysis/detectors/psychoacoustic_wm.rs:27:60
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::analysis::psychoacoustic::{PsychoacousticModel, TemporalMaskingAnalysis};
[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: `SampleStatistics`
[INFO] [stdout]  --> src/analysis/detectors/statistical.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::{PatternDetector, Result, Sample, SampleStatistics, TimePosition};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Frequency`
[INFO] [stdout]  --> src/analysis/features.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::{Error, Frequency, Result, Sample, SampleStatistics};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `Sample`
[INFO] [stdout]   --> src/analysis/psychoacoustic.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::core::{Result, Sample};
[INFO] [stdout]    |                   ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SeekFrom` and `Seek`
[INFO] [stdout]  --> src/audio/format.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{BufReader, Read, Seek, SeekFrom};
[INFO] [stdout]   |                                ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioFileFormat` and `FormatDetector`
[INFO] [stdout]  --> src/audio/reader.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::audio::format::{AudioFileFormat, FormatDetector};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `Seek`
[INFO] [stdout]  --> src/audio/reader.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::{BufReader, Read, Seek};
[INFO] [stdout]   |                          ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sample`
[INFO] [stdout]   --> src/audio/mod.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::core::{AudioFormat, Result, Sample, SampleBuffer};
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/core/buffer.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::{Deref, DerefMut, Index, IndexMut};
[INFO] [stdout]   |                                 ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/core/buffer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/core/channel.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> src/core/types.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Index, IndexMut, Range};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/dsp/correlation.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::{Complex, Error, Result, Sample};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FftPlan`
[INFO] [stdout]  --> src/dsp/correlation.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::dsp::fft::{FftPlan, RealFftProcessor};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FftProcessor`
[INFO] [stdout]  --> src/dsp/spectrum.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::dsp::{FftProcessor, RealFftProcessor, Window, WindowType};
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/dsp/spectrum.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `neural-codec`
[INFO] [stdout]   --> src/processing/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | #[cfg(feature = "neural-codec")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cli`, `default`, `parallel`, `rodio`, and `simd`
[INFO] [stdout]    = help: consider adding `neural-codec` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `neural-codec`
[INFO] [stdout]   --> src/processing/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[cfg(feature = "neural-codec")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `cli`, `default`, `parallel`, `rodio`, and `simd`
[INFO] [stdout]    = help: consider adding `neural-codec` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QualityMetrics`
[INFO] [stdout]  --> src/processing/pipeline.rs:7:41
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::processing::{AudioProcessor, QualityMetrics};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/audioseal.rs:332:56
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn analyze_hf_artifacts(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/detectors/fingerprint.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let freq_resolution = sample_rate as f64 / fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/detectors/fingerprint.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |         let freq_resolution = sample_rate as f64 / fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/analysis/detectors/modulation.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_diff`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let expected_diff =
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:187:17
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:164:64
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn analyze_amplitude_modulation(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_lag` is assigned to, but never used
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let mut best_lag = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_lag` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_lag` is never read
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:273:21
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     best_lag = lag;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_centroid`
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let mean_centroid: f64 = centroids.iter().sum::<f64>() / centroids.len() as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_centroid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut band_sizes = [8, 16, 32, 64, 128]; // Common RVQ band sizes
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]   --> src/analysis/detectors/neural_codec.rs:59:60
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn analyze_spectral_banding(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spectrum_size`
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let spectrum_size = fft_size / 2 + 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spectrum_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:295:56
[INFO] [stdout]     |
[INFO] [stdout] 295 |     fn analyze_rvq_patterns(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_energy` is never read
[INFO] [stdout]    --> src/analysis/detectors/neural_codec.rs:425:44
[INFO] [stdout]     |
[INFO] [stdout] 425 |                     let mut total_energy = 0.0;
[INFO] [stdout]     |                                            ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 443 |                     total_energy = magnitudes.iter().sum::<f64>();
[INFO] [stdout]     |                     --------------------------------------------- `total_energy` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/spread_spectrum.rs:262:55
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn compute_spectrogram(&self, samples: &[Sample], sample_rate: u32) -> Result<Vec<Vec<f64>>> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variance`
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let variance: f64 = histogram
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lsb_ones` is assigned to, but never used
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut lsb_ones = 0u64;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_lsb_ones` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `lsb_ones` is never read
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:349:17
[INFO] [stdout]     |
[INFO] [stdout] 349 |                 lsb_ones += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/synthid.rs:248:63
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn analyze_temporal_modulation(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]   --> src/analysis/detectors/wavmark.rs:58:62
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn analyze_magnitude_patterns(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/wavmark.rs:164:59
[INFO] [stdout]     |
[INFO] [stdout] 164 |     fn analyze_phase_coherence(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/detectors/wavmark.rs:358:57
[INFO] [stdout]     |
[INFO] [stdout] 358 |     fn analyze_spectral_flux(&self, samples: &[Sample], sample_rate: u32) -> Result<f64> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/analysis/features.rs:459:17
[INFO] [stdout]     |
[INFO] [stdout] 459 |             let mut windowed: Vec<Sample> = samples[start..end]
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_rate`
[INFO] [stdout]    --> src/analysis/features.rs:440:61
[INFO] [stdout]     |
[INFO] [stdout] 440 |     pub fn compute_spectral_flux(&self, samples: &[Sample], sample_rate: u32) -> Result<Vec<f64>> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `freq_resolution`
[INFO] [stdout]    --> src/analysis/psychoacoustic.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let freq_resolution = self.sample_rate as f64 / self.fft_size as f64;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_freq_resolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channels`
[INFO] [stdout]    --> src/core/traits.rs:288:54
[INFO] [stdout]     |
[INFO] [stdout] 288 |     fn resample(&self, from_rate: u32, to_rate: u32, channels: usize) -> Result<Vec<Sample>> {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_len`
[INFO] [stdout]    --> src/dsp/correlation.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let result_len = len_a + len_b - 1;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/dsp/window.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let n = size as f32;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_rate` is never read
[INFO] [stdout]    --> src/processing/anonymize.rs:203:28
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let mut current_rate = sample_rate;
[INFO] [stdout]     |                            ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 268 |     current_rate = result.final_sample_rate;
[INFO] [stdout]     |     --------------------------------------- `current_rate` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_white_noise` is never used
[INFO] [stdout]    --> src/analysis/detectors/audioseal.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 537 |     fn generate_white_noise(num_samples: usize, amplitude: f32) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_sine_wave` is never used
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:510:8
[INFO] [stdout]     |
[INFO] [stdout] 510 |     fn generate_sine_wave(frequency: f32, sample_rate: u32, duration: f32) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_white_noise` is never used
[INFO] [stdout]    --> src/analysis/detectors/spread_spectrum.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 |     fn generate_white_noise(num_samples: usize, amplitude: f32) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compute_sample_entropy` and `compute_std_dev` are never used
[INFO] [stdout]    --> src/analysis/detectors/statistical.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl StatisticalDetector {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn compute_sample_entropy(&self, samples: &[Sample], m: usize, r: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn compute_std_dev(&self, samples: &[Sample]) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bits_per_sample` is never read
[INFO] [stdout]    --> src/audio/reader.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub struct WavReader {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     bits_per_sample: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `open` is never used
[INFO] [stdout]    --> src/audio/reader.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl WavReader {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 312 |     /// Opens a WAV file for reading.
[INFO] [stdout] 313 |     pub fn open(path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build` and `write_samples` are never used
[INFO] [stdout]    --> src/audio/writer.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl AudioWriterBuilder {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn build(self, path: impl AsRef<Path>) -> Result<AudioFileWriter> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn write_samples(self, path: impl AsRef<Path>, mut samples: Vec<Sample>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ResultExt` is never used
[INFO] [stdout]    --> src/core/error.rs:272:11
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub trait ResultExt<T> {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scratch` is never read
[INFO] [stdout]   --> src/dsp/fft.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct FftProcessor {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 83 |     plan: FftPlan,
[INFO] [stdout] 84 |     scratch: Vec<Complex>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complex_to_db` is never used
[INFO] [stdout]    --> src/dsp/fft.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn complex_to_db(c: Complex, min_db: Sample) -> Sample {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchFftProcessor` is never constructed
[INFO] [stdout]    --> src/dsp/fft.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub struct BatchFftProcessor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `frame_size`, `hop_size`, `spectrum_size`, `process_frames`, and `reconstruct_frames` are never used
[INFO] [stdout]    --> src/dsp/fft.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl BatchFftProcessor {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 342 |     /// Creates a new batch FFT processor.
[INFO] [stdout] 343 |     pub fn new(frame_size: usize, hop_size: usize) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn frame_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn hop_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn spectrum_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn process_frames(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn reconstruct_frames(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_input_length` is never used
[INFO] [stdout]    --> src/dsp/resample.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub fn estimate_input_length(output_len: usize, from_rate: u32, to_rate: u32) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `root_hann` is never used
[INFO] [stdout]    --> src/dsp/window.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub fn root_hann(size: usize) -> Vec<Sample> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/analysis/detectors/echo.rs:442:13
[INFO] [stdout]     |
[INFO] [stdout] 442 |             detections.len() >= 0,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/analysis/detectors/modulation.rs:606:17
[INFO] [stdout]     |
[INFO] [stdout] 606 |         assert!(detections.len() >= 0);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         source: Option<Box<dyn std::error::Error + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         source: Option<Box<dyn std::error::Error + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |     UnsupportedFormat { format: String },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/error.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     InvalidAudioParameters { reason: String },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:28
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:101:49
[INFO] [stdout]     |
[INFO] [stdout] 101 |     SampleRateOutOfRange { rate: u32, min: u32, max: u32 },
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |         from_rate: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         to_rate: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |         reason: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |     FftFailed { reason: String },
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:117:20
[INFO] [stdout]     |
[INFO] [stdout] 117 |     FilterFailed { reason: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:121:24
[INFO] [stdout]     |
[INFO] [stdout] 121 |     InsufficientData { required: usize, available: usize },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:121:41
[INFO] [stdout]     |
[INFO] [stdout] 121 |     InsufficientData { required: usize, available: usize },
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 |     DetectionFailed { reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:129:22
[INFO] [stdout]     |
[INFO] [stdout] 129 |     AnalysisFailed { reason: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:133:24
[INFO] [stdout]     |
[INFO] [stdout] 133 |     ProcessingFailed { reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:137:22
[INFO] [stdout]     |
[INFO] [stdout] 137 |     MetadataFailed { reason: String },
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ConfigurationError { reason: String },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |     VerificationFailed { reason: String },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         resource: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         limit: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         requested: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:157:24
[INFO] [stdout]     |
[INFO] [stdout] 157 |     InvalidParameter { name: String, reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:157:38
[INFO] [stdout]     |
[INFO] [stdout] 157 |     InvalidParameter { name: String, reason: String },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:161:29
[INFO] [stdout]     |
[INFO] [stdout] 161 |     OperationNotSupported { operation: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:165:28
[INFO] [stdout]     |
[INFO] [stdout] 165 |     ChannelCountMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:165:45
[INFO] [stdout]     |
[INFO] [stdout] 165 |     ChannelCountMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:169:26
[INFO] [stdout]     |
[INFO] [stdout] 169 |     BufferSizeMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:169:43
[INFO] [stdout]     |
[INFO] [stdout] 169 |     BufferSizeMismatch { expected: usize, actual: usize },
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:173:20
[INFO] [stdout]     |
[INFO] [stdout] 173 |     NumericError { reason: String },
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |     ParallelismError { reason: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     InternalError { reason: String },
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |     WithContext { context: String, message: String },
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/core/error.rs:189:36
[INFO] [stdout]     |
[INFO] [stdout] 189 |     WithContext { context: String, message: String },
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub b0: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub b1: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub b2: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub a1: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/filter.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub a2: Sample,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Kaiser { beta: f32 },
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Gaussian { sigma: f32 },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/dsp/window.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Tukey { alpha: f32 },
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "a921553b0f7ca1d169f1b22b7c55145ea60133c4398f9bfbb844e8485080ccfe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a921553b0f7ca1d169f1b22b7c55145ea60133c4398f9bfbb844e8485080ccfe", kill_on_drop: false }`
[INFO] [stdout] a921553b0f7ca1d169f1b22b7c55145ea60133c4398f9bfbb844e8485080ccfe
