[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 master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEstebanForero%2FMcAiServer" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EstebanForero/McAiServer on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded gemini-live-macros v0.1.0
[INFO] [stderr]   Downloaded aws-lc-rs v1.13.1
[INFO] [stderr]   Downloaded aws-lc-sys v0.29.0
[INFO] [stderr]   Downloaded gemini-live-api v0.1.1
[INFO] [stderr]   Downloaded lame-sys v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8c95788722f3fc3f0ba33c9c887f1ad52214ab6ec9ae953b5067217dae544f47
[INFO] running `Command { std: "docker" "start" "-a" "8c95788722f3fc3f0ba33c9c887f1ad52214ab6ec9ae953b5067217dae544f47", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8c95788722f3fc3f0ba33c9c887f1ad52214ab6ec9ae953b5067217dae544f47", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c95788722f3fc3f0ba33c9c887f1ad52214ab6ec9ae953b5067217dae544f47", kill_on_drop: false }`
[INFO] [stdout] 8c95788722f3fc3f0ba33c9c887f1ad52214ab6ec9ae953b5067217dae544f47
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb9499e8e41cc773fba9e4ab0588f54e459f8f32bafc35319f80b13944144d31
[INFO] running `Command { std: "docker" "start" "-a" "fb9499e8e41cc773fba9e4ab0588f54e459f8f32bafc35319f80b13944144d31", kill_on_drop: false }`
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling cc v1.2.22
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]    Compiling aws-lc-rs v1.13.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling rustls v0.23.27
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking alsa-sys v0.3.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling lame-sys v0.1.2
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]    Compiling aws-lc-sys v0.29.0
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]    Compiling gemini-live-macros v0.1.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking h2 v0.4.10
[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: 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: 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: 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 1m 20s
[INFO] running `Command { std: "docker" "inspect" "fb9499e8e41cc773fba9e4ab0588f54e459f8f32bafc35319f80b13944144d31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb9499e8e41cc773fba9e4ab0588f54e459f8f32bafc35319f80b13944144d31", kill_on_drop: false }`
[INFO] [stdout] fb9499e8e41cc773fba9e4ab0588f54e459f8f32bafc35319f80b13944144d31
