[INFO] cloning repository https://github.com/EstebanForero/McAiServer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EstebanForero/McAiServer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEstebanForero%2FMcAiServer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEstebanForero%2FMcAiServer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c2612480ec904e15a0ebfe177898f3c67438ac13
[INFO] checking EstebanForero/McAiServer against try#5f6abd89da253a562ad85d235b9342a3ac336c28 for pr-156114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEstebanForero%2FMcAiServer" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/EstebanForero/McAiServer
[INFO] finished tweaking git repo https://github.com/EstebanForero/McAiServer
[INFO] tweaked toml for git repo https://github.com/EstebanForero/McAiServer written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EstebanForero/McAiServer on toolchain 5f6abd89da253a562ad85d235b9342a3ac336c28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EstebanForero/McAiServer 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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.2.22
[INFO] [stderr]   Downloaded gemini-live-macros v0.1.0
[INFO] [stderr]   Downloaded toml_datetime v0.6.9
[INFO] [stderr]   Downloaded gemini-live-api v0.1.1
[INFO] [stderr]   Downloaded toml_edit v0.22.26
[INFO] [stderr]   Downloaded aws-lc-rs v1.13.1
[INFO] [stderr]   Downloaded rustls v0.23.27
[INFO] [stderr]   Downloaded lame-sys v0.1.2
[INFO] [stderr]   Downloaded aws-lc-sys v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a84ffcd67e044e384a85892bd8c0bd99d889e344b12e595f27536d1237f88a85
[INFO] running `Command { std: "docker" "start" "-a" "a84ffcd67e044e384a85892bd8c0bd99d889e344b12e595f27536d1237f88a85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a84ffcd67e044e384a85892bd8c0bd99d889e344b12e595f27536d1237f88a85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a84ffcd67e044e384a85892bd8c0bd99d889e344b12e595f27536d1237f88a85", kill_on_drop: false }`
[INFO] [stdout] a84ffcd67e044e384a85892bd8c0bd99d889e344b12e595f27536d1237f88a85
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+5f6abd89da253a562ad85d235b9342a3ac336c28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 97c7d3c7e7ca6b466027065f611397630fbbaa0368395b7980f902745a9aece8
[INFO] running `Command { std: "docker" "start" "-a" "97c7d3c7e7ca6b466027065f611397630fbbaa0368395b7980f902745a9aece8", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]    Compiling aws-lc-rs v1.13.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling cc v1.2.22
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]    Compiling rustls v0.23.27
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling lame-sys v0.1.2
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling aws-lc-sys v0.29.0
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]    Compiling gemini-live-macros v0.1.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.0
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.11
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.15
[INFO] [stderr]     Checking rustls-webpki v0.103.3
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking gemini-live-api v0.1.1
[INFO] [stderr]     Checking ai_server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/main.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, anyhow};
[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: `io`
[INFO] [stdout]  --> src/main.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::{io, sync::mpsc::Receiver as TokioReceiver};
[INFO] [stdout]   |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/main.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{Level, debug, error, info, warn};
[INFO] [stdout]   |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/audio_output/tcp_output.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::AsyncAudioOutput`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::AsyncAudioOutput; // Keep if you want to maintain the trait structure
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc::Sender as TokioSender`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::mpsc::Sender as TokioSender; // For trait, if used
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Method` and `Url`
[INFO] [stdout]  --> src/gemini_integration/tools.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use reqwest::{Method, Url};
[INFO] [stdout]   |               ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/gemini_integration/tools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/main.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, anyhow};
[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: `io`
[INFO] [stdout]  --> src/main.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::{io, sync::mpsc::Receiver as TokioReceiver};
[INFO] [stdout]   |             ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/main.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{Level, debug, error, info, warn};
[INFO] [stdout]   |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_trait::async_trait`
[INFO] [stdout]  --> src/audio_output/tcp_output.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use async_trait::async_trait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::AsyncAudioOutput`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::AsyncAudioOutput; // Keep if you want to maintain the trait structure
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc::Sender as TokioSender`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::mpsc::Sender as TokioSender; // For trait, if used
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Method` and `Url`
[INFO] [stdout]  --> src/gemini_integration/tools.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use reqwest::{Method, Url};
[INFO] [stdout]   |               ^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/gemini_integration/tools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |             let mut connection_attempts = 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/audio_output/tcp_output.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |             let mut connection_attempts = 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: unused variable: `connection_attempts`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |             let mut connection_attempts = 0;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_attempts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `stream` is never read
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:57:49
[INFO] [stdout]    |
[INFO] [stdout] 57 |             let mut stream: Option<TcpStream> = None;
[INFO] [stdout]    |                                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 68 |                     stream = Some(s);
[INFO] [stdout]    |                     ------ `stream` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection_attempts`
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |             let mut connection_attempts = 0;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_attempts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `stream` is never read
[INFO] [stdout]   --> src/audio_output/tcp_output.rs:57:49
[INFO] [stdout]    |
[INFO] [stdout] 57 |             let mut stream: Option<TcpStream> = None;
[INFO] [stdout]    |                                                 ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 68 |                     stream = Some(s);
[INFO] [stdout]    |                     ------ `stream` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sample_rate` and `channels` are never used
[INFO] [stdout]   --> src/audio_input/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait AsyncAudioInput: Send + Sync {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn sample_rate(&self) -> u32;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn channels(&self) -> u16;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sample_rate` and `channels` are never read
[INFO] [stdout]   --> src/audio_input/tcp_input.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TcpAudioInput {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 18 |     address: String,
[INFO] [stdout] 19 |     sample_rate: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 20 |     channels: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsyncAudioOutput` is never used
[INFO] [stdout]   --> src/audio_output/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait AsyncAudioOutput: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_UDP_PAYLOAD_BYTES` is never used
[INFO] [stdout]   --> src/audio_output/udp_output.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_UDP_PAYLOAD_BYTES: usize = 1400; // Approx 700 i16 samples
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UdpAudioOutput` is never constructed
[INFO] [stdout]   --> src/audio_output/udp_output.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct UdpAudioOutput {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `start_with_crossbeam_receiver`, and `stop_stream_processing` are never used
[INFO] [stdout]    --> src/audio_output/udp_output.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl UdpAudioOutput {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new(target_address: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub async fn start_with_crossbeam_receiver(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub async fn stop_stream_processing(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sample_rate` and `channels` are never used
[INFO] [stdout]   --> src/audio_input/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait AsyncAudioInput: Send + Sync {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn sample_rate(&self) -> u32;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn channels(&self) -> u16;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sample_rate` and `channels` are never read
[INFO] [stdout]   --> src/audio_input/tcp_input.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TcpAudioInput {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 18 |     address: String,
[INFO] [stdout] 19 |     sample_rate: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 20 |     channels: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsyncAudioOutput` is never used
[INFO] [stdout]   --> src/audio_output/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait AsyncAudioOutput: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_UDP_PAYLOAD_BYTES` is never used
[INFO] [stdout]   --> src/audio_output/udp_output.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX_UDP_PAYLOAD_BYTES: usize = 1400; // Approx 700 i16 samples
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UdpAudioOutput` is never constructed
[INFO] [stdout]   --> src/audio_output/udp_output.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct UdpAudioOutput {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `start_with_crossbeam_receiver`, and `stop_stream_processing` are never used
[INFO] [stdout]    --> src/audio_output/udp_output.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl UdpAudioOutput {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new(target_address: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub async fn start_with_crossbeam_receiver(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub async fn stop_stream_processing(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.51s
[INFO] running `Command { std: "docker" "inspect" "97c7d3c7e7ca6b466027065f611397630fbbaa0368395b7980f902745a9aece8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97c7d3c7e7ca6b466027065f611397630fbbaa0368395b7980f902745a9aece8", kill_on_drop: false }`
[INFO] [stdout] 97c7d3c7e7ca6b466027065f611397630fbbaa0368395b7980f902745a9aece8
