[INFO] cloning repository https://github.com/ppluu1692/recording-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ppluu1692/recording-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fppluu1692%2Frecording-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fppluu1692%2Frecording-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d9ac09cfc814b91f0b9a3ff04c7aa53ba9974cf9
[INFO] checking ppluu1692/recording-rust against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fppluu1692%2Frecording-rust" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ppluu1692/recording-rust
[INFO] finished tweaking git repo https://github.com/ppluu1692/recording-rust
[INFO] tweaked toml for git repo https://github.com/ppluu1692/recording-rust written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ppluu1692/recording-rust on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ppluu1692/recording-rust 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windowfunctions v0.1.1
[INFO] [stderr]   Downloaded visibility v0.1.1
[INFO] [stderr]   Downloaded audioadapter-buffers v3.0.0
[INFO] [stderr]   Downloaded realfft v3.5.0
[INFO] [stderr]   Downloaded rubato v3.0.0
[INFO] [stderr]   Downloaded audio-core v0.2.1
[INFO] [stderr]   Downloaded audioadapter-sample v3.0.0
[INFO] [stderr]   Downloaded audioadapter v3.0.0
[INFO] [stderr]   Downloaded alsa-sys v0.4.0
[INFO] [stderr]   Downloaded ringbuf v0.5.0
[INFO] [stderr]   Downloaded coreaudio-rs v0.14.2
[INFO] [stderr]   Downloaded alsa v0.11.0
[INFO] [stderr]   Downloaded cpal v0.18.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c
[INFO] running `Command { std: "docker" "start" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking audio-core v0.2.1
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling cpal v0.18.0
[INFO] [stderr]    Compiling visibility v0.1.1
[INFO] [stderr]     Checking windowfunctions v0.1.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking ringbuf v0.5.0
[INFO] [stderr]     Checking audioadapter-sample v3.0.0
[INFO] [stderr]     Checking audioadapter v3.0.0
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking audioadapter-buffers v3.0.0
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking ctrlc v3.5.2
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]     Checking realfft v3.5.0
[INFO] [stderr]     Checking rubato v3.0.0
[INFO] [stderr]     Checking recording-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/audio_device.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[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 imports: `Device` and `traits::DeviceTrait`
[INFO] [stdout]   --> src/main.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | use cpal::{Device, traits::DeviceTrait};
[INFO] [stdout]    |            ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_channel::bounded`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crossbeam_channel::bounded;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicBool`, and `Ordering`
[INFO] [stdout]   --> src/main.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     atomic::{AtomicBool, Ordering},
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 20 |     Arc,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MonoDownmixSink`, `ResamplerSink`, `WavSink`, `get_default_mic`, `pipeline::StreamConfig`, and `spawn_writer_thread`
[INFO] [stdout]   --> src/main.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...::{get_default_mic, get_mic_devices, get_speaker_devices, print_devices}, pipeline::StreamConfig, processor::{MonoDownmixSink, ResamplerSink}, writer::{WavSink, spawn_writer_thread}};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^                                                        ^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^            ^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     return Ok(());
[INFO] [stdout]    |     ------------- any code following this expression is unreachable
[INFO] [stdout] 51 |     println!();
[INFO] [stdout]    |     ^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHANNEL_CAPACITY` is never used
[INFO] [stdout]   --> src/main.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const CHANNEL_CAPACITY: usize = 512;
[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 `RecordingDevices` is never constructed
[INFO] [stdout]  --> src/audio_device.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecordingDevices {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_mic` is never used
[INFO] [stdout]   --> src/audio_device.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_default_mic(host: &Host) -> Option<Device> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_speaker` is never used
[INFO] [stdout]   --> src/audio_device.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn get_default_speaker(host: &Host) -> Option<Device> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn get_default_devices(host: &Host) -> RecordingDevices {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_input_config` is never used
[INFO] [stdout]   --> src/audio_device.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn get_input_config(device: &Device) -> Result<SupportedStreamConfig> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_output_config` is never used
[INFO] [stdout]   --> src/audio_device.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn get_output_config(device: &Device) -> Result<SupportedStreamConfig> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_input_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn list_input_devices(host: &cpal::Host) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_output_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn list_output_devices(host: &Host) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RING_CAPACITY` is never used
[INFO] [stdout]   --> src/capture.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const RING_CAPACITY: usize = 4096 * 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_INTERVAL_MS` is never used
[INFO] [stdout]   --> src/capture.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DRAIN_INTERVAL_MS: u64 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_BATCH` is never used
[INFO] [stdout]   --> src/capture.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DRAIN_BATCH: usize = 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_capture` is never used
[INFO] [stdout]   --> src/capture.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn start_capture(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_capture` is never used
[INFO] [stdout]   --> src/capture.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn stop_capture(stream: &Stream, tx: &Sender<AudioMessage>) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_input_stream` is never used
[INFO] [stdout]   --> src/capture.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn build_input_stream(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_drain_thread` is never used
[INFO] [stdout]    --> src/capture.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn spawn_drain_thread(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AudioMessage` is never used
[INFO] [stdout]  --> src/pipeline.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum AudioMessage {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamConfig` is never constructed
[INFO] [stdout]  --> src/pipeline.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct StreamConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pipeline.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl StreamConfig {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(label: &str, channels: u16, sample_rate: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AudioSink` is never used
[INFO] [stdout]  --> src/writer.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait AudioSink: Send + 'static {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WavSink` is never constructed
[INFO] [stdout]   --> src/writer.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct WavSink {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/writer.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl WavSink {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(path: &str, cfg: &StreamConfig) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_writer_thread` is never used
[INFO] [stdout]   --> src/writer.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn spawn_writer_thread(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonoDownmixSink` is never constructed
[INFO] [stdout]  --> src/processor.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MonoDownmixSink {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/processor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl MonoDownmixSink {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(inner: Box<dyn AudioSink>, channels: u16) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResamplerSink` is never constructed
[INFO] [stdout]   --> src/processor.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ResamplerSink {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/processor.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl ResamplerSink {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 51 |     pub fn new(inner: Box<dyn AudioSink>, input_rate: u32, output_rate: u32) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `ctrlc`
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/audio_device.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stdout] warning: unused imports: `Device` and `traits::DeviceTrait`
[INFO] [stdout]   --> src/main.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | use cpal::{Device, traits::DeviceTrait};
[INFO] [stdout]    |            ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   |
[INFO] [stdout] warning: unused import: `crossbeam_channel::bounded`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crossbeam_channel::bounded;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] 5 | ctrlc = "3.5.2"
[INFO] [stdout] warning: unused imports: `Arc`, `AtomicBool`, and `Ordering`
[INFO] [stdout]   --> src/main.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     atomic::{AtomicBool, Ordering},
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 20 |     Arc,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] warning: unused imports: `MonoDownmixSink`, `ResamplerSink`, `WavSink`, `get_default_mic`, `pipeline::StreamConfig`, and `spawn_writer_thread`
[INFO] [stdout]   --> src/main.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | ...::{get_default_mic, get_mic_devices, get_speaker_devices, print_devices}, pipeline::StreamConfig, processor::{MonoDownmixSink, ResamplerSink}, writer::{WavSink, spawn_writer_thread}};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^                                                        ^^^^^^^^^^^^^^^^^^^^^^              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^            ^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   |
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     return Ok(());
[INFO] [stdout]    |     ------------- any code following this expression is unreachable
[INFO] [stdout] 51 |     println!();
[INFO] [stdout]    |     ^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stdout] warning: constant `CHANNEL_CAPACITY` is never used
[INFO] [stdout]   --> src/main.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const CHANNEL_CAPACITY: usize = 512;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] help: consider removing the dependency on `ctrlc`
[INFO] [stdout] warning: struct `RecordingDevices` is never constructed
[INFO] [stdout]  --> src/audio_device.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecordingDevices {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: `recording-rust` (manifest) generated 1 warning
[INFO] [stdout] warning: function `get_default_mic` is never used
[INFO] [stdout]   --> src/audio_device.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_default_mic(host: &Host) -> Option<Device> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.46s
[INFO] [stdout] warning: function `get_default_speaker` is never used
[INFO] [stdout]   --> src/audio_device.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn get_default_speaker(host: &Host) -> Option<Device> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn get_default_devices(host: &Host) -> RecordingDevices {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_input_config` is never used
[INFO] [stdout]   --> src/audio_device.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn get_input_config(device: &Device) -> Result<SupportedStreamConfig> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_output_config` is never used
[INFO] [stdout]   --> src/audio_device.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn get_output_config(device: &Device) -> Result<SupportedStreamConfig> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_input_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn list_input_devices(host: &cpal::Host) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_output_devices` is never used
[INFO] [stdout]   --> src/audio_device.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn list_output_devices(host: &Host) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RING_CAPACITY` is never used
[INFO] [stdout]   --> src/capture.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const RING_CAPACITY: usize = 4096 * 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_INTERVAL_MS` is never used
[INFO] [stdout]   --> src/capture.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DRAIN_INTERVAL_MS: u64 = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_BATCH` is never used
[INFO] [stdout]   --> src/capture.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DRAIN_BATCH: usize = 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_capture` is never used
[INFO] [stdout]   --> src/capture.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn start_capture(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_capture` is never used
[INFO] [stdout]   --> src/capture.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn stop_capture(stream: &Stream, tx: &Sender<AudioMessage>) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_input_stream` is never used
[INFO] [stdout]   --> src/capture.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn build_input_stream(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_drain_thread` is never used
[INFO] [stdout]    --> src/capture.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn spawn_drain_thread(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AudioMessage` is never used
[INFO] [stdout]  --> src/pipeline.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum AudioMessage {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamConfig` is never constructed
[INFO] [stdout]  --> src/pipeline.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct StreamConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pipeline.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl StreamConfig {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(label: &str, channels: u16, sample_rate: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AudioSink` is never used
[INFO] [stdout]  --> src/writer.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait AudioSink: Send + 'static {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WavSink` is never constructed
[INFO] [stdout]   --> src/writer.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct WavSink {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/writer.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl WavSink {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(path: &str, cfg: &StreamConfig) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_writer_thread` is never used
[INFO] [stdout]   --> src/writer.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn spawn_writer_thread(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonoDownmixSink` is never constructed
[INFO] [stdout]  --> src/processor.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MonoDownmixSink {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/processor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl MonoDownmixSink {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(inner: Box<dyn AudioSink>, channels: u16) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResamplerSink` is never constructed
[INFO] [stdout]   --> src/processor.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ResamplerSink {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/processor.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl ResamplerSink {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 51 |     pub fn new(inner: Box<dyn AudioSink>, input_rate: u32, output_rate: u32) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.31.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c", kill_on_drop: false }`
[INFO] [stdout] 4487cbbf470c849abda43d1c8fd400cdafd48c9cb68450f31ccb01e54c2f400c
