[INFO] cloning repository https://github.com/NorbertKSW2001/Test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NorbertKSW2001/Test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1fcd9f5df762156b5d41e4d8923c86a8203547c7
[INFO] testing NorbertKSW2001/Test against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NorbertKSW2001/Test
[INFO] finished tweaking git repo https://github.com/NorbertKSW2001/Test
[INFO] tweaked toml for git repo https://github.com/NorbertKSW2001/Test written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NorbertKSW2001/Test on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NorbertKSW2001/Test 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/SpaceManiac/opus-rs`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.123
[INFO] [stderr]   Downloaded mach2 v0.6.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.123
[INFO] [stderr]   Downloaded cc v1.2.64
[INFO] [stderr]   Downloaded cpal v0.18.1
[INFO] [stderr]   Downloaded js-sys v0.3.100
[INFO] [stderr]   Downloaded web-sys v0.3.100
[INFO] [stderr]   Downloaded opusic-sys v0.7.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a
[INFO] running `Command { std: "docker" "start" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", 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" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]    Compiling miniquad v0.4.10
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling cpal v0.18.1
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling ttf-parser v0.21.1
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling glam v0.27.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling alsa v0.11.0
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling opusic-sys v0.7.3
[INFO] [stderr]    Compiling fontdue v0.9.3
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling quad-rand v0.2.3
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling macroquad v0.4.15
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling opus v0.3.1 (https://github.com/SpaceManiac/opus-rs#55987666)
[INFO] [stderr]    Compiling Test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: enum `PeerPunchMessage` is never used
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum PeerPunchMessage {
[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 `PeerPunchWireMessage` is never constructed
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct PeerPunchWireMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_json_bytes` are never used
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl RendezvousClientWireMessage {
[INFO] [stdout]    | -------------------------------- associated items in this implementation
[INFO] [stdout] 84 |     pub fn new(message: GameToRendezvousMessage) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_slice` is never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl RendezvousServerWireMessage {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl PeerPunchWireMessage {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new(message: PeerPunchMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `room` is never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/server_state.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl RendezvousServerState {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn room(&self, room_code: &str) -> Option<&RendezvousRoom> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vote_target::VoteTarget`
[INFO] [stdout]   --> src/entities/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use vote_target::VoteTarget;
[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: `vote_tally::VoteTally`
[INFO] [stdout]   --> src/entities/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use vote_tally::VoteTally;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `meeting_outcome::MeetingOutcome`
[INFO] [stdout]   --> src/entities/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use meeting_outcome::MeetingOutcome;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::systems::interaction_target::InteractionTarget`
[INFO] [stdout]  --> src/systems/slot_verification.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::systems::interaction_target::InteractionTarget;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `decode_pcm_i16_le`
[INFO] [stdout]  --> src/audio/voice_io/debug.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     decode_pcm_i16_le,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_ACTIVITY_PEAK_THRESHOLD`, `DEFAULT_VOICE_ACTIVITY_RMS_THRESHOLD`, and `DEFAULT_VOICE_SAMPLE_RATE_HZ`
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     DEFAULT_VOICE_ACTIVITY_PEAK_THRESHOLD,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_ACTIVITY_RMS_THRESHOLD,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout] 18 |     DEFAULT_VOICE_SAMPLE_RATE_HZ,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `analyse_voice_activity`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     analyse_voice_activity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceCaptureError`, `VoiceCaptureRuntime`, and `VoiceInputDeviceInfo`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     VoiceCaptureError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     VoiceCaptureRuntime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     VoiceInputDeviceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode_pcm_f32_le`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     encode_pcm_f32_le,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_debug_voice_frame`, `generate_debug_voice_payload`, and `generate_debug_voice_tone_frame`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     generate_debug_voice_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     generate_debug_voice_payload,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     generate_debug_voice_tone_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceFrameChunker` and `frame_sample_count_for_sample_rate`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     frame_sample_count_for_sample_rate,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     VoiceAudioFrame,
[INFO] [stdout] 42 |     VoiceFrameChunker,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_SMOOTHING_RAMP_MS` and `smoothing_ramp_sample_count`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     smoothing_ramp_sample_count,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     VoiceSmoothingConfig,
[INFO] [stdout] 50 |     DEFAULT_VOICE_SMOOTHING_RAMP_MS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     VoicePayloadFormatDto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoiceAudioFrame`
[INFO] [stdout]  --> src/network/game_flow/state.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     VoiceAudioFrame,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePacketFreshness`
[INFO] [stdout]   --> src/network/game_flow/voice_flow.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     VoicePacketFreshness,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_kind_from_dto`
[INFO] [stdout]   --> src/network/game_flow/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     role_kind_from_dto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DEFAULT_VOICE_FRAME_MS`
[INFO] [stdout]  --> src/network/voice/capture.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_FRAME_MS` and `DEFAULT_VOICE_SAMPLE_RATE_HZ`
[INFO] [stdout]  --> src/network/voice/runtime.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     DEFAULT_VOICE_SAMPLE_RATE_HZ,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]  --> src/network/voice/runtime.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     VoicePayloadFormatDto,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES`, `DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES`, `DEFAULT_VOICE_CAPTURE_MAX_GAIN`, `DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN`, `DEFAULT_VOICE_CAPTURE_TARGET_RMS`, `VoiceCaptureDiagnosticsSnapshot`, and `VoiceCaptureTuningConfig`
[INFO] [stdout]   --> src/network/voice/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VoiceCaptureDiagnosticsSnapshot,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     VoiceCaptureProcessor,
[INFO] [stdout] 12 |     VoiceCaptureTuningConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     DEFAULT_VOICE_CAPTURE_MAX_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_CAPTURE_TARGET_RMS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_PROXIMITY_FALLOFF_START_TILES` and `DEFAULT_PROXIMITY_RADIUS_TILES`
[INFO] [stdout]   --> src/network/voice/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     DEFAULT_PROXIMITY_FALLOFF_START_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     DEFAULT_PROXIMITY_RADIUS_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `QueuedVoicePacket` and `VoiceRouteMetadata`
[INFO] [stdout]   --> src/network/voice/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     QueuedVoicePacket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     VoiceRouteMetadata,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoicePlaybackConcealmentKind`, `VoicePlaybackQueueDrainError`, `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer`, `drain_runtime_packets_to_playback_queue_with_smoother`, and `drain_runtime_packets_to_playback_queue`
[INFO] [stdout]   --> src/network/voice/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     drain_runtime_packets_to_playback_queue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     drain_runtime_packets_to_playback_queue_with_smoother,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     drain_runtime_packets_to_playback_queue_with_smoother_and_concealer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     VoicePlaybackConcealmentKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     VoicePlaybackQueueDrainError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceRouteDecision` and `route_voice_packet`
[INFO] [stdout]   --> src/network/voice/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     route_voice_packet,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     VoiceRouteDecision,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER`, `DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS`, `DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN`, `DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS`, `DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS`, `VoiceJitterBufferDrainSummary`, `VoicePlayoutItem`, and `VoiceSpeakerBuffer`
[INFO] [stdout]   --> src/network/voice/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     VoiceJitterBufferDrainSummary,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     VoicePlayoutItem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     VoiceSpeakerBuffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 66 |     DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_OPUS_BITRATE_BPS`, `DEFAULT_OPUS_MAX_PACKET_BYTES`, `VoiceCodecConfig`, `VoiceCodecDecoder`, `VoiceCodecError`, `VoiceCodecKind`, and `voice_codec_kind_from_payload_format`
[INFO] [stdout]   --> src/network/voice/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     voice_codec_kind_from_payload_format,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     voice_payload_format_from_codec_kind,
[INFO] [stdout] 74 |     VoiceCodecConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     VoiceCodecDecoder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     VoiceCodecEncoder,
[INFO] [stdout] 77 |     VoiceCodecError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     VoiceCodecFrame,
[INFO] [stdout] 79 |     VoiceCodecKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     VoicePlaybackDecoderRuntime,
[INFO] [stdout] 81 |     DEFAULT_OPUS_BITRATE_BPS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     DEFAULT_OPUS_MAX_PACKET_BYTES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/systems/navigation.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let player_pos = vec2(p_x, p_y);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactable_tile`
[INFO] [stdout]    --> src/systems/navigation.rs:452:13
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let interactable_tile = (interactable.x as usize, interactable.y as usize);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactable_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout]  63 |                     HostToClientMessage::JoinAccepted(accepted) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  79 |                     HostToClientMessage::JoinRejected(rejected) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  93 |                     HostToClientMessage::LobbySnapshot(snapshot) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 140 |                     HostToClientMessage::StartMatch(start_match) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spawn_room` is never read
[INFO] [stdout]  --> src/map/loader.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct MapData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub spawn_room: String,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MapData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/map/loader.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Room {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Room` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/map/loader.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Doorway {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 46 |     pub room: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Doorway` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `obj_type` is never read
[INFO] [stdout]   --> src/map/loader.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Object {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 55 |     #[serde(rename = "type")]
[INFO] [stdout] 56 |     pub obj_type: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Scan` and `EatCorpse` are never constructed
[INFO] [stdout]   --> src/entities/action.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ActionKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout]  8 |     Kill,
[INFO] [stdout]  9 |     Scan,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     EatCorpse,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_dead`, `is_ghost`, and `emit_audio` are never used
[INFO] [stdout]    --> src/entities/player.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl Player {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  24 |     /// Create a new player at the given grid position with default values.
[INFO] [stdout]  25 |     pub fn new(entity_id: EntityId, x: f32, y: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_audio(&self, queue: &mut Vec<AudioEvent>, cue: AudioCue) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `virus` is never used
[INFO] [stdout]   --> src/entities/role.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Role {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn virus() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_dead`, `is_ghost`, and `can_be_killed` are never used
[INFO] [stdout]   --> src/entities/life_state.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LifeState {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_be_killed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> src/entities/corpse.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Corpse {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn report(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_corpse`, `player_exists`, `corpse_exists`, `corpse_for_player`, `corpse_for_player_mut`, and `draw_corpses` are never used
[INFO] [stdout]    --> src/entities/entity_manager.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl EntityManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_corpse(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn player_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn corpse_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn corpse_for_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn corpse_for_player_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn draw_corpses(&self, tile_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `total_votes` is never used
[INFO] [stdout]   --> src/entities/vote_tally.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl VoteTally {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 12 |     /// Returns the total number of votes cast (skip + all player votes).
[INFO] [stdout] 13 |     pub fn total_votes(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `midpoint` is never used
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Segment {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn midpoint(&self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distance` is never read
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct RayHit {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub distance: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RayHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_debug` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn toggle_continuous_fov_debug() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_visuals` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn toggle_continuous_fov_visuals() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_entity_visibility` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn toggle_continuous_entity_visibility() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_corpses` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn draw_corpses<'a>(corpses: impl Iterator<Item = &'a Corpse>, tile_size: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VisibleTiles` is never constructed
[INFO] [stdout]   --> src/rendering/fov.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct VisibleTiles{
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_visible`, and `set_visible` are never used
[INFO] [stdout]   --> src/rendering/fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl VisibleTiles{
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(width: usize, height: usize) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_visible(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_visible(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_visible_tiles` is never used
[INFO] [stdout]   --> src/rendering/fov.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn compute_visible_tiles(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_screen` is never used
[INFO] [stdout]    --> src/rendering/screen.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn render_meeting_screen(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_interaction_prompt` is never used
[INFO] [stdout]   --> src/ui/hud.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn render_interaction_prompt(interactable: &Interactable) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_overlay` is never used
[INFO] [stdout]    --> src/ui/meeting.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn render_meeting_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `task_object_id` is never used
[INFO] [stdout]   --> src/systems/interaction_target.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl InteractionTarget {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn task_object_id(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TightCornerGroup` is never constructed
[INFO] [stdout]   --> src/systems/navigation.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct TightCornerGroup {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_tight_corner_groups` is never used
[INFO] [stdout]   --> src/systems/navigation.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn detect_tight_corner_groups(_corners: &[CornerWaypoint]) -> Vec<TightCornerGroup> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrowRotationState` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct ArrowRotationState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROTATION_ACCELERATION` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ROTATION_ACCELERATION: f32 = 0.15;      
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROTATION_SPEED` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const MAX_ROTATION_SPEED: f32 = 0.4;          
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DAMPING_FACTOR` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const DAMPING_FACTOR: f32 = 0.85;             
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_arrow_rotation` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn update_arrow_rotation(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKAHEAD_TILES` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const LOOKAHEAD_TILES: usize = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smoothed_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn get_smoothed_target(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lookahead_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn get_lookahead_target(p_x: f32, p_y: f32, waypoints: &[(usize, usize)], lookahead_distance: f32) -> Option<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathProgress` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | struct PathProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_progress` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn calculate_path_progress(_p_tile: (usize, usize)) -> PathProgress {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_remaining_path_distance` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn calculate_remaining_path_distance(waypoints: &[(usize, usize)]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_angle` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn smooth_angle(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_rotation_smoothing` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:745:4
[INFO] [stdout]     |
[INFO] [stdout] 745 | fn apply_rotation_smoothing(target_angle: f32, _tile_size: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `player_id`, `corpse_id`, and `task_object_id` are never used
[INFO] [stdout]   --> src/systems/interaction_slot.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl InteractionSlot {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn player_id(&self) -> Option<EntityId> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn corpse_id(&self) -> Option<EntityId> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn task_object_id(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `get_mut` are never used
[INFO] [stdout]    --> src/systems/interaction_slot.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl InteractionSlots {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_mut(&mut self, channel: InteractionChannel) -> &mut InteractionSlot {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_report_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn discover_report_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_faction_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn discover_faction_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_role_target` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn discover_role_target(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `populate_interaction_slots` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn populate_interaction_slots(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_corpse` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn nearest_visible_corpse(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_player` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn nearest_visible_player(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion` is never used
[INFO] [stdout]   --> src/systems/app_state.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl MeetingPhase {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 60 |     pub fn is_discussion(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion_active` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl MeetingState {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_discussion_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_meeting_results` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn enter_meeting_results() -> MatchState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ForceLocalRole` is never constructed
[INFO] [stdout]   --> src/systems/match_setup.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum RoleDebugOverride {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 60 |     None,
[INFO] [stdout] 61 |     ForceLocalRole(RoleKind),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoleDebugOverride` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/systems/match_setup.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SpawnedMatchPlayerRecord {
[INFO] [stdout]    |            ------------------------ fields in this struct
[INFO] [stdout] 72 |     pub entity_id: EntityId,
[INFO] [stdout] 73 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 74 |     pub is_local: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub is_static_test_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub role_kind: RoleKind,
[INFO] [stdout] 77 |     pub spawn_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 78 |     pub spawn_room: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 79 |     pub spawn_center_x: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     pub spawn_center_y: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     pub actor_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 82 |     pub actor_y: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnedMatchPlayerRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `object_id` is never read
[INFO] [stdout]  --> src/tasks/minigame.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HoldTask {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 5 |     pub object_id: String,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HoldTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_task` is never used
[INFO] [stdout]   --> src/tasks/manager.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl TaskManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn has_task(&self, object_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_task_list_task`, `appears_in_task_list`, and `uses_task_navigation` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ActivityKind {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 11 |     pub fn is_task_list_task(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn appears_in_task_list(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn uses_task_navigation(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LocalOnly` is never constructed
[INFO] [stdout]   --> src/tasks/activity.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ActivityCompletionPolicy {
[INFO] [stdout]    |          ------------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     LocalOnly,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActivityCompletionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `role_action` and `world_action` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActivityLaunchSpec {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn role_action(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn world_action(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `task_list_task` is never used
[INFO] [stdout]    --> src/tasks/activity.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ActiveActivity {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn task_list_task(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/audio/engine.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl VoiceStreamBuffer {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn clear(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `output_info`, `pending_sound_count`, and `clear_voice_stream` are never used
[INFO] [stdout]    --> src/audio/engine.rs:295:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl AudioEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn output_info(&self) -> &AudioOutputDeviceInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn pending_sound_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn clear_voice_stream(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_blocker_entries` is never used
[INFO] [stdout]   --> src/audio/propagation.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn count_blocker_entries(steps: &[AudioRayStep]) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEBUG_VOICE_TONE_FREQUENCY_HZ` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const DEFAULT_DEBUG_VOICE_TONE_FREQUENCY_HZ: f32 = 660.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEBUG_VOICE_TONE_GAIN` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const DEFAULT_DEBUG_VOICE_TONE_GAIN: f32 = 0.20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix_voice_frames` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn mix_voice_frames(frames: &[VoiceAudioFrame], sample_rate_hz: u32) -> VoiceAudioFrame {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `buffered_sample_count` is never used
[INFO] [stdout]    --> src/audio/voice_io/capture.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceCaptureRuntime {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn buffered_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_pcm_f32_le` is never used
[INFO] [stdout]   --> src/audio/voice_io/codec.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn encode_pcm_f32_le(samples: &[f32]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_mic_started_logged` is never read
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VoiceCaptureDebugState {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     open_mic_started_logged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VoiceCaptureDebugState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `capture_enabled`, `runtime_started`, `ensure_capture_runtime_started`, and `update_open_mic_debug` are never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl VoiceCaptureDebugState {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn capture_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn runtime_started(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn ensure_capture_runtime_started(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_open_mic_debug(&mut self, context_label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_frame` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn generate_debug_voice_frame(sample_rate_hz: u32) -> VoiceAudioFrame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_payload` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn generate_debug_voice_payload(sample_rate_hz: u32) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_tone_frame` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn generate_debug_voice_tone_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_tone_envelope` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn debug_tone_envelope(index: usize, sample_count: usize, fade_samples: usize) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `silence`, `is_empty`, `with_gain`, and `encode_payload_f32_legacy` are never used
[INFO] [stdout]   --> src/audio/voice_io/frame.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VoiceAudioFrame {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn silence(sample_count: usize, sample_rate_hz: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_gain(&self, gain: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn encode_payload_f32_legacy(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VoiceFrameChunker` is never constructed
[INFO] [stdout]   --> src/audio/voice_io/frame.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct VoiceFrameChunker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_samples`, `pending_sample_count`, and `frame_sample_count` are never used
[INFO] [stdout]    --> src/audio/voice_io/frame.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl VoiceFrameChunker {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  72 |     pub fn new(sample_rate_hz: u32, frame_ms: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn push_samples(&mut self, samples: &[f32]) -> Vec<VoiceAudioFrame> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn pending_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn frame_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/audio/voice_io/playback_queue.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl VoicePlaybackQueue {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/audio/voice_io/smoothing.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl VoiceSmoothingConfig {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ramp_ms: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_match_session` is never used
[INFO] [stdout]    --> src/screens/in_match.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn create_match_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `offline` is never used
[INFO] [stdout]   --> src/screens/lobby.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl LobbyNetworkUiInfo {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn offline() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lobby_session` is never used
[INFO] [stdout]    --> src/screens/lobby.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn create_lobby_session(map_data: &MapData) -> LobbySession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkAuthorityMode` is never used
[INFO] [stdout]   --> src/network/dto.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum NetworkAuthorityMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `revealed` is never used
[INFO] [stdout]    --> src/network/dto.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl PublicRoleDataDto {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn revealed(role_kind: RoleKindDto) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/network/ids.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkMessageSequence {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn value(self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/network/ids.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl NetworkTick {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(value: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_received_tick` is never read
[INFO] [stdout]   --> src/network/runtime.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ClientNetworkRuntime {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_received_tick: NetworkTick,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientNetworkRuntime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authority_mode`, `is_offline`, `is_host`, `is_client`, `is_authoritative_simulation`, and `local_network_player_id` are never used
[INFO] [stdout]    --> src/network/runtime.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl NetworkRuntime {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn authority_mode(&self) -> NetworkAuthorityMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_offline(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_host(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn is_client(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_authoritative_simulation(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn local_network_player_id(&self) -> Option<NetworkPlayerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_room_code`, `has_player`, and `connected_player` are never used
[INFO] [stdout]    --> src/network/runtime.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl HostNetworkRuntime {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn clear_room_code(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_player(&self, player_id: NetworkPlayerId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn connected_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_connected`, `mark_failed`, and `apply_join_rejected` are never used
[INFO] [stdout]    --> src/network/runtime.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl ClientNetworkRuntime {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn mark_connected(&mut self, assigned_player_id: NetworkPlayerId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn mark_failed(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn apply_join_rejected(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/network/entity_map.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl NetworkEntityMap {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn unregister_entity_by_network_id(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn network_entity_for_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn network_player_for_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn contains_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn contains_local_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn contains_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn entity_mapping_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn player_mapping_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     EntityMap(NetworkEntityMapError),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     EntityMap(NetworkEntityMapError),
[INFO] [stdout] 44 +     EntityMap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner_network_entity_id` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     MissingCorpseOwner {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 46 |         owner_network_entity_id: NetworkEntityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkChannel` is never used
[INFO] [stdout]  --> src/network/transport.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum NetworkChannel {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HostRecipient` is never used
[INFO] [stdout]   --> src/network/transport.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum HostRecipient {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientToHostPacket` is never constructed
[INFO] [stdout]   --> src/network/transport.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ClientToHostPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostToClientPacket` is never constructed
[INFO] [stdout]   --> src/network/transport.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct HostToClientPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransportError` is never used
[INFO] [stdout]   --> src/network/transport.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum TransportError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TransportResult` is never used
[INFO] [stdout]   --> src/network/transport.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub type TransportResult<T> = Result<T, TransportError>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NetworkTransport` is never used
[INFO] [stdout]   --> src/network/transport.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait NetworkTransport {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeNetworkTransport` is never constructed
[INFO] [stdout]   --> src/network/fake_transport.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FakeNetworkTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `clear` are never used
[INFO] [stdout]   --> src/network/fake_transport.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FakeNetworkTransport {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeJoinExchangeResult` is never constructed
[INFO] [stdout]   --> src/network/fake_transport.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct FakeJoinExchangeResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FakeJoinError` is never used
[INFO] [stdout]   --> src/network/fake_transport.rs:90:10
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub enum FakeJoinError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_fake_join_handshake` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn run_fake_join_handshake(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_request_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn build_join_request_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_accepted_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn build_join_accepted_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Io(io::Error),
[INFO] [stdout]    |     -- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Io(io::Error),
[INFO] [stdout] 27 +     Io(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Serialize(serde_json::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Serialize(serde_json::Error),
[INFO] [stdout] 28 +     Serialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Deserialize(serde_json::Error),
[INFO] [stdout] 29 +     Deserialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |     InvalidAddress(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     InvalidAddress(String),
[INFO] [stdout] 30 +     InvalidAddress(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind_dev_localhost` and `drain_client_messages` are never used
[INFO] [stdout]    --> src/network/udp_transport.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl UdpHostTransport {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn bind_dev_localhost() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn drain_client_messages(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `connect_to_dev_localhost_host` is never used
[INFO] [stdout]    --> src/network/udp_transport.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl UdpClientTransport {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 284 |     pub fn connect_to_dev_localhost_host() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `sample_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl NetworkTransformInterpolator {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `interpolator_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl NetworkInterpolationSet {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn remove_entity(&mut self, network_entity_id: NetworkEntityId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn interpolator_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_NETWORK_VOICE_FRAME_MS` is never used
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const LIVE_NETWORK_VOICE_FRAME_MS: u32 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HostLiveVoiceFrameBuildError` is never used
[INFO] [stdout]   --> src/network/game_flow/voice_flow.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum HostLiveVoiceFrameBuildError {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_host_live_voice_packet` is never used
[INFO] [stdout]    --> src/network/game_flow/voice_flow.rs:443:4
[INFO] [stdout]     |
[INFO] [stdout] 443 | fn build_host_live_voice_packet(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_WARN_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CONNECTION_WARN_AFTER_SECONDS: f32 = 5.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_TIMEOUT_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CONNECTION_TIMEOUT_AFTER_SECONDS: f32 = 15.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_sent_seconds` is never read
[INFO] [stdout]   --> src/network/reliability.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct PendingReliableLifecycleEvent {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub first_sent_seconds: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingReliableLifecycleEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]    --> src/network/reliability.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ReliableHostLifecycleTracker {
[INFO] [stdout]     | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionHealth` is never used
[INFO] [stdout]    --> src/network/reliability.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionHealth {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `host_health`, `client_health`, and `clients` are never used
[INFO] [stdout]    --> src/network/reliability.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl HeartbeatTracker {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn host_health(&self, now_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn client_health(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn clients(&self) -> &[HeartbeatPeerState] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_to_health` is never used
[INFO] [stdout]    --> src/network/reliability.rs:336:4
[INFO] [stdout]     |
[INFO] [stdout] 336 | fn elapsed_to_health(elapsed_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `config` and `hangover_remaining_frames` are never used
[INFO] [stdout]    --> src/network/voice/capture.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl VoiceCaptureProcessor {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn config(&self) -> VoiceCaptureTuningConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn hangover_remaining_frames(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_match_state_dto` is never used
[INFO] [stdout]   --> src/network/voice/context.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl VoiceGameContext {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn from_match_state_dto(match_state: MatchStateDto) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]   --> src/network/voice/packet.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl QueuedVoicePacket {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 80 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `speaker_state_count` is never used
[INFO] [stdout]   --> src/network/voice/playback.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl VoicePlaybackSmoother {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn speaker_state_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `speaker_state_count` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl VoicePlaybackConcealer {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn speaker_state_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn drain_runtime_packets_to_playback_queue(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn drain_runtime_packets_to_playback_queue_with_smoother(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn drain_runtime_packets_to_playback_queue_with_smoother_and_concealer(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_ghost` is never used
[INFO] [stdout]   --> src/network/voice/routing.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl VoiceParticipant {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn is_ghost(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `route_voice_packet` is never used
[INFO] [stdout]   --> src/network/voice/routing.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn route_voice_packet(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network/voice/runtime.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceRuntime {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn with_full_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn take_queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn take_all_queued_packets(&mut self) -> Vec<QueuedVoicePacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn total_queued_packets(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn speaker_buffer_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_VOICE_CODEC_FRAME_SAMPLES` is never used
[INFO] [stdout]   --> src/network/voice/codec.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const SUPPORTED_VOICE_CODEC_FRAME_SAMPLES: usize = 960;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `pcm_i16_default` is never used
[INFO] [stdout]   --> src/network/voice/codec.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl VoiceCodecConfig {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl VoiceCodecFrame {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 150 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PcmI16Le` is never constructed
[INFO] [stdout]    --> src/network/voice/codec.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub enum VoiceCodecEncoder {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 156 |     PcmI16Le {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `pcm_i16_default` and `kind` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VoiceCodecEncoder {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 181 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PcmI16Le` is never constructed
[INFO] [stdout]    --> src/network/voice/codec.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub enum VoiceCodecDecoder {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 265 |     PcmI16Le {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `pcm_i16_default`, `opus_default`, and `kind` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl VoiceCodecDecoder {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 290 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn opus_default() -> Result<Self, VoiceCodecError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `voice_codec_kind_from_payload_format` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub fn voice_codec_kind_from_payload_format(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `speaker_decoder_count` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 508 | impl VoicePlaybackDecoderRuntime {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout] 509 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     pub fn speaker_decoder_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Deserialize` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/protocol.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum RendezvousProtocolError {
[INFO] [stdout]    |          ----------------------- variant in this enum
[INFO] [stdout] 79 |     Serialize(serde_json::Error),
[INFO] [stdout] 80 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RendezvousProtocolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_slice` is never used
[INFO] [stdout]   --> src/network/rendezvous/protocol.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl RendezvousClientWireMessage {
[INFO] [stdout]    | -------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> src/network/rendezvous/protocol.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl RendezvousServerWireMessage {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout]  98 |     pub fn new(message: RendezvousToGameMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> src/network/rendezvous/protocol.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl PeerPunchWireMessage {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new(message: PeerPunchMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_ROOM_TTL_SECONDS` is never used
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const DEFAULT_ROOM_TTL_SECONDS: f32 = 30.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerConfig` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RendezvousServerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousRoom` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RendezvousRoom {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerAction` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct RendezvousServerAction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerState` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct RendezvousServerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network/rendezvous/server_state.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl RendezvousServerState {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout]  58 |     pub fn new(config: RendezvousServerConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn handle_message(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn expire_stale_rooms(&mut self, now_seconds: f32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn room_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn room(&self, room_code: &str) -> Option<&RendezvousRoom> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn handle_register_host(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn handle_host_keepalive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn handle_resolve_room(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     fn handle_client_keepalive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reject` is never used
[INFO] [stdout]    --> src/network/rendezvous/server_state.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn reject(recipient_addr: SocketAddr, reason: String) -> RendezvousServerAction {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `role`, `room_code`, `observed_addr`, `client_addr`, `has_pending_outbound`, and `reset` are never used
[INFO] [stdout]    --> src/network/rendezvous/client.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RendezvousClient {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn role(&self) -> Option<RendezvousClientRole> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn room_code(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn observed_addr(&self) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn client_addr(&self) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn has_pending_outbound(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling Test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `vote_target::VoteTarget`
[INFO] [stdout]   --> src/entities/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use vote_target::VoteTarget;
[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: `vote_tally::VoteTally`
[INFO] [stdout]   --> src/entities/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use vote_tally::VoteTally;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `meeting_outcome::MeetingOutcome`
[INFO] [stdout]   --> src/entities/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use meeting_outcome::MeetingOutcome;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `analyse_voice_activity`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     analyse_voice_activity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceCaptureError`, `VoiceCaptureRuntime`, and `VoiceInputDeviceInfo`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     VoiceCaptureError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     VoiceCaptureRuntime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     VoiceInputDeviceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_debug_voice_frame`, `generate_debug_voice_payload`, and `generate_debug_voice_tone_frame`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     generate_debug_voice_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     generate_debug_voice_payload,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     generate_debug_voice_tone_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceFrameChunker` and `frame_sample_count_for_sample_rate`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     frame_sample_count_for_sample_rate,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     VoiceAudioFrame,
[INFO] [stdout] 42 |     VoiceFrameChunker,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_SMOOTHING_RAMP_MS` and `smoothing_ramp_sample_count`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     smoothing_ramp_sample_count,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     VoiceSmoothingConfig,
[INFO] [stdout] 50 |     DEFAULT_VOICE_SMOOTHING_RAMP_MS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     VoicePayloadFormatDto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_kind_from_dto`
[INFO] [stdout]   --> src/network/game_flow/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     role_kind_from_dto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES`, `DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES`, `DEFAULT_VOICE_CAPTURE_MAX_GAIN`, `DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN`, `DEFAULT_VOICE_CAPTURE_TARGET_RMS`, `VoiceCaptureDiagnosticsSnapshot`, and `VoiceCaptureTuningConfig`
[INFO] [stdout]   --> src/network/voice/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VoiceCaptureDiagnosticsSnapshot,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     VoiceCaptureProcessor,
[INFO] [stdout] 12 |     VoiceCaptureTuningConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     DEFAULT_VOICE_CAPTURE_MAX_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_CAPTURE_TARGET_RMS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_PROXIMITY_FALLOFF_START_TILES` and `DEFAULT_PROXIMITY_RADIUS_TILES`
[INFO] [stdout]   --> src/network/voice/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     DEFAULT_PROXIMITY_FALLOFF_START_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     DEFAULT_PROXIMITY_RADIUS_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueuedVoicePacket`
[INFO] [stdout]   --> src/network/voice/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     QueuedVoicePacket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoicePlaybackConcealmentKind`, `VoicePlaybackQueueDrainError`, `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer`, `drain_runtime_packets_to_playback_queue_with_smoother`, and `drain_runtime_packets_to_playback_queue`
[INFO] [stdout]   --> src/network/voice/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     drain_runtime_packets_to_playback_queue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     drain_runtime_packets_to_playback_queue_with_smoother,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     drain_runtime_packets_to_playback_queue_with_smoother_and_concealer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     VoicePlaybackConcealmentKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     VoicePlaybackQueueDrainError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceRouteDecision` and `route_voice_packet`
[INFO] [stdout]   --> src/network/voice/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     route_voice_packet,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     VoiceRouteDecision,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER`, `DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS`, `DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN`, `DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS`, `DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS`, `VoiceJitterBufferDrainSummary`, `VoicePlayoutItem`, and `VoiceSpeakerBuffer`
[INFO] [stdout]   --> src/network/voice/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     VoiceJitterBufferDrainSummary,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     VoicePlayoutItem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     VoiceSpeakerBuffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 66 |     DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_OPUS_BITRATE_BPS`, `DEFAULT_OPUS_MAX_PACKET_BYTES`, `VoiceCodecConfig`, `VoiceCodecDecoder`, `VoiceCodecError`, `VoiceCodecKind`, and `voice_codec_kind_from_payload_format`
[INFO] [stdout]   --> src/network/voice/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     voice_codec_kind_from_payload_format,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     voice_payload_format_from_codec_kind,
[INFO] [stdout] 74 |     VoiceCodecConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     VoiceCodecDecoder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     VoiceCodecEncoder,
[INFO] [stdout] 77 |     VoiceCodecError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     VoiceCodecFrame,
[INFO] [stdout] 79 |     VoiceCodecKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     VoicePlaybackDecoderRuntime,
[INFO] [stdout] 81 |     DEFAULT_OPUS_BITRATE_BPS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     DEFAULT_OPUS_MAX_PACKET_BYTES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/systems/navigation.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let player_pos = vec2(p_x, p_y);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactable_tile`
[INFO] [stdout]    --> src/systems/navigation.rs:452:13
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let interactable_tile = (interactable.x as usize, interactable.y as usize);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactable_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout]  63 |                     HostToClientMessage::JoinAccepted(accepted) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  79 |                     HostToClientMessage::JoinRejected(rejected) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  93 |                     HostToClientMessage::LobbySnapshot(snapshot) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 140 |                     HostToClientMessage::StartMatch(start_match) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spawn_room` is never read
[INFO] [stdout]  --> src/map/loader.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct MapData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub spawn_room: String,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MapData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/map/loader.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Room {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Room` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/map/loader.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Doorway {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 46 |     pub room: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Doorway` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `obj_type` is never read
[INFO] [stdout]   --> src/map/loader.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Object {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 55 |     #[serde(rename = "type")]
[INFO] [stdout] 56 |     pub obj_type: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Scan` and `EatCorpse` are never constructed
[INFO] [stdout]   --> src/entities/action.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ActionKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout]  8 |     Kill,
[INFO] [stdout]  9 |     Scan,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     EatCorpse,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_dead`, `is_ghost`, and `emit_audio` are never used
[INFO] [stdout]    --> src/entities/player.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl Player {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  24 |     /// Create a new player at the given grid position with default values.
[INFO] [stdout]  25 |     pub fn new(entity_id: EntityId, x: f32, y: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_audio(&self, queue: &mut Vec<AudioEvent>, cue: AudioCue) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_dead`, `is_ghost`, and `can_be_killed` are never used
[INFO] [stdout]   --> src/entities/life_state.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LifeState {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_be_killed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> src/entities/corpse.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Corpse {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn report(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_corpse`, `corpse_exists`, `corpse_for_player_mut`, and `draw_corpses` are never used
[INFO] [stdout]    --> src/entities/entity_manager.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl EntityManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_corpse(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn corpse_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn corpse_for_player_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn draw_corpses(&self, tile_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `midpoint` is never used
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Segment {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn midpoint(&self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distance` is never read
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct RayHit {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub distance: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RayHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_debug` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn toggle_continuous_fov_debug() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_visuals` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn toggle_continuous_fov_visuals() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_entity_visibility` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn toggle_continuous_entity_visibility() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_corpses` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn draw_corpses<'a>(corpses: impl Iterator<Item = &'a Corpse>, tile_size: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VisibleTiles` is never constructed
[INFO] [stdout]   --> src/rendering/fov.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct VisibleTiles{
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_visible`, and `set_visible` are never used
[INFO] [stdout]   --> src/rendering/fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl VisibleTiles{
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(width: usize, height: usize) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_visible(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_visible(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_visible_tiles` is never used
[INFO] [stdout]   --> src/rendering/fov.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn compute_visible_tiles(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_screen` is never used
[INFO] [stdout]    --> src/rendering/screen.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn render_meeting_screen(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_interaction_prompt` is never used
[INFO] [stdout]   --> src/ui/hud.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn render_interaction_prompt(interactable: &Interactable) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_overlay` is never used
[INFO] [stdout]    --> src/ui/meeting.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn render_meeting_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TightCornerGroup` is never constructed
[INFO] [stdout]   --> src/systems/navigation.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct TightCornerGroup {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_tight_corner_groups` is never used
[INFO] [stdout]   --> src/systems/navigation.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn detect_tight_corner_groups(_corners: &[CornerWaypoint]) -> Vec<TightCornerGroup> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrowRotationState` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct ArrowRotationState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROTATION_ACCELERATION` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ROTATION_ACCELERATION: f32 = 0.15;      
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROTATION_SPEED` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const MAX_ROTATION_SPEED: f32 = 0.4;          
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DAMPING_FACTOR` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const DAMPING_FACTOR: f32 = 0.85;             
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_arrow_rotation` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn update_arrow_rotation(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKAHEAD_TILES` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const LOOKAHEAD_TILES: usize = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smoothed_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn get_smoothed_target(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lookahead_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn get_lookahead_target(p_x: f32, p_y: f32, waypoints: &[(usize, usize)], lookahead_distance: f32) -> Option<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathProgress` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | struct PathProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_progress` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn calculate_path_progress(_p_tile: (usize, usize)) -> PathProgress {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_remaining_path_distance` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn calculate_remaining_path_distance(waypoints: &[(usize, usize)]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_angle` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn smooth_angle(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_rotation_smoothing` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:745:4
[INFO] [stdout]     |
[INFO] [stdout] 745 | fn apply_rotation_smoothing(target_angle: f32, _tile_size: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_mut` is never used
[INFO] [stdout]    --> src/systems/interaction_slot.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl InteractionSlots {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_mut(&mut self, channel: InteractionChannel) -> &mut InteractionSlot {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_report_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn discover_report_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_faction_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn discover_faction_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_role_target` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn discover_role_target(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `populate_interaction_slots` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn populate_interaction_slots(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_corpse` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn nearest_visible_corpse(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_player` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn nearest_visible_player(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_slots_with_target` is never used
[INFO] [stdout]   --> src/systems/slot_verification.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn make_slots_with_target(channel: InteractionChannel, target: InteractionTarget) -> InteractionSlots {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion` is never used
[INFO] [stdout]   --> src/systems/app_state.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl MeetingPhase {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 60 |     pub fn is_discussion(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion_active` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl MeetingState {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_discussion_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_meeting_results` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn enter_meeting_results() -> MatchState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ForceLocalRole` is never constructed
[INFO] [stdout]   --> src/systems/match_setup.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum RoleDebugOverride {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 60 |     None,
[INFO] [stdout] 61 |     ForceLocalRole(RoleKind),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoleDebugOverride` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/systems/match_setup.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SpawnedMatchPlayerRecord {
[INFO] [stdout]    |            ------------------------ fields in this struct
[INFO] [stdout] 72 |     pub entity_id: EntityId,
[INFO] [stdout] 73 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 74 |     pub is_local: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub is_static_test_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub role_kind: RoleKind,
[INFO] [stdout] 77 |     pub spawn_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 78 |     pub spawn_room: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 79 |     pub spawn_center_x: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     pub spawn_center_y: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     pub actor_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 82 |     pub actor_y: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnedMatchPlayerRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `object_id` is never read
[INFO] [stdout]  --> src/tasks/minigame.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HoldTask {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 5 |     pub object_id: String,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HoldTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_task` is never used
[INFO] [stdout]   --> src/tasks/manager.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl TaskManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn has_task(&self, object_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_task_list_task`, `appears_in_task_list`, and `uses_task_navigation` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ActivityKind {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 11 |     pub fn is_task_list_task(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn appears_in_task_list(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn uses_task_navigation(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LocalOnly` is never constructed
[INFO] [stdout]   --> src/tasks/activity.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ActivityCompletionPolicy {
[INFO] [stdout]    |          ------------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     LocalOnly,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActivityCompletionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `role_action` and `world_action` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActivityLaunchSpec {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn role_action(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn world_action(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `task_list_task` is never used
[INFO] [stdout]    --> src/tasks/activity.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ActiveActivity {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn task_list_task(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `output_info`, `pending_sound_count`, and `clear_voice_stream` are never used
[INFO] [stdout]    --> src/audio/engine.rs:295:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl AudioEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn output_info(&self) -> &AudioOutputDeviceInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn pending_sound_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn clear_voice_stream(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `buffered_sample_count` is never used
[INFO] [stdout]    --> src/audio/voice_io/capture.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceCaptureRuntime {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn buffered_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_mic_started_logged` is never read
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VoiceCaptureDebugState {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     open_mic_started_logged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VoiceCaptureDebugState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `capture_enabled`, `runtime_started`, `ensure_capture_runtime_started`, and `update_open_mic_debug` are never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl VoiceCaptureDebugState {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn capture_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn runtime_started(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn ensure_capture_runtime_started(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_open_mic_debug(&mut self, context_label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/audio/voice_io/smoothing.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl VoiceSmoothingConfig {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ramp_ms: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_match_session` is never used
[INFO] [stdout]    --> src/screens/in_match.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn create_match_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `offline` is never used
[INFO] [stdout]   --> src/screens/lobby.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl LobbyNetworkUiInfo {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn offline() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lobby_session` is never used
[INFO] [stdout]    --> src/screens/lobby.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn create_lobby_session(map_data: &MapData) -> LobbySession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkAuthorityMode` is never used
[INFO] [stdout]   --> src/network/dto.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum NetworkAuthorityMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `revealed` is never used
[INFO] [stdout]    --> src/network/dto.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl PublicRoleDataDto {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn revealed(role_kind: RoleKindDto) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/network/ids.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkMessageSequence {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn value(self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/network/ids.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl NetworkTick {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(value: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_received_tick` is never read
[INFO] [stdout]   --> src/network/runtime.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ClientNetworkRuntime {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_received_tick: NetworkTick,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientNetworkRuntime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authority_mode`, `is_offline`, `is_host`, `is_client`, `is_authoritative_simulation`, and `local_network_player_id` are never used
[INFO] [stdout]    --> src/network/runtime.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl NetworkRuntime {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn authority_mode(&self) -> NetworkAuthorityMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_offline(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_host(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn is_client(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_authoritative_simulation(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn local_network_player_id(&self) -> Option<NetworkPlayerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_room_code`, `has_player`, and `connected_player` are never used
[INFO] [stdout]    --> src/network/runtime.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl HostNetworkRuntime {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn clear_room_code(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_player(&self, player_id: NetworkPlayerId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn connected_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_connected` and `mark_failed` are never used
[INFO] [stdout]    --> src/network/runtime.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl ClientNetworkRuntime {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn mark_connected(&mut self, assigned_player_id: NetworkPlayerId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn mark_failed(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `network_entity_for_network_player`, `network_player_for_network_entity`, `contains_network_entity`, `contains_local_entity`, and `contains_network_player` are never used
[INFO] [stdout]    --> src/network/entity_map.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl NetworkEntityMap {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn network_entity_for_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn network_player_for_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn contains_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn contains_local_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn contains_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     EntityMap(NetworkEntityMapError),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     EntityMap(NetworkEntityMapError),
[INFO] [stdout] 44 +     EntityMap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner_network_entity_id` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     MissingCorpseOwner {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 46 |         owner_network_entity_id: NetworkEntityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReliableUnordered` and `UnreliableSequenced` are never constructed
[INFO] [stdout]  --> src/network/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum NetworkChannel {
[INFO] [stdout]   |          -------------- variants in this enum
[INFO] [stdout] 6 |     ReliableOrdered,
[INFO] [stdout] 7 |     ReliableUnordered,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     UnreliableSequenced,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NetworkChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Player` and `Broadcast` are never constructed
[INFO] [stdout]   --> src/network/transport.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum HostRecipient {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 13 |     PendingClient,
[INFO] [stdout] 14 |     Player(NetworkPlayerId),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 15 |     Broadcast,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HostRecipient` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotConnected`, `SendFailed`, and `ReceiveFailed` are never constructed
[INFO] [stdout]   --> src/network/transport.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 34 |     NotConnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 35 |     SendFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |     ReceiveFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/network/fake_transport.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FakeNetworkTransport {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_request_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn build_join_request_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_accepted_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn build_join_accepted_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Io(io::Error),
[INFO] [stdout]    |     -- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Io(io::Error),
[INFO] [stdout] 27 +     Io(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Serialize(serde_json::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Serialize(serde_json::Error),
[INFO] [stdout] 28 +     Serialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Deserialize(serde_json::Error),
[INFO] [stdout] 29 +     Deserialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind_dev_localhost` and `drain_client_messages` are never used
[INFO] [stdout]    --> src/network/udp_transport.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl UdpHostTransport {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn bind_dev_localhost() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn drain_client_messages(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `connect_to_dev_localhost_host` is never used
[INFO] [stdout]    --> src/network/udp_transport.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl UdpClientTransport {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 284 |     pub fn connect_to_dev_localhost_host() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `sample_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl NetworkTransformInterpolator {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `interpolator_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl NetworkInterpolationSet {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn remove_entity(&mut self, network_entity_id: NetworkEntityId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn interpolator_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_NETWORK_VOICE_FRAME_MS` is never used
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const LIVE_NETWORK_VOICE_FRAME_MS: u32 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_WARN_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CONNECTION_WARN_AFTER_SECONDS: f32 = 5.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_TIMEOUT_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CONNECTION_TIMEOUT_AFTER_SECONDS: f32 = 15.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_sent_seconds` is never read
[INFO] [stdout]   --> src/network/reliability.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct PendingReliableLifecycleEvent {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub first_sent_seconds: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingReliableLifecycleEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]    --> src/network/reliability.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ReliableHostLifecycleTracker {
[INFO] [stdout]     | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionHealth` is never used
[INFO] [stdout]    --> src/network/reliability.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionHealth {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `host_health`, `client_health`, and `clients` are never used
[INFO] [stdout]    --> src/network/reliability.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl HeartbeatTracker {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn host_health(&self, now_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn client_health(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn clients(&self) -> &[HeartbeatPeerState] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_to_health` is never used
[INFO] [stdout]    --> src/network/reliability.rs:336:4
[INFO] [stdout]     |
[INFO] [stdout] 336 | fn elapsed_to_health(elapsed_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `config` is never used
[INFO] [stdout]    --> src/network/voice/capture.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl VoiceCaptureProcessor {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn config(&self) -> VoiceCaptureTuningConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn drain_runtime_packets_to_playback_queue(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn drain_runtime_packets_to_playback_queue_with_smoother(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_jitter_settings`, `take_queued_packets_for_speaker`, and `take_all_queued_packets` are never used
[INFO] [stdout]    --> src/network/voice/runtime.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceRuntime {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn take_queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn take_all_queued_packets(&mut self) -> Vec<QueuedVoicePacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl VoiceCodecFrame {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 150 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VoiceCodecEncoder {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl VoiceCodecDecoder {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 508 | impl VoicePlaybackDecoderRuntime {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] 509 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/network/rendezvous/client.rs:401:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RendezvousClient {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/geometry/traversal.rs:229:39
[INFO] [stdout]     |
[INFO] [stdout] 229 |         assert!(samples.is_empty() || samples.len() >= 0,
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.40s
[INFO] running `Command { std: "docker" "inspect" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `vote_target::VoteTarget`
[INFO] [stderr]   --> src/entities/mod.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use vote_target::VoteTarget;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `vote_tally::VoteTally`
[INFO] [stderr]   --> src/entities/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use vote_tally::VoteTally;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `meeting_outcome::MeetingOutcome`
[INFO] [stderr]   --> src/entities/mod.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use meeting_outcome::MeetingOutcome;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `analyse_voice_activity`
[INFO] [stderr]   --> src/audio/voice_io/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     analyse_voice_activity,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `VoiceCaptureError`, `VoiceCaptureRuntime`, and `VoiceInputDeviceInfo`
[INFO] [stderr]   --> src/audio/voice_io/mod.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     VoiceCaptureError,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 16 |     VoiceCaptureRuntime,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 17 |     VoiceInputDeviceInfo,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `generate_debug_voice_frame`, `generate_debug_voice_payload`, and `generate_debug_voice_tone_frame`
[INFO] [stderr]   --> src/audio/voice_io/mod.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     generate_debug_voice_frame,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 32 |     generate_debug_voice_payload,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 33 |     generate_debug_voice_tone_frame,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `VoiceFrameChunker` and `frame_sample_count_for_sample_rate`
[INFO] [stderr]   --> src/audio/voice_io/mod.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 40 |     frame_sample_count_for_sample_rate,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 41 |     VoiceAudioFrame,
[INFO] [stderr] 42 |     VoiceFrameChunker,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_VOICE_SMOOTHING_RAMP_MS` and `smoothing_ramp_sample_count`
[INFO] [stderr]   --> src/audio/voice_io/mod.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     smoothing_ramp_sample_count,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 49 |     VoiceSmoothingConfig,
[INFO] [stderr] 50 |     DEFAULT_VOICE_SMOOTHING_RAMP_MS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stderr]   --> src/network/game_flow/client_send.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     VoicePayloadFormatDto,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `role_kind_from_dto`
[INFO] [stderr]   --> src/network/game_flow/mod.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     role_kind_from_dto,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES`, `DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES`, `DEFAULT_VOICE_CAPTURE_MAX_GAIN`, `DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN`, `DEFAULT_VOICE_CAPTURE_TARGET_RMS`, `VoiceCaptureDiagnosticsSnapshot`, and `VoiceCaptureTuningConfig`
[INFO] [stderr]   --> src/network/voice/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     VoiceCaptureDiagnosticsSnapshot,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 11 |     VoiceCaptureProcessor,
[INFO] [stderr] 12 |     VoiceCaptureTuningConfig,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 14 |     DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 15 |     DEFAULT_VOICE_CAPTURE_MAX_GAIN,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 16 |     DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 17 |     DEFAULT_VOICE_CAPTURE_TARGET_RMS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_PROXIMITY_FALLOFF_START_TILES` and `DEFAULT_PROXIMITY_RADIUS_TILES`
[INFO] [stderr]   --> src/network/voice/mod.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     DEFAULT_PROXIMITY_FALLOFF_START_TILES,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 25 |     DEFAULT_PROXIMITY_RADIUS_TILES,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `QueuedVoicePacket`
[INFO] [stderr]   --> src/network/voice/mod.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     QueuedVoicePacket,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `VoicePlaybackConcealmentKind`, `VoicePlaybackQueueDrainError`, `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer`, `drain_runtime_packets_to_playback_queue_with_smoother`, and `drain_runtime_packets_to_playback_queue`
[INFO] [stderr]   --> src/network/voice/mod.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     drain_runtime_packets_to_playback_queue,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 38 |     drain_runtime_packets_to_playback_queue_with_smoother,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     drain_runtime_packets_to_playback_queue_with_smoother_and_concealer,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     VoicePlaybackConcealmentKind,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 43 |     VoicePlaybackQueueDrainError,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `VoiceRouteDecision` and `route_voice_packet`
[INFO] [stderr]   --> src/network/voice/mod.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 49 |     route_voice_packet,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     VoiceRouteDecision,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER`, `DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS`, `DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN`, `DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS`, `DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS`, `VoiceJitterBufferDrainSummary`, `VoicePlayoutItem`, and `VoiceSpeakerBuffer`
[INFO] [stderr]   --> src/network/voice/mod.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 |     VoiceJitterBufferDrainSummary,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 59 |     VoicePlayoutItem,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     VoiceSpeakerBuffer,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 63 |     DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 64 |     DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 65 |     DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 66 |     DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 67 |     DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DEFAULT_OPUS_BITRATE_BPS`, `DEFAULT_OPUS_MAX_PACKET_BYTES`, `VoiceCodecConfig`, `VoiceCodecDecoder`, `VoiceCodecError`, `VoiceCodecKind`, and `voice_codec_kind_from_payload_format`
[INFO] [stderr]   --> src/network/voice/mod.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 72 |     voice_codec_kind_from_payload_format,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 73 |     voice_payload_format_from_codec_kind,
[INFO] [stderr] 74 |     VoiceCodecConfig,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 75 |     VoiceCodecDecoder,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 76 |     VoiceCodecEncoder,
[INFO] [stderr] 77 |     VoiceCodecError,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 78 |     VoiceCodecFrame,
[INFO] [stderr] 79 |     VoiceCodecKind,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 80 |     VoicePlaybackDecoderRuntime,
[INFO] [stderr] 81 |     DEFAULT_OPUS_BITRATE_BPS,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 82 |     DEFAULT_OPUS_MAX_PACKET_BYTES,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `player_pos`
[INFO] [stderr]    --> src/systems/navigation.rs:229:9
[INFO] [stderr]     |
[INFO] [stderr] 229 |     let player_pos = vec2(p_x, p_y);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `interactable_tile`
[INFO] [stderr]    --> src/systems/navigation.rs:452:13
[INFO] [stderr]     |
[INFO] [stderr] 452 |         let interactable_tile = (interactable.x as usize, interactable.y as usize);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactable_tile`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stderr]     |
[INFO] [stderr] 312 |                     other => {
[INFO] [stderr]     |                     ^^^^^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stderr]     |
[INFO] [stderr]  63 |                     HostToClientMessage::JoinAccepted(accepted) => {
[INFO] [stderr]     |                     ------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  79 |                     HostToClientMessage::JoinRejected(rejected) => {
[INFO] [stderr]     |                     ------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  93 |                     HostToClientMessage::LobbySnapshot(snapshot) => {
[INFO] [stderr]     |                     -------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 140 |                     HostToClientMessage::StartMatch(start_match) => {
[INFO] [stderr]     |                     -------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 312 |                     other => {
[INFO] [stderr]     |                     ^^^^^ ...and 6 other patterns collectively make this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `spawn_room` is never read
[INFO] [stderr]  --> src/map/loader.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct MapData {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 9 |     pub spawn_room: String,
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `MapData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]   --> src/map/loader.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct Room {
[INFO] [stderr]    |            ---- field in this struct
[INFO] [stderr] 29 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Room` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `room` is never read
[INFO] [stderr]   --> src/map/loader.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct Doorway {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] 46 |     pub room: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Doorway` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `obj_type` is never read
[INFO] [stderr]   --> src/map/loader.rs:56:9
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct Object {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 55 |     #[serde(rename = "type")]
[INFO] [stderr] 56 |     pub obj_type: String,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Scan` and `EatCorpse` are never constructed
[INFO] [stderr]   --> src/entities/action.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub enum ActionKind {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr]  8 |     Kill,
[INFO] [stderr]  9 |     Scan,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 10 |     EatCorpse,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ActionKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `is_dead`, `is_ghost`, and `emit_audio` are never used
[INFO] [stderr]    --> src/entities/player.rs:25:12
[INFO] [stderr]     |
[INFO] [stderr]  23 | impl Player {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr]  24 |     /// Create a new player at the given grid position with default values.
[INFO] [stderr]  25 |     pub fn new(entity_id: EntityId, x: f32, y: f32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn is_dead(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn is_ghost(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 154 |     pub fn emit_audio(&self, queue: &mut Vec<AudioEvent>, cue: AudioCue) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_dead`, `is_ghost`, and `can_be_killed` are never used
[INFO] [stderr]   --> src/entities/life_state.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl LifeState {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 14 |     pub fn is_dead(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn is_ghost(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn can_be_killed(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `report` is never used
[INFO] [stderr]   --> src/entities/corpse.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Corpse {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn report(&mut self) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_corpse`, `corpse_exists`, `corpse_for_player_mut`, and `draw_corpses` are never used
[INFO] [stderr]    --> src/entities/entity_manager.rs:145:12
[INFO] [stderr]     |
[INFO] [stderr]  28 | impl EntityManager {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub fn get_corpse(
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 195 |     pub fn corpse_exists(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub fn corpse_for_player_mut(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 235 |     pub fn draw_corpses(&self, tile_size: f32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `midpoint` is never used
[INFO] [stderr]   --> src/rendering/continuous_fov.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl Segment {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn midpoint(&self) -> Vec2 {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `distance` is never read
[INFO] [stderr]   --> src/rendering/continuous_fov.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub struct RayHit {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub distance: f32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RayHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `toggle_continuous_fov_debug` is never used
[INFO] [stderr]   --> src/rendering/draw.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub fn toggle_continuous_fov_debug() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `toggle_continuous_fov_visuals` is never used
[INFO] [stderr]   --> src/rendering/draw.rs:54:8
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn toggle_continuous_fov_visuals() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `toggle_continuous_entity_visibility` is never used
[INFO] [stderr]   --> src/rendering/draw.rs:67:8
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub fn toggle_continuous_entity_visibility() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `draw_corpses` is never used
[INFO] [stderr]   --> src/rendering/draw.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn draw_corpses<'a>(corpses: impl Iterator<Item = &'a Corpse>, tile_size: f32) {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `VisibleTiles` is never constructed
[INFO] [stderr]   --> src/rendering/fov.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct VisibleTiles{
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `is_visible`, and `set_visible` are never used
[INFO] [stderr]   --> src/rendering/fov.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl VisibleTiles{
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 22 |     pub fn new(width: usize, height: usize) -> Self{
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn is_visible(&self, x: usize, y: usize) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn set_visible(&mut self, x: usize, y: usize) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compute_visible_tiles` is never used
[INFO] [stderr]   --> src/rendering/fov.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn compute_visible_tiles(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_meeting_screen` is never used
[INFO] [stderr]    --> src/rendering/screen.rs:122:8
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub fn render_meeting_screen(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_interaction_prompt` is never used
[INFO] [stderr]   --> src/ui/hud.rs:80:8
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn render_interaction_prompt(interactable: &Interactable) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_meeting_overlay` is never used
[INFO] [stderr]    --> src/ui/meeting.rs:453:8
[INFO] [stderr]     |
[INFO] [stderr] 453 | pub fn render_meeting_overlay(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TightCornerGroup` is never constructed
[INFO] [stderr]   --> src/systems/navigation.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | struct TightCornerGroup {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `detect_tight_corner_groups` is never used
[INFO] [stderr]   --> src/systems/navigation.rs:89:4
[INFO] [stderr]    |
[INFO] [stderr] 89 | fn detect_tight_corner_groups(_corners: &[CornerWaypoint]) -> Vec<TightCornerGroup> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ArrowRotationState` is never constructed
[INFO] [stderr]    --> src/systems/navigation.rs:129:8
[INFO] [stderr]     |
[INFO] [stderr] 129 | struct ArrowRotationState {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROTATION_ACCELERATION` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:143:7
[INFO] [stderr]     |
[INFO] [stderr] 143 | const ROTATION_ACCELERATION: f32 = 0.15;      
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_ROTATION_SPEED` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:144:7
[INFO] [stderr]     |
[INFO] [stderr] 144 | const MAX_ROTATION_SPEED: f32 = 0.4;          
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DAMPING_FACTOR` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:145:7
[INFO] [stderr]     |
[INFO] [stderr] 145 | const DAMPING_FACTOR: f32 = 0.85;             
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_arrow_rotation` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:148:4
[INFO] [stderr]     |
[INFO] [stderr] 148 | fn update_arrow_rotation(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LOOKAHEAD_TILES` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:172:7
[INFO] [stderr]     |
[INFO] [stderr] 172 | const LOOKAHEAD_TILES: usize = 4;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_smoothed_target` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:181:4
[INFO] [stderr]     |
[INFO] [stderr] 181 | fn get_smoothed_target(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_lookahead_target` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:224:4
[INFO] [stderr]     |
[INFO] [stderr] 224 | fn get_lookahead_target(p_x: f32, p_y: f32, waypoints: &[(usize, usize)], lookahead_distance: f32) -> Option<(f32, f32)> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PathProgress` is never constructed
[INFO] [stderr]    --> src/systems/navigation.rs:270:8
[INFO] [stderr]     |
[INFO] [stderr] 270 | struct PathProgress {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_path_progress` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:284:4
[INFO] [stderr]     |
[INFO] [stderr] 284 | fn calculate_path_progress(_p_tile: (usize, usize)) -> PathProgress {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_remaining_path_distance` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:519:4
[INFO] [stderr]     |
[INFO] [stderr] 519 | fn calculate_remaining_path_distance(waypoints: &[(usize, usize)]) -> f32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `smooth_angle` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:597:4
[INFO] [stderr]     |
[INFO] [stderr] 597 | fn smooth_angle(
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_rotation_smoothing` is never used
[INFO] [stderr]    --> src/systems/navigation.rs:745:4
[INFO] [stderr]     |
[INFO] [stderr] 745 | fn apply_rotation_smoothing(target_angle: f32, _tile_size: f32) -> f32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_mut` is never used
[INFO] [stderr]    --> src/systems/interaction_slot.rs:100:12
[INFO] [stderr]     |
[INFO] [stderr]  70 | impl InteractionSlots {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn get_mut(&mut self, channel: InteractionChannel) -> &mut InteractionSlot {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `discover_report_target` is never used
[INFO] [stderr]   --> src/systems/interaction_discovery.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn discover_report_target(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `discover_faction_target` is never used
[INFO] [stderr]   --> src/systems/interaction_discovery.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub fn discover_faction_target(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `discover_role_target` is never used
[INFO] [stderr]    --> src/systems/interaction_discovery.rs:133:8
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub fn discover_role_target(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `populate_interaction_slots` is never used
[INFO] [stderr]    --> src/systems/interaction_discovery.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub fn populate_interaction_slots(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `nearest_visible_corpse` is never used
[INFO] [stderr]   --> src/systems/interaction_queries.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn nearest_visible_corpse(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `nearest_visible_player` is never used
[INFO] [stderr]   --> src/systems/interaction_queries.rs:83:8
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub fn nearest_visible_player(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_slots_with_target` is never used
[INFO] [stderr]   --> src/systems/slot_verification.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 |     fn make_slots_with_target(channel: InteractionChannel, target: InteractionTarget) -> InteractionSlots {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_discussion` is never used
[INFO] [stderr]   --> src/systems/app_state.rs:60:12
[INFO] [stderr]    |
[INFO] [stderr] 59 | impl MeetingPhase {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] 60 |     pub fn is_discussion(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_discussion_active` is never used
[INFO] [stderr]    --> src/systems/app_state.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr]  73 | impl MeetingState {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub fn is_discussion_active(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `enter_meeting_results` is never used
[INFO] [stderr]    --> src/systems/app_state.rs:156:8
[INFO] [stderr]     |
[INFO] [stderr] 156 | pub fn enter_meeting_results() -> MatchState {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ForceLocalRole` is never constructed
[INFO] [stderr]   --> src/systems/match_setup.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub enum RoleDebugOverride {
[INFO] [stderr]    |          ----------------- variant in this enum
[INFO] [stderr] 60 |     None,
[INFO] [stderr] 61 |     ForceLocalRole(RoleKind),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RoleDebugOverride` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/systems/match_setup.rs:73:9
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub struct SpawnedMatchPlayerRecord {
[INFO] [stderr]    |            ------------------------ fields in this struct
[INFO] [stderr] 72 |     pub entity_id: EntityId,
[INFO] [stderr] 73 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 74 |     pub is_local: bool,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 75 |     pub is_static_test_player: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 76 |     pub role_kind: RoleKind,
[INFO] [stderr] 77 |     pub spawn_id: String,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 78 |     pub spawn_room: String,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 79 |     pub spawn_center_x: f32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 80 |     pub spawn_center_y: f32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 81 |     pub actor_x: f32,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 82 |     pub actor_y: f32,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpawnedMatchPlayerRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `object_id` is never read
[INFO] [stderr]  --> src/tasks/minigame.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct HoldTask {
[INFO] [stderr]   |            -------- field in this struct
[INFO] [stderr] 5 |     pub object_id: String,
[INFO] [stderr]   |         ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `HoldTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `has_task` is never used
[INFO] [stderr]   --> src/tasks/manager.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl TaskManager {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn has_task(&self, object_id: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_task_list_task`, `appears_in_task_list`, and `uses_task_navigation` are never used
[INFO] [stderr]   --> src/tasks/activity.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl ActivityKind {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] 11 |     pub fn is_task_list_task(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub fn appears_in_task_list(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn uses_task_navigation(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `LocalOnly` is never constructed
[INFO] [stderr]   --> src/tasks/activity.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub enum ActivityCompletionPolicy {
[INFO] [stderr]    |          ------------------------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 29 |     LocalOnly,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ActivityCompletionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `role_action` and `world_action` are never used
[INFO] [stderr]   --> src/tasks/activity.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl ActivityLaunchSpec {
[INFO] [stderr]    | ----------------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn role_action(
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub fn world_action(
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `task_list_task` is never used
[INFO] [stderr]    --> src/tasks/activity.rs:134:12
[INFO] [stderr]     |
[INFO] [stderr] 120 | impl ActiveActivity {
[INFO] [stderr]     | ------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn task_list_task(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `output_info`, `pending_sound_count`, and `clear_voice_stream` are never used
[INFO] [stderr]    --> src/audio/engine.rs:295:12
[INFO] [stderr]     |
[INFO] [stderr] 164 | impl AudioEngine {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 295 |     pub fn output_info(&self) -> &AudioOutputDeviceInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 341 |     pub fn pending_sound_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 365 |     pub fn clear_voice_stream(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `buffered_sample_count` is never used
[INFO] [stderr]    --> src/audio/voice_io/capture.rs:190:12
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl VoiceCaptureRuntime {
[INFO] [stderr]     | ------------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 190 |     pub fn buffered_sample_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `open_mic_started_logged` is never read
[INFO] [stderr]   --> src/audio/voice_io/debug.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub struct VoiceCaptureDebugState {
[INFO] [stderr]    |            ---------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 72 |     open_mic_started_logged: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `VoiceCaptureDebugState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `capture_enabled`, `runtime_started`, `ensure_capture_runtime_started`, and `update_open_mic_debug` are never used
[INFO] [stderr]    --> src/audio/voice_io/debug.rs:80:12
[INFO] [stderr]     |
[INFO] [stderr]  75 | impl VoiceCaptureDebugState {
[INFO] [stderr]     | --------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  80 |     pub fn capture_enabled(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  84 |     pub fn runtime_started(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub fn ensure_capture_runtime_started(&mut self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn update_open_mic_debug(&mut self, context_label: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/audio/voice_io/smoothing.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl VoiceSmoothingConfig {
[INFO] [stderr]    | ------------------------- associated function in this implementation
[INFO] [stderr] 11 |     pub fn new(ramp_ms: u32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_match_session` is never used
[INFO] [stderr]    --> src/screens/in_match.rs:167:8
[INFO] [stderr]     |
[INFO] [stderr] 167 | pub fn create_match_session(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `offline` is never used
[INFO] [stderr]   --> src/screens/lobby.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | impl LobbyNetworkUiInfo {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] 64 |     pub fn offline() -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_lobby_session` is never used
[INFO] [stderr]    --> src/screens/lobby.rs:102:8
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn create_lobby_session(map_data: &MapData) -> LobbySession {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NetworkAuthorityMode` is never used
[INFO] [stderr]   --> src/network/dto.rs:24:10
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub enum NetworkAuthorityMode {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `revealed` is never used
[INFO] [stderr]    --> src/network/dto.rs:211:12
[INFO] [stderr]     |
[INFO] [stderr] 204 | impl PublicRoleDataDto {
[INFO] [stderr]     | ---------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub fn revealed(role_kind: RoleKindDto) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `value` is never used
[INFO] [stderr]   --> src/network/ids.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl NetworkMessageSequence {
[INFO] [stderr]    | --------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn value(self) -> u32 {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/network/ids.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 51 | impl NetworkTick {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn new(value: u32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `last_received_tick` is never read
[INFO] [stderr]   --> src/network/runtime.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct ClientNetworkRuntime {
[INFO] [stderr]    |            -------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub last_received_tick: NetworkTick,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ClientNetworkRuntime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `authority_mode`, `is_offline`, `is_host`, `is_client`, `is_authoritative_simulation`, and `local_network_player_id` are never used
[INFO] [stderr]    --> src/network/runtime.rs:100:12
[INFO] [stderr]     |
[INFO] [stderr]  65 | impl NetworkRuntime {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn authority_mode(&self) -> NetworkAuthorityMode {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub fn is_offline(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     pub fn is_host(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub fn is_client(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn is_authoritative_simulation(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn local_network_player_id(&self) -> Option<NetworkPlayerId> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `clear_room_code`, `has_player`, and `connected_player` are never used
[INFO] [stderr]    --> src/network/runtime.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl HostNetworkRuntime {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn clear_room_code(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     pub fn has_player(&self, player_id: NetworkPlayerId) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn connected_player(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `mark_connected` and `mark_failed` are never used
[INFO] [stderr]    --> src/network/runtime.rs:223:12
[INFO] [stderr]     |
[INFO] [stderr] 216 | impl ClientNetworkRuntime {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub fn mark_connected(&mut self, assigned_player_id: NetworkPlayerId) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 229 |     pub fn mark_failed(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `network_entity_for_network_player`, `network_player_for_network_entity`, `contains_network_entity`, `contains_local_entity`, and `contains_network_player` are never used
[INFO] [stderr]    --> src/network/entity_map.rs:217:12
[INFO] [stderr]     |
[INFO] [stderr]  40 | impl NetworkEntityMap {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 217 |     pub fn network_entity_for_network_player(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn network_player_for_network_entity(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 233 |     pub fn contains_network_entity(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn contains_local_entity(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 249 |     pub fn contains_network_player(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/network/apply_snapshot.rs:44:15
[INFO] [stderr]    |
[INFO] [stderr] 44 |     EntityMap(NetworkEntityMapError),
[INFO] [stderr]    |     --------- ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 44 -     EntityMap(NetworkEntityMapError),
[INFO] [stderr] 44 +     EntityMap(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `owner_network_entity_id` is never read
[INFO] [stderr]   --> src/network/apply_snapshot.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |     MissingCorpseOwner {
[INFO] [stderr]    |     ------------------ field in this variant
[INFO] [stderr] 46 |         owner_network_entity_id: NetworkEntityId,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ReliableUnordered` and `UnreliableSequenced` are never constructed
[INFO] [stderr]  --> src/network/transport.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum NetworkChannel {
[INFO] [stderr]   |          -------------- variants in this enum
[INFO] [stderr] 6 |     ReliableOrdered,
[INFO] [stderr] 7 |     ReliableUnordered,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 8 |     UnreliableSequenced,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `NetworkChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Player` and `Broadcast` are never constructed
[INFO] [stderr]   --> src/network/transport.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum HostRecipient {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 13 |     PendingClient,
[INFO] [stderr] 14 |     Player(NetworkPlayerId),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 15 |     Broadcast,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `HostRecipient` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `NotConnected`, `SendFailed`, and `ReceiveFailed` are never constructed
[INFO] [stderr]   --> src/network/transport.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub enum TransportError {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 34 |     NotConnected,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 35 |     SendFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 36 |     ReceiveFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TransportError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]   --> src/network/fake_transport.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl FakeNetworkTransport {
[INFO] [stderr]    | ------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn clear(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_join_request_packet` is never used
[INFO] [stderr]    --> src/network/fake_transport.rs:233:8
[INFO] [stderr]     |
[INFO] [stderr] 233 | pub fn build_join_request_packet(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_join_accepted_packet` is never used
[INFO] [stderr]    --> src/network/fake_transport.rs:249:8
[INFO] [stderr]     |
[INFO] [stderr] 249 | pub fn build_join_accepted_packet(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/network/udp_transport.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 |     Io(io::Error),
[INFO] [stderr]    |     -- ^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 27 -     Io(io::Error),
[INFO] [stderr] 27 +     Io(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/network/udp_transport.rs:28:15
[INFO] [stderr]    |
[INFO] [stderr] 28 |     Serialize(serde_json::Error),
[INFO] [stderr]    |     --------- ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 28 -     Serialize(serde_json::Error),
[INFO] [stderr] 28 +     Serialize(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/network/udp_transport.rs:29:17
[INFO] [stderr]    |
[INFO] [stderr] 29 |     Deserialize(serde_json::Error),
[INFO] [stderr]    |     ----------- ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 29 -     Deserialize(serde_json::Error),
[INFO] [stderr] 29 +     Deserialize(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `bind_dev_localhost` and `drain_client_messages` are never used
[INFO] [stderr]    --> src/network/udp_transport.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr] 126 | impl UdpHostTransport {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 127 |     pub fn bind_dev_localhost() -> Result<Self, UdpTransportError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn drain_client_messages(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `connect_to_dev_localhost_host` is never used
[INFO] [stderr]    --> src/network/udp_transport.rs:284:12
[INFO] [stderr]     |
[INFO] [stderr] 283 | impl UdpClientTransport {
[INFO] [stderr]     | ----------------------- associated function in this implementation
[INFO] [stderr] 284 |     pub fn connect_to_dev_localhost_host() -> Result<Self, UdpTransportError> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `clear` and `sample_count` are never used
[INFO] [stderr]    --> src/network/interpolation.rs:148:12
[INFO] [stderr]     |
[INFO] [stderr]  49 | impl NetworkTransformInterpolator {
[INFO] [stderr]     | --------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn sample_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `remove_entity` and `interpolator_count` are never used
[INFO] [stderr]    --> src/network/interpolation.rs:208:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl NetworkInterpolationSet {
[INFO] [stderr]     | ---------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn remove_entity(&mut self, network_entity_id: NetworkEntityId) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn interpolator_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LIVE_NETWORK_VOICE_FRAME_MS` is never used
[INFO] [stderr]   --> src/network/game_flow/client_send.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const LIVE_NETWORK_VOICE_FRAME_MS: u32 = 20;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CONNECTION_WARN_AFTER_SECONDS` is never used
[INFO] [stderr]  --> src/network/reliability.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CONNECTION_WARN_AFTER_SECONDS: f32 = 5.0;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CONNECTION_TIMEOUT_AFTER_SECONDS` is never used
[INFO] [stderr]  --> src/network/reliability.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const CONNECTION_TIMEOUT_AFTER_SECONDS: f32 = 15.0;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `first_sent_seconds` is never read
[INFO] [stdout] 
[INFO] [stderr]   --> src/network/reliability.rs:24:9
[INFO] [stdout] running 369 tests
[INFO] [stderr]    |
[INFO] [stdout] test audio::engine::tests::clear_voice_stream_removes_buffered_samples ... ok
[INFO] [stderr] 19 | pub struct PendingReliableLifecycleEvent {
[INFO] [stdout] test audio::engine::tests::fill_output_mixes_and_clears_finished_sounds ... ok
[INFO] [stderr]    |            ----------------------------- field in this struct
[INFO] [stdout] test audio::engine::tests::fill_output_mixes_voice_stream_with_sound_effects ... ok
[INFO] [stderr] ...
[INFO] [stdout] test audio::engine::tests::sample_conversion_clamps_i16 ... ok
[INFO] [stderr] 24 |     pub first_sent_seconds: f32,
[INFO] [stdout] test audio::engine::tests::generated_beep_has_expected_length ... ok
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PendingReliableLifecycleEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `pending_count` is never used
[INFO] [stderr]    --> src/network/reliability.rs:120:12
[INFO] [stderr]     |
[INFO] [stderr]  35 | impl ReliableHostLifecycleTracker {
[INFO] [stderr]     | --------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub fn pending_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ConnectionHealth` is never used
[INFO] [stderr]    --> src/network/reliability.rs:243:10
[INFO] [stderr]     |
[INFO] [stderr] 243 | pub enum ConnectionHealth {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `host_health`, `client_health`, and `clients` are never used
[INFO] [stderr]    --> src/network/reliability.rs:310:12
[INFO] [stderr]     |
[INFO] [stderr] 262 | impl HeartbeatTracker {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 310 |     pub fn host_health(&self, now_seconds: f32) -> ConnectionHealth {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub fn client_health(
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     pub fn clients(&self) -> &[HeartbeatPeerState] {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `elapsed_to_health` is never used
[INFO] [stderr]    --> src/network/reliability.rs:336:4
[INFO] [stderr]     |
[INFO] [stderr] 336 | fn elapsed_to_health(elapsed_seconds: f32) -> ConnectionHealth {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `config` is never used
[INFO] [stderr]    --> src/network/voice/capture.rs:135:12
[INFO] [stderr]     |
[INFO] [stderr] 119 | impl VoiceCaptureProcessor {
[INFO] [stderr]     | -------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 135 |     pub fn config(&self) -> VoiceCaptureTuningConfig {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `drain_runtime_packets_to_playback_queue` is never used
[INFO] [stderr]    --> src/network/voice/playback.rs:313:8
[INFO] [stderr]     |
[INFO] [stderr] 313 | pub fn drain_runtime_packets_to_playback_queue(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `drain_runtime_packets_to_playback_queue_with_smoother` is never used
[INFO] [stderr]    --> src/network/voice/playback.rs:332:8
[INFO] [stderr]     |
[INFO] [stderr] 332 | pub fn drain_runtime_packets_to_playback_queue_with_smoother(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_jitter_settings`, `take_queued_packets_for_speaker`, and `take_all_queued_packets` are never used
[INFO] [stderr]    --> src/network/voice/runtime.rs:103:12
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl VoiceRuntime {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn with_jitter_settings(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     pub fn take_queued_packets_for_speaker(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 257 |     pub fn take_all_queued_packets(&mut self) -> Vec<QueuedVoicePacket> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `payload_len` is never used
[INFO] [stderr]    --> src/network/voice/codec.rs:150:12
[INFO] [stderr]     |
[INFO] [stderr] 149 | impl VoiceCodecFrame {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] 150 |     pub fn payload_len(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `kind` is never used
[INFO] [stdout] test audio::engine::tests::generated_beep_is_clamped ... ok
[INFO] [stderr]    --> src/network/voice/codec.rs:208:12
[INFO] [stdout] test audio::engine::tests::sample_conversion_clamps_u16 ... ok
[INFO] [stderr]     |
[INFO] [stdout] test audio::engine::tests::voice_stream_appends_drains_and_reports_status ... ok
[INFO] [stderr] 180 | impl VoiceCodecEncoder {
[INFO] [stdout] test audio::engine::tests::voice_stream_applies_volume_then_clamps_samples ... ok
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stdout] test audio::engine::tests::voice_stream_trims_oldest_samples_when_over_capacity ... ok
[INFO] [stderr] ...
[INFO] [stdout] test audio::engine::tests::fill_output_records_single_voice_underrun_event_when_stream_empties_mid_callback ... ok
[INFO] [stderr] 208 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout] test audio::events::tests::audio_event_spatial ... ok
[INFO] [stderr]     |            ^^^^
[INFO] [stdout] test audio::events::tests::audio_event_global ... ok
[INFO] [stderr] 
[INFO] [stdout] test audio::events::tests::audio_source_kind_global_derives ... ok
[INFO] [stderr] warning: method `kind` is never used
[INFO] [stdout] test audio::events::tests::audio_source_kind_spatial_derives ... ok
[INFO] [stderr]    --> src/network/voice/codec.rs:309:12
[INFO] [stdout] test audio::propagation::tests::base_strength_mapping_for_beep ... ok
[INFO] [stderr]     |
[INFO] [stdout] test audio::propagation::tests::enough_blockers_can_make_sound_inaudible ... ok
[INFO] [stderr] 289 | impl VoiceCodecDecoder {
[INFO] [stdout] test audio::propagation::tests::multiple_blockers_reduce_volume_more_than_one_blocker ... ok
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stdout] test audio::propagation::tests::beyond_theoretical_open_distance_is_inaudible ... ok
[INFO] [stderr] ...
[INFO] [stdout] test audio::propagation::tests::theoretical_open_distance_is_positive_for_audible_sound ... ok
[INFO] [stderr] 309 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout] test audio::propagation::tests::one_blocker_reduces_volume_below_open_space ... ok
[INFO] [stderr]     |            ^^^^
[INFO] [stdout] test audio::propagation::tests::open_space_volume_decreases_with_distance ... ok
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/network/voice/codec.rs:509:12
[INFO] [stderr]     |
[INFO] [stderr] 508 | impl VoicePlaybackDecoderRuntime {
[INFO] [stderr]     | -------------------------------- associated function in this implementation
[INFO] [stderr] 509 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset` is never used
[INFO] [stderr]    --> src/network/rendezvous/client.rs:401:12
[INFO] [stderr]     |
[INFO] [stderr]  86 | impl RendezvousClient {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 401 |     pub fn reset(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/geometry/traversal.rs:229:39
[INFO] [stderr]     |
[INFO] [stderr] 229 |         assert!(samples.is_empty() || samples.len() >= 0,
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `Test` (bin "Test" test) generated 125 warnings (run `cargo fix --bin "Test" -p Test --tests` to apply 19 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/Test-8171cd6416156a12)
[INFO] [stdout] test audio::propagation::tests::theoretical_open_distance_zero_when_source_below_threshold ... ok
[INFO] [stdout] test audio::propagation::tests::thick_contiguous_blocker_counts_as_one_entry ... ok
[INFO] [stdout] test audio::tests::emit_spatial_pushes_spatial_event ... ok
[INFO] [stdout] test audio::tests::emit_global_pushes_global_event ... ok
[INFO] [stdout] test audio::propagation::tests::same_position_returns_full_beep_volume ... ok
[INFO] [stdout] test audio::propagation::tests::separated_blockers_count_as_multiple_entries ... ok
[INFO] [stdout] test audio::propagation::tests::starting_inside_blocker_does_not_immediately_apply_entry_penalty ... ok
[INFO] [stdout] test audio::traversal::tests::reverse_direction_has_valid_steps ... ok
[INFO] [stdout] test audio::traversal::tests::diagonal_ray_returns_ordered_steps ... ok
[INFO] [stdout] test audio::traversal::tests::horizontal_ray_progresses_in_order ... ok
[INFO] [stdout] test audio::traversal::tests::opaque_cells_are_marked_blocking ... ok
[INFO] [stdout] test audio::traversal::tests::out_of_bounds_negative_cells_are_blocking ... ok
[INFO] [stdout] test audio::traversal::tests::vertical_ray_progresses_in_order ... ok
[INFO] [stdout] test audio::voice_io::activity::tests::voice_activity_detects_silence_and_activity ... ok
[INFO] [stdout] test audio::traversal::tests::zero_length_ray_returns_no_steps ... ok
[INFO] [stdout] test audio::voice_io::activity::tests::voice_activity_empty_input_is_inactive ... ok
[INFO] [stdout] test audio::voice_io::activity::tests::voice_activity_peak_can_trigger_even_when_rms_is_low ... ok
[INFO] [stdout] test audio::voice_io::capture::tests::interleaved_f32_samples_are_averaged_to_mono ... ok
[INFO] [stdout] test audio::voice_io::capture::tests::interleaved_i16_samples_convert_to_mono_f32 ... ok
[INFO] [stdout] test audio::voice_io::capture::tests::interleaved_u16_samples_convert_to_mono_f32 ... ok
[INFO] [stdout] test audio::voice_io::capture::tests::interleaved_i16_min_converts_to_negative_one ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::apply_gain_scales_and_clamps_samples ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::clamp_sample_handles_nan_and_bounds ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::decode_pcm_f32_le_rejects_payload_lengths_not_divisible_by_four ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::decode_pcm_f32_le_round_trips_samples ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::decode_pcm_i16_le_rejects_odd_payload_lengths ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::decode_pcm_i16_le_round_trips_samples_approximately ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::encode_pcm_f32_le_writes_four_bytes_per_sample ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::encode_pcm_i16_le_writes_two_bytes_per_sample ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::encoding_and_decoding_f32_clamps_invalid_sample_ranges ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::encoding_and_decoding_i16_clamps_invalid_sample_ranges ... ok
[INFO] [stdout] test audio::voice_io::codec::tests::i16_min_decodes_to_negative_one ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::custom_debug_tone_frame_respects_requested_shape ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::debug_frame_report_can_store_payload_and_payload_length ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::debug_voice_frame_is_activity_detectable ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::debug_voice_frame_uses_default_20ms_48khz_shape ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::debug_voice_payload_is_valid_pcm_i16_le ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::open_mic_summary_counts_active_and_inactive_frames ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::frame_sample_count_uses_requested_frame_ms ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::open_mic_summary_handles_no_active_frames ... ok
[INFO] [stdout] test audio::voice_io::debug::tests::open_mic_summary_returns_none_for_empty_reports ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::chunker_clamps_input_samples ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::chunker_outputs_fixed_size_frames_in_order ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::silence_frame_has_requested_size_and_rate ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::voice_audio_frame_clamps_samples_and_encodes_default_i16_payload ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::voice_audio_frame_with_gain_preserves_sample_rate ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::voice_audio_frame_legacy_payload_decodes_as_f32 ... ok
[INFO] [stdout] test audio::voice_io::playback_queue::tests::playback_queue_clear_removes_all_frames ... ok
[INFO] [stdout] test audio::voice_io::playback_queue::tests::playback_queue_drains_fifo_and_trims_old_frames ... ok
[INFO] [stdout] test audio::voice_io::frame::tests::voice_audio_frame_default_payload_decodes_as_i16 ... ok
[INFO] [stdout] test audio::voice_io::playback_queue::tests::playback_queue_default_uses_default_limit ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smooth_frame_start_clamps_previous_sample_and_output ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smooth_frame_start_handles_short_frames ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smooth_frame_start_only_affects_ramp_region ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smooth_frame_start_ramps_from_previous_sample ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::last_sample_returns_clamped_last_sample ... ok
[INFO] [stdout] test audio::propagation::tests::output_is_deterministic ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smooth_frame_start_returns_false_for_empty_or_zero_ramp ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smoothing_config_can_be_disabled ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smoothing_config_defaults_to_short_ramp ... ok
[INFO] [stdout] test audio::voice_io::smoothing::tests::smoothing_ramp_sample_count_uses_requested_ms ... ok
[INFO] [stdout] test audio::voice_io::tests::mixer_handles_empty_input ... ok
[INFO] [stdout] test audio::voice_io::tests::mixer_sums_and_clamps_frames ... ok
[INFO] [stdout] test entities::entity_manager::tests::corpse_ids_differ_from_owner_ids ... ok
[INFO] [stdout] test entities::meeting_outcome::tests::no_elimination_not_equal_to_eliminated ... ok
[INFO] [stdout] test entities::entity_manager::tests::spawn_player_generates_unique_ids ... ok
[INFO] [stdout] test entities::entity_manager::tests::spawn_player_inserts_into_players ... ok
[INFO] [stdout] test entities::entity_manager::tests::spawn_player_returns_generated_id ... ok
[INFO] [stdout] test entities::meeting_outcome::tests::eliminated_constructs_and_clones ... ok
[INFO] [stdout] test entities::meeting_outcome::tests::eliminated_with_different_ids_are_not_equal ... ok
[INFO] [stdout] test entities::meeting_outcome::tests::no_elimination_constructs_and_clones ... ok
[INFO] [stdout] test entities::role::tests::only_robot_contributes_to_task_victory ... ok
[INFO] [stdout] test entities::role::tests::robot_can_report_but_not_kill ... ok
[INFO] [stdout] test entities::role::tests::robot_role_maps_to_robot_faction ... ok
[INFO] [stdout] test entities::role::tests::virus_can_kill_and_report ... ok
[INFO] [stdout] test entities::role::tests::virus_role_maps_to_threat_faction ... ok
[INFO] [stdout] test entities::vote_tally::tests::empty_tally_has_zero_skip_and_player_votes ... ok
[INFO] [stdout] test entities::vote_tally::tests::player_votes_accumulate_correctly ... ok
[INFO] [stdout] test entities::vote_tally::tests::total_votes_empty_is_zero ... ok
[INFO] [stdout] test entities::vote_tally::tests::total_votes_with_player_votes_only ... ok
[INFO] [stdout] test entities::vote_tally::tests::total_votes_with_skip_and_player ... ok
[INFO] [stdout] test entities::vote_tally::tests::total_votes_with_skip_only ... ok
[INFO] [stdout] test entities::vote_target::tests::different_player_ids_dont_equate ... ok
[INFO] [stdout] test audio::voice_io::capture::tests::capture_buffer_is_capped_to_default_max_samples ... ok
[INFO] [stdout] test entities::vote_target::tests::same_player_ids_equate ... ok
[INFO] [stdout] test entities::vote_target::tests::vote_target_is_copy ... ok
[INFO] [stdout] test entities::vote_target::tests::player_and_skip_are_distinct ... ok
[INFO] [stdout] test geometry::traversal::tests::test_corner_grazing ... ok
[INFO] [stdout] test geometry::traversal::tests::test_diagonal_traversal ... ok
[INFO] [stdout] test geometry::traversal::tests::test_distance_proportional_steps ... ok
[INFO] [stdout] test geometry::traversal::tests::test_duplicate_preservation ... ok
[INFO] [stdout] test geometry::traversal::tests::test_reverse_direction ... ok
[INFO] [stdout] test geometry::traversal::tests::test_zero_length_line ... ok
[INFO] [stdout] test geometry::traversal::tests::test_horizontal_traversal ... ok
[INFO] [stdout] test geometry::traversal::tests::test_out_of_bounds_handling ... ok
[INFO] [stdout] test network::entity_map::tests::register_entity_creates_bidirectional_mapping ... ok
[INFO] [stdout] test geometry::traversal::tests::test_step_count_matches_constant ... ok
[INFO] [stdout] test geometry::traversal::tests::test_vertical_traversal ... ok
[INFO] [stdout] test network::entity_map::tests::register_entity_rejects_conflicting_network_entity_mapping ... ok
[INFO] [stdout] test network::entity_map::tests::register_same_entity_mapping_twice_is_idempotent ... ok
[INFO] [stdout] test network::entity_map::tests::register_same_player_entity_twice_is_idempotent ... ok
[INFO] [stdout] test network::entity_map::tests::register_player_entity_creates_player_and_entity_mappings ... ok
[INFO] [stdout] test network::entity_map::tests::unregister_by_local_entity_removes_entity_and_player_mappings ... ok
[INFO] [stdout] test network::entity_map::tests::clear_removes_all_mappings ... ok
[INFO] [stdout] test network::entity_map::tests::register_entity_rejects_conflicting_local_entity_mapping ... ok
[INFO] [stdout] test network::entity_map::tests::unregister_by_network_entity_removes_entity_and_player_mappings ... ok
[INFO] [stdout] test network::fake_transport::tests::fake_join_handshake_accepts_client ... ok
[INFO] [stdout] test network::fake_transport::tests::fake_join_handshake_rejects_empty_name ... ok
[INFO] [stdout] test network::fake_transport::tests::fake_transport_queues_and_drains_client_to_host_packets ... ok
[INFO] [stdout] test network::game_flow::state::tests::drain_voice_playback_to_audio_engine_drops_all_frames_when_audio_engine_unavailable ... ok
[INFO] [stdout] test network::game_flow::state::tests::drain_voice_playback_to_audio_engine_drops_frames_when_audio_engine_unavailable ... ok
[INFO] [stdout] test network::game_flow::state::tests::drain_voice_playback_to_audio_engine_handles_empty_queue ... ok
[INFO] [stdout] test network::game_flow::state::tests::reset_resets_voice_frame_sequences_and_smoother_state ... ok
[INFO] [stdout] test geometry::traversal::tests::test_deterministic ... ok
[INFO] [stdout] test network::game_flow::state::tests::voice_frame_sequences_start_at_zero_and_increment_independently ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::duplicate_host_local_voice_packet_is_not_queued_twice ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::global_and_disabled_contexts_do_not_attach_environment_grid ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_local_voice_packet_gain_is_clamped_by_metadata_constructor ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_live_voice_packet_rejects_inactive_frame ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_live_voice_packet_uses_host_speaker_and_preserves_payload_metadata ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_live_voice_payload_is_valid_pcm_i16_le ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_local_voice_packet_is_recorded_with_route_metadata ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_live_voice_packet_rejects_non_default_sample_rate ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::lobby_context_uses_lobby_grid_environment ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::match_playing_context_uses_match_grid_environment ... ok
[INFO] [stdout] test network::rendezvous::client::tests::client_resolution_queues_resolve_room_message ... ok
[INFO] [stdout] test network::rendezvous::client::tests::host_client_candidate_moves_host_to_punching_and_queues_peer_punch ... ok
[INFO] [stdout] test network::rendezvous::client::tests::host_registered_message_moves_host_to_registered_state ... ok
[INFO] [stdout] test network::rendezvous::client::tests::host_registered_state_sends_keepalive_when_due ... ok
[INFO] [stdout] test network::rendezvous::client::tests::host_registration_queues_register_host_message ... ok
[INFO] [stdout] test network::rendezvous::client::tests::inbound_punch_moves_to_direct_ready_and_queues_ack ... ok
[INFO] [stdout] test network::rendezvous::client::tests::invalid_room_code_fails_without_outbound ... ok
[INFO] [stdout] test network::rendezvous::client::tests::mismatched_room_punch_is_ignored ... ok
[INFO] [stdout] test network::rendezvous::client::tests::punch_ack_moves_client_to_direct_ready ... ok
[INFO] [stdout] test network::rendezvous::client::tests::registering_host_retries_when_due ... ok
[INFO] [stdout] test network::rendezvous::client::tests::rejected_message_moves_to_failed_state_and_clears_outbound ... ok
[INFO] [stdout] test network::rendezvous::client::tests::resolving_room_times_out ... ok
[INFO] [stdout] test network::rendezvous::client::tests::room_resolved_moves_client_to_punching_and_queues_peer_punch ... ok
[INFO] [stdout] test geometry::traversal::tests::test_very_small_distance ... ok
[INFO] [stdout] test network::rendezvous::client::tests::unexpected_rendezvous_sender_is_ignored ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::client_wire_message_round_trips_through_json ... ok
[INFO] [stdout] test network::game_flow::voice_flow::tests::host_live_voice_packet_from_encoded_uses_opus_payload_metadata ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::room_code_normalization_trims_and_uppercases ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::peer_punch_wire_message_round_trips_through_json ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::room_code_validation_rejects_empty_too_long_or_non_alphanumeric ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::server_wire_message_round_trips_through_json ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::client_keepalive_repeats_candidate_to_host ... ok
[INFO] [stdout] test network::rendezvous::protocol::tests::room_code_validation_accepts_ascii_alphanumeric_up_to_12_chars ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::duplicate_active_room_is_rejected ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::host_keepalive_refreshes_room_ttl ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::invalid_room_code_is_rejected ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::protocol_mismatch_is_rejected ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::resolve_missing_room_is_rejected ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::stale_room_expires_and_can_be_registered_again ... ok
[INFO] [stdout] test network::udp_transport::tests::client_gameplay_message_round_trips_through_top_level_wire_envelope ... ok
[INFO] [stdout] test network::udp_transport::tests::client_peer_punch_is_visible_to_host_punch_aware_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::client_transport_can_target_host_bound_addr ... ok
[INFO] [stdout] test network::udp_transport::tests::client_transport_rejects_invalid_host_addr ... ok
[INFO] [stdout] test network::udp_transport::tests::client_transport_sends_rendezvous_message_using_server_compatible_wire_format ... ok
[INFO] [stdout] test network::udp_transport::tests::host_gameplay_message_round_trips_through_top_level_wire_envelope ... ok
[INFO] [stdout] test network::udp_transport::tests::host_transport_can_bind_ephemeral_localhost ... ok
[INFO] [stdout] test network::udp_transport::tests::host_peer_punch_is_visible_to_client_punch_aware_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::host_transport_sends_rendezvous_message_using_server_compatible_wire_format ... ok
[INFO] [stdout] test network::udp_transport::tests::internet_bind_defaults_use_ephemeral_public_interfaces ... ok
[INFO] [stdout] test network::udp_transport::tests::legacy_client_wire_message_is_still_accepted_by_host_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::legacy_host_wire_message_is_still_accepted_by_client_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::legacy_peer_punch_wire_message_is_accepted_by_host_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::rendezvous_server_wire_message_is_visible_to_client_drain ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::host_keepalive_with_wrong_nonce_is_rejected ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::register_host_creates_room_and_returns_observed_endpoint ... ok
[INFO] [stdout] test network::rendezvous::server_state::tests::resolve_active_room_returns_host_to_client_and_client_candidate_to_host ... ok
[INFO] [stdout] test network::udp_transport::tests::top_level_rendezvous_to_game_wire_message_is_visible_to_client_drain ... ok
[INFO] [stdout] test network::udp_transport::tests::dev_constants_remain_localhost_compatible ... ok
[INFO] [stdout] test network::udp_transport::tests::rendezvous_server_wire_message_is_visible_to_host_drain ... ok
[INFO] [stdout] test network::voice::capture::tests::capture_gain_boosts_quiet_active_speech_up_to_cap ... ok
[INFO] [stdout] test network::voice::capture::tests::capture_gain_does_not_boost_noise_floor ... ok
[INFO] [stdout] test network::voice::capture::tests::default_frame_ms_remains_twenty ... ok
[INFO] [stdout] test network::voice::capture::tests::processor_recomputes_payload_after_gain ... ok
[INFO] [stdout] test network::voice::capture::tests::processor_reset_clears_hangover ... ok
[INFO] [stdout] test network::voice::codec::tests::conversion_helpers_clamp_safely ... ok
[INFO] [stdout] test network::voice::codec::tests::default_opus_config_targets_current_voice_frame_shape ... ok
[INFO] [stdout] test network::voice::codec::tests::expected_sample_count_matches_twenty_ms_at_48khz ... ok
[INFO] [stdout] test network::voice::codec::tests::opus_decoder_rejects_empty_payload_safely ... ok
[INFO] [stdout] test network::voice::capture::tests::processor_drops_inactive_without_hangover ... ok
[INFO] [stdout] test network::voice::capture::tests::processor_keeps_trailing_frames_during_hangover ... ok
[INFO] [stdout] test network::voice::capture::tests::processor_outputs_active_frames ... ok
[INFO] [stdout] test network::voice::codec::tests::opus_encoder_rejects_wrong_frame_sample_count ... ok
[INFO] [stdout] test network::voice::codec::tests::playback_decoder_runtime_decodes_pcm_i16_without_speaker_state ... ok
[INFO] [stdout] test network::voice::codec::tests::opus_encoder_rejects_wrong_sample_rate ... ok
[INFO] [stdout] test network::voice::codec::tests::payload_format_mapping_maps_opus ... ok
[INFO] [stdout] test network::voice::codec::tests::pcm_i16_decoder_round_trips_samples_approximately ... ok
[INFO] [stdout] test network::voice::codec::tests::pcm_i16_encoder_produces_expected_payload_size ... ok
[INFO] [stdout] test network::voice::context::tests::endgame_policy_ignores_life_state ... ok
[INFO] [stdout] test network::voice::codec::tests::unsupported_codec_config_rejects_non_twenty_ms_frame ... ok
[INFO] [stdout] test network::voice::context::tests::body_reported_defaults_to_disabled_voice ... ok
[INFO] [stdout] test network::voice::codec::tests::encode_voice_report_with_encoder_returns_opus_frame ... ok
[INFO] [stdout] test network::voice::codec::tests::opus_encoder_decoder_roundtrip_returns_twenty_ms_mono_frame ... ok
[INFO] [stdout] test network::voice::context::tests::context_policy_uses_text_chat_like_ghost_rules_until_endgame ... ok
[INFO] [stdout] test network::voice::context::tests::lobby_and_playing_default_to_proximity_voice ... ok
[INFO] [stdout] test network::voice::codec::tests::opus_encoder_creates_smaller_payload_than_pcm_i16 ... ok
[INFO] [stdout] test network::voice::context::tests::match_state_dto_maps_to_voice_context ... ok
[INFO] [stdout] test network::voice::packet::tests::packet_with_route_metadata_sets_authoritative_listener_metadata_without_changing_voice_seq ... ok
[INFO] [stdout] test network::voice::packet::tests::route_metadata_clamps_gain_and_round_trips_through_dto ... ok
[INFO] [stdout] test network::voice::packet::tests::sequence_tracker_accepts_small_out_of_order_voice_frames_for_jitter_buffering ... ok
[INFO] [stdout] test network::voice::packet::tests::sequence_tracker_rejects_very_old_voice_frames_as_stale ... ok
[INFO] [stdout] test network::voice::packet::tests::sequence_tracker_tracks_speakers_independently ... ok
[INFO] [stdout] test network::voice::playback::tests::concealed_missing_voice_frame_falls_back_to_silence_without_previous_audio ... ok
[INFO] [stdout] test network::voice::playback::tests::concealed_missing_voice_frame_uses_decayed_previous_audio ... ok
[INFO] [stdout] test network::voice::playback::tests::concealer_falls_back_to_silence_without_previous_frame ... ok
[INFO] [stdout] test network::voice::playback::tests::concealer_progressively_decays_repeated_missing_frames ... ok
[INFO] [stdout] test network::voice::codec::tests::playback_decoder_runtime_keeps_one_opus_decoder_per_speaker ... ok
[INFO] [stdout] test network::voice::playback::tests::default_frame_duration_is_still_twenty_ms ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_decodes_opus_payload ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_duplicate_voice_frame_does_not_queue_twice ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_explicit_legacy_pcm_f32_payload_still_decodes ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_invalid_i16_payload_reports_decode_failure ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_missing_metadata_produces_no_reports ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_pcm_i16_gain_half_attenuates_samples ... ok
[INFO] [stdout] test network::voice::playback::tests::drain_playback_pcm_i16_gain_one_preserves_first_unsmoothed_frame_samples_approximately ... ok
[INFO] [stdout] test network::voice::playback::tests::global_net_sequence_gaps_do_not_create_concealment_reports ... ok
[INFO] [stdout] test network::voice::packet::tests::queued_voice_packet_carries_payload_metadata_and_voice_sequence ... ok
[INFO] [stdout] test network::voice::packet::tests::sequence_tracker_accepts_first_and_newer_voice_frames ... ok
[INFO] [stdout] test network::voice::packet::tests::sequence_tracker_rejects_duplicate_voice_frames ... ok
[INFO] [stdout] test network::voice::playback::tests::late_packet_after_concealment_is_rejected_while_buffer_is_active ... ok
[INFO] [stdout] test network::voice::playback::tests::concealer_resets_decay_after_good_frame ... ok
[INFO] [stdout] test network::voice::playback::tests::smoother_can_reset_state ... ok
[INFO] [stdout] test network::voice::playback::tests::concealer_uses_decayed_previous_frame_for_first_missing_frame ... ok
[INFO] [stdout] test network::voice::context::tests::voice_context_round_trips_through_dto ... ok
[INFO] [stdout] test network::voice::playback::tests::smoother_tracks_speakers_independently ... ok
[INFO] [stdout] test network::voice::routing::tests::disabled_routes_to_nobody ... ok
[INFO] [stdout] test network::voice::context::tests::meeting_results_verdict_and_endgame_default_to_global_voice ... ok
[INFO] [stdout] test network::voice::routing::tests::disconnected_listener_is_excluded ... ok
[INFO] [stdout] test network::voice::routing::tests::environment_can_make_heavily_blocked_route_inaudible ... ok
[INFO] [stdout] test network::voice::routing::tests::endgame_ghost_speaker_routes_to_living_and_ghosts ... ok
[INFO] [stdout] test network::voice::routing::tests::body_reported_routes_no_life_states ... ok
[INFO] [stdout] test network::voice::routing::tests::environment_clear_path_keeps_gain_unchanged ... ok
[INFO] [stdout] test network::voice::routing::tests::environment_one_wall_reduces_proximity_gain ... ok
[INFO] [stdout] test network::voice::routing::tests::global_mode_ignores_environment_attenuation ... ok
[INFO] [stdout] test network::voice::routing::tests::global_routes_to_connected_non_self_participants ... ok
[INFO] [stdout] test network::voice::routing::tests::living_speaker_routes_to_living_and_ghosts_until_endgame ... ok
[INFO] [stdout] test network::voice::routing::tests::match_playing_ghost_speaker_routes_only_to_ghosts ... ok
[INFO] [stdout] test network::voice::routing::tests::meeting_discussion_ghost_speaker_routes_only_to_ghosts ... ok
[INFO] [stdout] test network::voice::routing::tests::participant_is_ghost_returns_inverse_of_alive_state ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_clamps_negative_falloff_start_to_zero ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_clamps_falloff_start_above_radius_to_radius ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_gain_falls_off_smoothly_at_midpoint ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_gain_is_partial_between_falloff_start_and_radius ... ok
[INFO] [stdout] test network::voice::routing::tests::gain_breakdown_reports_distance_environment_and_final_gain ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_rejects_invalid_positions_without_nan_gain ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_rejects_invalid_radius_without_nan_gain ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_treats_invalid_falloff_start_as_zero ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_with_zero_or_negative_radius_routes_to_nobody ... ok
[INFO] [stdout] test network::voice::routing::tests::route_gain_is_never_nan_for_valid_route ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_routes_nearby_and_excludes_distant_listeners ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_excludes_listener_at_or_beyond_radius ... ok
[INFO] [stdout] test network::voice::routing::tests::smoothstep_clamps_input ... ok
[INFO] [stdout] test network::voice::routing::tests::proximity_gain_is_full_inside_falloff_start ... ok
[INFO] [stdout] test network::voice::routing::tests::speaker_never_routes_to_self ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_conceals_multiple_missing_voice_frames_before_later_packet ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_conceals_missing_voice_frame_after_grace_and_releases_later_packet ... ok
[INFO] [stdout] test network::voice::runtime::tests::global_network_sequence_gaps_do_not_create_concealed_voice_frames ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_does_not_release_before_target_delay ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_handles_multiple_speakers_independently ... ok
[INFO] [stdout] test network::voice::routing::tests::unknown_or_disconnected_speaker_routes_to_nobody ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_releases_after_target_delay ... ok
[INFO] [stdout] test network::voice::runtime::tests::receive_tracker_accepts_first_and_newer_voice_frames ... ok
[INFO] [stdout] test network::voice::runtime::tests::late_packet_after_concealment_is_not_queued_while_buffer_is_active ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_releases_out_of_order_packets_in_voice_sequence_order ... ok
[INFO] [stdout] test network::voice::runtime::tests::receive_tracker_accepts_small_out_of_order_voice_frames_for_jitter_buffering ... ok
[INFO] [stdout] test network::voice::runtime::tests::receive_tracker_rejects_duplicate_voice_frames ... ok
[INFO] [stdout] test network::voice::runtime::tests::drained_buffer_does_not_force_future_burst_to_conceal_natural_pause_gap ... ok
[INFO] [stdout] test network::voice::runtime::tests::receive_tracker_rejects_very_old_voice_frames_as_stale ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_prunes_old_packets ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_queues_accepted_forwarded_packets_with_metadata ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_rejects_duplicate_voice_frames_without_queueing_them ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_does_not_queue_packets_without_route_metadata ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_tracks_per_speaker_queues_independently ... ok
[INFO] [stdout] test rendering::continuous_fov::tests::ray_hits_vertical_segment ... ok
[INFO] [stdout] test rendering::continuous_fov::tests::polygon_builds_for_open_grid ... ok
[INFO] [stdout] test network::voice::runtime::tests::jitter_buffer_waits_briefly_before_concealing_missing_voice_frame ... ok
[INFO] [stdout] test rendering::continuous_fov::tests::open_grid_has_boundary_segments ... ok
[INFO] [stdout] test network::voice::runtime::tests::runtime_trims_per_speaker_queue_by_voice_sequence_to_configured_limit ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_basic_range ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_corner_grazing ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_exact_boundary ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_multiple_walls ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_one_wall ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_out_of_bounds_target ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_diagonal ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_out_of_range ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_player_inside_opaque ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_player_offset_matters ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_repeated_samples ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_thick_wall_blocks ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_very_short_ray ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_wall_above_path ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_diagonal_walls ... ok
[INFO] [stdout] test rendering::fov::tests::test_fov_zero_distance ... ok
[INFO] [stdout] test systems::app_state::tests::activity_overlay_is_not_none ... ok
[INFO] [stdout] test systems::app_state::tests::default_app_state_is_main_menu ... ok
[INFO] [stdout] test systems::app_state::tests::default_overlay_state_is_none ... ok
[INFO] [stdout] test systems::app_state::tests::enter_body_reported_produces_correct_state ... ok
[INFO] [stdout] test systems::app_state::tests::enter_meeting_produces_discussion_state ... ok
[INFO] [stdout] test systems::app_state::tests::enter_playing_produces_playing_state ... ok
[INFO] [stdout] test systems::app_state::tests::shared_overlay_none_is_not_open ... ok
[INFO] [stdout] test systems::app_state::tests::shared_overlay_settings_is_open ... ok
[INFO] [stdout] test systems::app_state::tests::shared_overlay_role_settings_is_open ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_default ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_accessor_player_id ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_accessor_task_object ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slots_clear ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slots_creation ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slots_clone ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_creation ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_accessor_corpse_id ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_accessor_none ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slots_get ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slot_is_available ... ok
[INFO] [stdout] test systems::interaction_slot::tests::test_slots_get_mut ... ok
[INFO] [stdout] test systems::interaction_target::tests::test_equality ... ok
[INFO] [stdout] test systems::interaction_target::tests::test_player_target ... ok
[INFO] [stdout] test systems::interaction_target::tests::test_corpse_target ... ok
[INFO] [stdout] test systems::interaction_target::tests::test_target_clone ... ok
[INFO] [stdout] test systems::slot_input::tests::test_channel_mapping ... ok
[INFO] [stdout] test systems::interaction_target::tests::test_task_object_target ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_faction_success_with_player_and_permission ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_faction_invalid_target_with_corpse ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_faction_no_target_returns_no_target ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_report_invalid_target_with_player ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_faction_permission_denied_without_kill ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_report_no_target_returns_no_target ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_utility_success_with_task_object ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_report_success_with_corpse ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_role_always_no_target ... ok
[INFO] [stdout] test systems::task_launcher::tests::test_launch_valid_target ... ok
[INFO] [stdout] test systems::task_launcher::tests::test_launch_no_target ... ok
[INFO] [stdout] test systems::victory::tests::counts_alive_robots_and_threats ... ok
[INFO] [stdout] test systems::task_launcher::tests::test_launch_wrong_target_type ... ok
[INFO] [stdout] test systems::victory::tests::no_victory_when_robots_outnumber_threats_and_tasks_incomplete ... ok
[INFO] [stdout] test systems::victory::tests::role_kind_mapping_still_works_for_victory_roles ... ok
[INFO] [stdout] test systems::task_launcher::tests::test_launch_task_not_in_list ... ok
[INFO] [stdout] test systems::victory::tests::threats_win_on_parity ... ok
[INFO] [stdout] test systems::slot_verification::tests::test_utility_no_target_returns_no_target ... ok
[INFO] [stdout] test systems::victory::tests::robots_win_when_all_threats_eliminated ... ok
[INFO] [stdout] test systems::victory::tests::robots_win_when_tasks_completed ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin Test`
[INFO] [stdout] test network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall ... FAILED
[INFO] [stdout] test network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall' (2071) panicked at src/network/voice/routing.rs:739:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 0
[INFO] [stdout]  right: 1
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x568b6812cbc8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x568b6812cbc8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x568b6812cbc8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x568b6812cbc8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x568b68142fea - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x568b68142fea - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x568b681318f2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x568b681318f2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x568b6810b476 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x568b6810b476 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x568b68124d89 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x568b6803166c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x568b6803166c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x568b68124f42 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x568b68124f42 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x568b6810b532 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x568b68100689 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x568b6810c40d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x568b6814377c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x568b68143633 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x568b6813e2cd - core[8fb95b77d25ab6c8]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x568b67edf8e1 - Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall
[INFO] [stdout]                                at /opt/rustwide/workdir/src/network/voice/routing.rs:739:9
[INFO] [stdout]   22:     0x568b67ec9e77 - Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/network/voice/routing.rs:717:72
[INFO] [stdout]   23:     0x568b67fe8e06 - <Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x568b6802474b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x568b6802474b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x568b68031fc5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x568b68031fc5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x568b68031fc5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x568b68031fc5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x568b68031fc5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x568b68031fc5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x568b68031fc5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x568b6802b8d4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x568b6802b8d4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x568b68035042 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x568b68035042 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x568b68035042 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x568b68035042 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x568b68035042 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x568b68035042 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x568b68035042 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x568b6812c25f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x568b6812c25f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7f06c9d11aa4 - <unknown>
[INFO] [stdout]   45:     0x7f06c9d9ea64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry' (2073) panicked at src/network/voice/routing.rs:758:10:
[INFO] [stdout] one-cell wall should still be audible
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x568b6812cbc8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x568b6812cbc8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x568b6812cbc8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x568b6812cbc8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x568b68142fea - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x568b68142fea - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x568b681318f2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x568b681318f2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x568b6810b476 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x568b6810b476 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x568b68124d89 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x568b6803166c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x568b6803166c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x568b68124f42 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x568b68124f42 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x568b6810b532 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x568b68100689 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x568b6810c40d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x568b6814377c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x568b68143474 - core[8fb95b77d25ab6c8]::panicking::panic_display::<&str>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:259:5
[INFO] [stdout]   20:     0x568b68143474 - core[8fb95b77d25ab6c8]::option::expect_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/option.rs:2257:5
[INFO] [stdout]   21:     0x568b67fd876f - <core[8fb95b77d25ab6c8]::option::Option<Test[2fb24093cf6d0eab]::network::voice::routing::VoiceRouteGainBreakdown>>::expect
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/option.rs:968:21
[INFO] [stdout]   22:     0x568b67edce85 - Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry
[INFO] [stdout]                                at /opt/rustwide/workdir/src/network/voice/routing.rs:758:10
[INFO] [stdout]   23:     0x568b67ec9cf7 - Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/network/voice/routing.rs:744:63
[INFO] [stdout]   24:     0x568b67fe8c06 - <Test[2fb24093cf6d0eab]::network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x568b6802474b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x568b6802474b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x568b68031fc5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x568b68031fc5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x568b68031fc5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x568b68031fc5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x568b68031fc5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x568b68031fc5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x568b68031fc5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x568b6802b8d4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x568b6802b8d4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x568b68035042 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x568b68035042 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x568b68035042 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x568b68035042 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x568b68035042 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x568b68035042 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x568b68035042 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x568b6812c25f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   44:     0x568b6812c25f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x7f06c9d11aa4 - <unknown>
[INFO] [stdout]   46:     0x7f06c9d9ea64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     network::voice::routing::tests::environment_multiple_separated_walls_reduce_more_than_one_wall
[INFO] [stdout]     network::voice::routing::tests::environment_thick_contiguous_wall_counts_as_one_entry
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 367 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a", kill_on_drop: false }`
[INFO] [stdout] 9a5d958f920abadebf87767467911d1a7c7a2cf41ed3454fe08060372530f42a
