[INFO] cloning repository https://github.com/zhpixel517/rust-audio
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zhpixel517/rust-audio" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhpixel517%2Frust-audio", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhpixel517%2Frust-audio'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3f7b8b252b90c5a5be966bd65c64bcdd50280f7c
[INFO] checking zhpixel517/rust-audio against master#f5e2df741b4a9820a7579f0c8eccc951706a8782 for pr-147995
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhpixel517%2Frust-audio" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zhpixel517/rust-audio
[INFO] finished tweaking git repo https://github.com/zhpixel517/rust-audio
[INFO] tweaked toml for git repo https://github.com/zhpixel517/rust-audio written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zhpixel517/rust-audio on toolchain f5e2df741b4a9820a7579f0c8eccc951706a8782
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zhpixel517/rust-audio 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" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rtrb v0.3.1
[INFO] [stderr]   Downloaded autotools v0.2.7
[INFO] [stderr]   Downloaded webrtc-audio-processing v0.4.0
[INFO] [stderr]   Downloaded ringbuffer v0.15.0
[INFO] [stderr]   Downloaded ringbuf v0.4.1
[INFO] [stderr]   Downloaded cc v1.1.4
[INFO] [stderr]   Downloaded rtp-rs v0.6.0
[INFO] [stderr]   Downloaded rtcp v0.11.0
[INFO] [stderr]   Downloaded webrtc-util v0.9.0
[INFO] [stderr]   Downloaded rtp v0.11.0
[INFO] [stderr]   Downloaded webrtc-audio-processing-sys v0.4.0
[INFO] [stderr]   Downloaded webrtc-vad v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f676655bf7cd7079be911a4bf4f25671e1c354e0346099dcf3664f6da84fea72
[INFO] running `Command { std: "docker" "start" "-a" "f676655bf7cd7079be911a4bf4f25671e1c354e0346099dcf3664f6da84fea72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f676655bf7cd7079be911a4bf4f25671e1c354e0346099dcf3664f6da84fea72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f676655bf7cd7079be911a4bf4f25671e1c354e0346099dcf3664f6da84fea72", kill_on_drop: false }`
[INFO] [stdout] f676655bf7cd7079be911a4bf4f25671e1c354e0346099dcf3664f6da84fea72
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f5e2df741b4a9820a7579f0c8eccc951706a8782" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 31b18d98ea355e3d75ea5c9fedb3dd73f76b3b370798ad0ded78cae2f6fa7a40
[INFO] running `Command { std: "docker" "start" "-a" "31b18d98ea355e3d75ea5c9fedb3dd73f76b3b370798ad0ded78cae2f6fa7a40", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.71
[INFO] [stderr]    Compiling cc v1.1.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling prettyplease v0.2.20
[INFO] [stderr]    Compiling gimli v0.29.0
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling miniz_oxide v0.7.4
[INFO] [stderr]    Compiling object v0.36.1
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling rustc-demangle v0.1.24
[INFO] [stderr]    Compiling bindgen v0.69.4
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling portable-atomic v1.7.0
[INFO] [stderr]    Compiling thiserror v1.0.62
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]     Checking bytes v1.6.1
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling matrixmultiply v0.3.8
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling rustfft v6.2.0
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking alsa v0.9.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]    Compiling autotools v0.2.7
[INFO] [stderr]    Compiling cmake v0.1.50
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking rtp-rs v0.6.0
[INFO] [stderr]     Checking rtrb v0.3.1
[INFO] [stderr]     Checking ringbuffer v0.15.0
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking ringbuf v0.4.1
[INFO] [stderr]    Compiling backtrace v0.3.73
[INFO] [stderr]    Compiling audiopus_sys v0.2.2
[INFO] [stderr]    Compiling webrtc-vad v0.4.0
[INFO] [stderr]     Checking opus v0.3.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling addr2line v0.22.0
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling thiserror-impl v1.0.62
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]     Checking tokio v1.39.2
[INFO] [stderr]    Compiling regex v1.10.5
[INFO] [stderr]     Checking webrtc-util v0.9.0
[INFO] [stderr]     Checking rtcp v0.11.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking rtp v0.11.0
[INFO] [stderr]    Compiling webrtc-audio-processing-sys v0.4.0
[INFO] [stderr]     Checking webrtc-audio-processing v0.4.0
[INFO] [stderr]     Checking udp_latency_test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Simd` and `f32x4`
[INFO] [stdout]  --> src/aec.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::simd::{f32x4, Simd};
[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: `num_complex::Complex`
[INFO] [stdout]  --> src/feedback_suppressor.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rustfft::{FftPlanner, num_complex::Complex};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packet`
[INFO] [stdout]   --> src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use opus::{packet, Decoder, Encoder};
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rtcp::payload_feedbacks`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rtcp::payload_feedbacks;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rtp::sequence`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rtp::sequence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Seq`
[INFO] [stdout]   --> src/main.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rtp_rs::{RtpPacketBuilder, RtpReader, Seq};
[INFO] [stdout]    |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/aec.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(portable_simd)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Simd` and `f32x4`
[INFO] [stdout]  --> src/aec.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::simd::{f32x4, Simd};
[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: `num_complex::Complex`
[INFO] [stdout]  --> src/feedback_suppressor.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rustfft::{FftPlanner, num_complex::Complex};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `packet`
[INFO] [stdout]   --> src/main.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use opus::{packet, Decoder, Encoder};
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rtcp::payload_feedbacks`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rtcp::payload_feedbacks;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rtp::sequence`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rtp::sequence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Seq`
[INFO] [stdout]   --> src/main.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rtp_rs::{RtpPacketBuilder, RtpReader, Seq};
[INFO] [stdout]    |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/aec.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(portable_simd)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/feedback_suppressor.rs:22:37
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/feedback_suppressor.rs:22:52
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/noise_gate.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let start = Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `samples_attenuated` is assigned to, but never used
[INFO] [stdout]   --> src/noise_gate.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut samples_attenuated = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_samples_attenuated` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `samples_attenuated` is never read
[INFO] [stdout]    --> src/noise_gate.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 samples_attenuated += 1;
[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: unused variable: `noise_gate`
[INFO] [stdout]    --> src/main.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noise_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low_pass_filter`
[INFO] [stdout]    --> src/main.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_low_pass_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:180:22
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 for (i, sample) in data.iter_mut().enumerate().take(samples_to_play) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let mut low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut rtp_packet = RtpPacketBuilder::new()
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:268:10
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |          ----^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:268:20
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |                    ----^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |     let mut decode_buffer = [0.0f32; MAX_DECODE_BUFFER_SIZE];
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut decoder = Decoder::new(48000, opus::Channels::Mono).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:382:22
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 for (i, sample) in data.iter_mut().enumerate().take(samples_to_play) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noise_gate`
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noise_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low_pass_filter`
[INFO] [stdout]    --> src/main.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let mut low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_low_pass_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prod`
[INFO] [stdout]    --> src/main.rs:268:10
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prod`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cons`
[INFO] [stdout]    --> src/main.rs:268:20
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decode_buffer`
[INFO] [stdout]    --> src/main.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |     let mut decode_buffer = [0.0f32; MAX_DECODE_BUFFER_SIZE];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decode_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decoder`
[INFO] [stdout]    --> src/main.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut decoder = Decoder::new(48000, opus::Channels::Mono).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AEC` is never constructed
[INFO] [stdout]  --> src/aec.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AEC {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/aec.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl AEC {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(filter_length: usize, step_size: f32, double_talk_threshold: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeedbackSuppressor` is never constructed
[INFO] [stdout]  --> src/feedback_suppressor.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FeedbackSuppressor {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `process_block` are never used
[INFO] [stdout]   --> src/feedback_suppressor.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl FeedbackSuppressor {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(sample_rate: f32, fft_size: usize, threshold: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alpha` and `prev_output` are never read
[INFO] [stdout]   --> src/low_pass_filter.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct LowPassFilter {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 63 |     alpha: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 64 |     prev_output: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/low_pass_filter.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl LowPassFilter {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn process(&mut self, input: &[f32], output: &mut [f32]){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/noise_gate.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct NoiseGate {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     /// Decibels scale
[INFO] [stdout]  8 |     threshold_linear: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     alpha: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     low_pass_coeff: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |
[INFO] [stdout] 12 |     attack_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 13 |     release_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     hold_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     sample_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     envelope: f32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |
[INFO] [stdout] 20 |     hold_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     current_gain: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process_block` is never used
[INFO] [stdout]   --> src/noise_gate.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl NoiseGate {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     socket.bind(&loopback.into());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let _ = socket.bind(&loopback.into());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         ap.process_render_frame(&mut buffer_to_send);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         let _ = ap.process_render_frame(&mut buffer_to_send);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/feedback_suppressor.rs:22:37
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/feedback_suppressor.rs:22:52
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/noise_gate.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let start = Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `samples_attenuated` is assigned to, but never used
[INFO] [stdout]   --> src/noise_gate.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut samples_attenuated = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_samples_attenuated` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `samples_attenuated` is never read
[INFO] [stdout]    --> src/noise_gate.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 samples_attenuated += 1;
[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: unused variable: `noise_gate`
[INFO] [stdout]    --> src/main.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noise_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low_pass_filter`
[INFO] [stdout]    --> src/main.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_low_pass_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:180:22
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 for (i, sample) in data.iter_mut().enumerate().take(samples_to_play) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let mut low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut rtp_packet = RtpPacketBuilder::new()
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:268:10
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |          ----^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:268:20
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |                    ----^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |     let mut decode_buffer = [0.0f32; MAX_DECODE_BUFFER_SIZE];
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut decoder = Decoder::new(48000, opus::Channels::Mono).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:382:22
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 for (i, sample) in data.iter_mut().enumerate().take(samples_to_play) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noise_gate`
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut noise_gate = NoiseGate::new(-23.5, 0.01, 0.0001, 0.02, 0.3, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noise_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low_pass_filter`
[INFO] [stdout]    --> src/main.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let mut low_pass_filter = LowPassFilter::new(cutoff_freq, 48000.0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_low_pass_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prod`
[INFO] [stdout]    --> src/main.rs:268:10
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prod`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cons`
[INFO] [stdout]    --> src/main.rs:268:20
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let (mut prod, mut cons) = RingBuffer::<u8>::new(RINGBUFFER_SIZE);
[INFO] [stdout]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decode_buffer`
[INFO] [stdout]    --> src/main.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |     let mut decode_buffer = [0.0f32; MAX_DECODE_BUFFER_SIZE];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decode_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decoder`
[INFO] [stdout]    --> src/main.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut decoder = Decoder::new(48000, opus::Channels::Mono).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AEC` is never constructed
[INFO] [stdout]  --> src/aec.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AEC {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/aec.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl AEC {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(filter_length: usize, step_size: f32, double_talk_threshold: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeedbackSuppressor` is never constructed
[INFO] [stdout]  --> src/feedback_suppressor.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FeedbackSuppressor {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `process_block` are never used
[INFO] [stdout]   --> src/feedback_suppressor.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl FeedbackSuppressor {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(sample_rate: f32, fft_size: usize, threshold: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alpha` and `prev_output` are never read
[INFO] [stdout]   --> src/low_pass_filter.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct LowPassFilter {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 63 |     alpha: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 64 |     prev_output: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/low_pass_filter.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl LowPassFilter {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn process(&mut self, input: &[f32], output: &mut [f32]){
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/noise_gate.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct NoiseGate {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     /// Decibels scale
[INFO] [stdout]  8 |     threshold_linear: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     alpha: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     low_pass_coeff: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |
[INFO] [stdout] 12 |     attack_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 13 |     release_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     hold_time: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     sample_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     envelope: f32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |
[INFO] [stdout] 20 |     hold_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     current_gain: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process_block` is never used
[INFO] [stdout]   --> src/noise_gate.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl NoiseGate {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn process_block(&mut self, input: &[f32], output: &mut [f32]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     socket.bind(&loopback.into());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let _ = socket.bind(&loopback.into());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:423:25
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         ap.process_render_frame(&mut buffer_to_send);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 423 |                         let _ = ap.process_render_frame(&mut buffer_to_send);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 44s
[INFO] running `Command { std: "docker" "inspect" "31b18d98ea355e3d75ea5c9fedb3dd73f76b3b370798ad0ded78cae2f6fa7a40", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31b18d98ea355e3d75ea5c9fedb3dd73f76b3b370798ad0ded78cae2f6fa7a40", kill_on_drop: false }`
[INFO] [stdout] 31b18d98ea355e3d75ea5c9fedb3dd73f76b3b370798ad0ded78cae2f6fa7a40
