Compiling stream_server v0.2.0 (/home/senke/Documents/veza/veza-stream-server) warning: unused import: `DecodedAudio` --> src/audio/pipeline.rs:12:49 | 12 | use crate::codecs::{AudioDecoder, AudioEncoder, DecodedAudio, DecoderInfo, EncoderInfo}; | ^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `AppError` --> src/audio/pipeline.rs:13:20 | 13 | use crate::error::{AppError, Result as AppResult}; | ^^^^^^^^ warning: unused import: `std::sync::Arc` --> src/audio/pipeline.rs:14:5 | 14 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `std::time::Duration` --> src/audio/pipeline.rs:16:5 | 16 | use std::time::Duration; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `Deserialize` and `Serialize` --> src/audio/realtime.rs:4:13 | 4 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `SystemTime` --> src/audio/realtime.rs:11:36 | 11 | use std::time::{Duration, Instant, SystemTime}; | ^^^^^^^^^^ warning: unused import: `effects::*` --> src/audio/mod.rs:12:9 | 12 | pub use effects::*; | ^^^^^^^^^^ warning: unused import: `std::collections::hash_map::DefaultHasher` --> src/cache/audio_cache.rs:2:5 | 2 | use std::collections::hash_map::DefaultHasher; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `std::time::Duration` --> src/cache/audio_cache.rs:330:9 | 330 | use std::time::Duration; | ^^^^^^^^^^^^^^^^^^^ warning: unused imports: `AudioSampleFormat`, `CodecQuality`, and `LatencyMode` --> src/codecs/flac.rs:2:33 | 2 | AudioDecoder, AudioEncoder, AudioSampleFormat, CodecQuality, DecodedAudio, DecoderConfig, | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ 3 | DecoderInfo, EncoderConfig, EncoderInfo, EncoderMetrics, LatencyMode, | ^^^^^^^^^^^ warning: unused imports: `Deserialize` and `Serialize` --> src/codecs/flac.rs:6:13 | 6 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::collections::HashMap` --> src/codecs/flac.rs:14:5 | 14 | use std::collections::HashMap; | ^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `SystemTime` --> src/codecs/flac.rs:15:26 | 15 | use std::time::{Instant, SystemTime}; | ^^^^^^^^^^ warning: unused imports: `AudioFrame`, `CodecConfig`, `DecodingResult`, and `EncodingResult` --> src/codecs/mp3.rs:19:33 | 19 | AudioDecoder, AudioEncoder, AudioFrame, CodecConfig, CodecQuality, DecoderConfig, | ^^^^^^^^^^ ^^^^^^^^^^^ 20 | DecodingResult, EncoderConfig, EncodingResult, | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ warning: unused import: `mpsc` --> src/core/buffer.rs:15:19 | 15 | use tokio::sync::{mpsc, Mutex}; | ^^^^ warning: unused import: `mpsc` --> src/core/stream.rs:10:30 | 10 | use tokio::sync::{broadcast, mpsc}; | ^^^^ warning: unused imports: `RwLock as TokioRwLock` and `mpsc` --> src/core/sync.rs:18:30 | 18 | use tokio::sync::{broadcast, mpsc, RwLock as TokioRwLock}; | ^^^^ ^^^^^^^^^^^^^^^^^^^^^ warning: unused imports: `Error as LapinError` and `ExchangeKind` --> src/event_bus.rs:3:5 | 3 | Error as LapinError, ExchangeKind, | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ warning: unused import: `UNIX_EPOCH` --> src/monitoring/alerting.rs:7:39 | 7 | use std::time::{Duration, SystemTime, UNIX_EPOCH}; | ^^^^^^^^^^ warning: unused import: `Instant` --> src/monitoring/prometheus_metrics.rs:3:27 | 3 | use std::time::{Duration, Instant}; | ^^^^^^^ warning: unused imports: `Deserialize` and `Serialize` --> src/monitoring/prometheus_metrics.rs:6:13 | 6 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `Duration` --> src/monitoring/tracing_module.rs:4:17 | 4 | use std::time::{Duration, SystemTime}; | ^^^^^^^^ warning: unused import: `SystemHealth` --> src/monitoring/mod.rs:27:35 | 27 | use health_checks::{HealthConfig, SystemHealth}; | ^^^^^^^^^^^^ warning: private item shadows public glob re-export --> src/monitoring/mod.rs:27:21 | 27 | use health_checks::{HealthConfig, SystemHealth}; | ^^^^^^^^^^^^ | note: the name `HealthConfig` in the type namespace is supposed to be publicly re-exported here --> src/monitoring/mod.rs:14:9 | 14 | pub use health_checks::*; | ^^^^^^^^^^^^^^^^ note: but the private item here shadows it --> src/monitoring/mod.rs:27:21 | 27 | use health_checks::{HealthConfig, SystemHealth}; | ^^^^^^^^^^^^ = note: `#[warn(hidden_glob_reexports)]` on by default warning: private item shadows public glob re-export --> src/monitoring/mod.rs:27:35 | 27 | use health_checks::{HealthConfig, SystemHealth}; | ^^^^^^^^^^^^ | note: the name `SystemHealth` in the type namespace is supposed to be publicly re-exported here --> src/monitoring/mod.rs:14:9 | 14 | pub use health_checks::*; | ^^^^^^^^^^^^^^^^ note: but the private item here shadows it --> src/monitoring/mod.rs:27:35 | 27 | use health_checks::{HealthConfig, SystemHealth}; | ^^^^^^^^^^^^ warning: private item shadows public glob re-export --> src/monitoring/mod.rs:28:5 | 28 | use tracing_module::TracingConfig; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the name `TracingConfig` in the type namespace is supposed to be publicly re-exported here --> src/monitoring/mod.rs:17:9 | 17 | pub use tracing_module::*; | ^^^^^^^^^^^^^^^^^ note: but the private item here shadows it --> src/monitoring/mod.rs:28:5 | 28 | use tracing_module::TracingConfig; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `IntoResponse` --> src/routes/encoding.rs:14:16 | 14 | response::{IntoResponse, Response}, | ^^^^^^^^^^^^ warning: unused import: `Deserialize` --> src/routes/encoding.rs:17:13 | 17 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ warning: unused import: `crate::core::encoding_service::EncodingService` --> src/routes/encoding.rs:86:9 | 86 | use crate::core::encoding_service::EncodingService; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `sync::Arc` --> src/routes/api.rs:8:49 | 8 | use std::{collections::HashMap, time::Duration, sync::Arc}; | ^^^^^^^^^ warning: unused import: `axum::extract::ws::WebSocketUpgrade` --> src/streaming/websocket.rs:813:9 | 813 | use axum::extract::ws::WebSocketUpgrade; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `axum::http::HeaderMap` --> src/streaming/websocket.rs:814:9 | 814 | use axum::http::HeaderMap; | ^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `std::sync::Arc` --> src/streaming/websocket.rs:815:9 | 815 | use std::sync::Arc; | ^^^^^^^^^^^^^^ warning: unused import: `tokio::sync::broadcast` --> src/streaming/websocket_transport.rs:57:9 | 57 | use tokio::sync::broadcast; | ^^^^^^^^^^^^^^^^^^^^^^ warning: unused imports: `Deserialize` and `Serialize` --> src/structured_logging.rs:12:13 | 12 | use serde::{Deserialize, Serialize}; | ^^^^^^^^^^^ ^^^^^^^^^ warning: unused import: `std::time::Duration` --> src/structured_logging.rs:15:5 | 15 | use std::time::Duration; | ^^^^^^^^^^^^^^^^^^^ warning: unused import: `format::Writer` --> src/structured_logging.rs:22:17 | 22 | fmt::{self, format::Writer, time::ChronoUtc}, | ^^^^^^^^^^^^^^ warning: unused import: `uuid::Uuid` --> src/structured_logging.rs:182:9 | 182 | use uuid::Uuid; | ^^^^^^^^^^ warning: unused imports: `Duration as TokioDuration` and `sleep` --> src/utils/metrics.rs:433:23 | 433 | use tokio::time::{sleep, Duration as TokioDuration}; | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `std::collections::HashMap` --> src/lib.rs:25:5 | 25 | use std::collections::HashMap; | ^^^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `tokio::sync::RwLock` --> src/lib.rs:28:5 | 28 | use tokio::sync::RwLock; | ^^^^^^^^^^^^^^^^^^^ warning: unused import: `super::*` --> src/lib.rs:148:9 | 148 | use super::*; | ^^^^^^^^ warning: unused variable: `user_id` --> src/auth/token_validator.rs:256:21 | 256 | if let Some(user_id) = user_id { | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` | = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default warning: unused variable: `sample_rate` --> src/codecs/mp3.rs:766:13 | 766 | let sample_rate = | ^^^^^^^^^^^ | help: if this is intentional, prefix it with an underscore | 766 | let _sample_rate = | + help: you might have meant to pattern match on the similarly named constant `BRANCHES` | 766 - let sample_rate = 766 + let transcoding::pipeline::queue::PriorityQueue::next_job::{closure#0}::BRANCHES = | warning: unused variable: `chunk` --> src/core/buffer.rs:453:25 | 453 | if let Some(ref chunk) = chunk { | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk` warning: unused variable: `master_time` --> src/core/sync.rs:451:9 | 451 | master_time: MasterTime, | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_time` warning: unused variable: `encoding_service` --> src/routes/encoding.rs:83:11 | 83 | State(encoding_service): State, | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoding_service` warning: unused variable: `data` --> src/streaming/websocket.rs:363:43 | 363 | ... Message::Ping(data) => { | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` warning: unused variable: `conn` --> src/streaming/websocket.rs:365:45 | 365 | ... if let Some(conn) = | ^^^^ help: if this is intentional, prefix it with an underscore: `_conn` warning: unused variable: `global_sender_clone` --> src/streaming/websocket.rs:317:13 | 317 | let global_sender_clone = self.global_sender.clone(); | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_sender_clone` warning: unused variable: `ping_id` --> src/streaming/websocket.rs:532:42 | 532 | WebSocketCommand::SyncPong { ping_id, client_timestamp } => { | ^^^^^^^ help: try ignoring the field: `ping_id: _` warning: unused variable: `token` --> src/streaming/websocket.rs:777:9 | 777 | let token = params.token.or_else(|| { | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` warning: unused import: `AudioEffect` --> src/audio/pipeline.rs:11:29 | 11 | use crate::audio::effects::{AudioEffect, EffectsChain}; | ^^^^^^^^^^^ warning: unused import: `Hasher` --> src/cache/audio_cache.rs:3:23 | 3 | use std::hash::{Hash, Hasher}; | ^^^^^^ warning: unused import: `super` --> src/structured_logging.rs:179:9 | 179 | use super::*; | ^^^^^ warning: unused variable: `config` --> src/codecs/mp3.rs:579:16 | 579 | pub fn new(config: DecoderConfig) -> Result { | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` warning: unused variable: `resource` --> src/error.rs:449:34 | 449 | AppError::NotFound { resource } => StreamError::FileNotFound, | ^^^^^^^^ help: try ignoring the field: `resource: _` warning: unused variable: `err` --> src/error.rs:513:13 | 513 | fn from(err: serde_json::Error) -> Self { | ^^^ help: if this is intentional, prefix it with an underscore: `_err` warning: type `Mp3Metadata` is more private than the item `Mp3EncoderImpl::set_metadata` --> src/codecs/mp3.rs:368:5 | 368 | pub async fn set_metadata(&self, metadata: Mp3Metadata) -> Result<(), AppError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Mp3EncoderImpl::set_metadata` is reachable at visibility `pub` | note: but type `Mp3Metadata` is only usable at visibility `pub(self)` --> src/codecs/mp3.rs:249:1 | 249 | struct Mp3Metadata { | ^^^^^^^^^^^^^^^^^^ = note: `#[warn(private_interfaces)]` on by default warning: type `Mp3EncoderStats` is more private than the item `Mp3EncoderImpl::get_stats` --> src/codecs/mp3.rs:376:5 | 376 | pub async fn get_stats(&self) -> Mp3EncoderStats { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Mp3EncoderImpl::get_stats` is reachable at visibility `pub` | note: but type `Mp3EncoderStats` is only usable at visibility `pub(self)` --> src/codecs/mp3.rs:264:1 | 264 | struct Mp3EncoderStats { | ^^^^^^^^^^^^^^^^^^^^^^ warning: type `Mp3DecoderStats` is more private than the item `Mp3DecoderImpl::get_stats` --> src/codecs/mp3.rs:605:5 | 605 | pub async fn get_stats(&self) -> Mp3DecoderStats { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Mp3DecoderImpl::get_stats` is reachable at visibility `pub` | note: but type `Mp3DecoderStats` is only usable at visibility `pub(self)` --> src/codecs/mp3.rs:281:1 | 281 | struct Mp3DecoderStats { | ^^^^^^^^^^^^^^^^^^^^^^ warning: type `Mp3StreamInfo` is more private than the item `Mp3DecoderImpl::get_stream_info` --> src/codecs/mp3.rs:610:5 | 610 | pub async fn get_stream_info(&self) -> Option { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Mp3DecoderImpl::get_stream_info` is reachable at visibility `pub` | note: but type `Mp3StreamInfo` is only usable at visibility `pub(self)` --> src/codecs/mp3.rs:230:1 | 230 | struct Mp3StreamInfo { | ^^^^^^^^^^^^^^^^^^^^ warning: field `config` is never read --> src/analytics/mod.rs:126:5 | 120 | pub struct AnalyticsEngine { | --------------- field in this struct ... 126 | config: Arc, | ^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: method `cleanup_old_sessions` is never used --> src/analytics/mod.rs:668:14 | 129 | impl AnalyticsEngine { | -------------------- method in this implementation ... 668 | async fn cleanup_old_sessions(&self) { | ^^^^^^^^^^^^^^^^^^^^ warning: fields `dry_wet_mix` and `performance_metrics` are never read --> src/audio/effects.rs:43:5 | 39 | pub struct EffectsChain { | ------------ fields in this struct ... 43 | dry_wet_mix: f32, | ^^^^^^^^^^^ ... 47 | performance_metrics: Arc>, | ^^^^^^^^^^^^^^^^^^^ | = note: `EffectsChain` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `filter_coeffs` and `history` are never read --> src/audio/realtime.rs:169:5 | 163 | pub struct AdaptiveResampler { | ----------------- fields in this struct ... 169 | filter_coeffs: Vec, | ^^^^^^^^^^^^^ 170 | /// Historique pour interpolation 171 | history: VecDeque, | ^^^^^^^ | = note: `AdaptiveResampler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `adaptive_buffer`, `target_latency_ms`, `measured_latency_ms`, `latency_history`, and `pid_controller` are never read --> src/audio/realtime.rs:197:5 | 195 | pub struct LatencyManager { | -------------- fields in this struct 196 | /// Buffer adaptatif 197 | adaptive_buffer: RingBuffer, | ^^^^^^^^^^^^^^^ 198 | /// Latence cible 199 | target_latency_ms: f32, | ^^^^^^^^^^^^^^^^^ 200 | /// Latence mesurée 201 | measured_latency_ms: f32, | ^^^^^^^^^^^^^^^^^^^ 202 | /// Historique des latences 203 | latency_history: VecDeque, | ^^^^^^^^^^^^^^^ 204 | /// Contrôleur PID pour ajustement 205 | pid_controller: PIDController, | ^^^^^^^^^^^^^^ | = note: `LatencyManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `psychoacoustic_model` and `bandwidth_extension` are never read --> src/codecs/aac.rs:134:5 | 129 | struct AacEncoderState { | --------------- fields in this struct ... 134 | psychoacoustic_model: PsychoacousticModel, | ^^^^^^^^^^^^^^^^^^^^ 135 | bandwidth_extension: BandwidthExtension, | ^^^^^^^^^^^^^^^^^^^ | = note: `AacEncoderState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `spectral_data` is never read --> src/codecs/aac.rs:145:5 | 140 | struct AacDecoderState { | --------------- field in this struct ... 145 | spectral_data: SpectralData, | ^^^^^^^^^^^^^ | = note: `AacDecoderState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `masking_threshold`, `perceptual_entropy`, and `tonal_components` are never read --> src/codecs/aac.rs:151:5 | 150 | struct PsychoacousticModel { | ------------------- fields in this struct 151 | masking_threshold: Vec, | ^^^^^^^^^^^^^^^^^ 152 | perceptual_entropy: f32, | ^^^^^^^^^^^^^^^^^^ 153 | tonal_components: Vec, | ^^^^^^^^^^^^^^^^ | = note: `PsychoacousticModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `sbr_active`, `ps_active`, and `high_freq_reconstruction` are never read --> src/codecs/aac.rs:159:5 | 158 | struct BandwidthExtension { | ------------------ fields in this struct 159 | sbr_active: bool, | ^^^^^^^^^^ 160 | ps_active: bool, | ^^^^^^^^^ 161 | high_freq_reconstruction: Vec, | ^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `BandwidthExtension` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `concealment_method` is never read --> src/codecs/aac.rs:168:5 | 166 | struct ErrorConcealmentState { | --------------------- field in this struct 167 | last_good_spectrum: Option>, 168 | concealment_method: AacConcealMethod, | ^^^^^^^^^^^^^^^^^^ | = note: `ErrorConcealmentState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `mdct_coefficients`, `scale_factors`, and `quantized_spectrum` are never read --> src/codecs/aac.rs:175:5 | 174 | struct SpectralData { | ------------ fields in this struct 175 | mdct_coefficients: Vec, | ^^^^^^^^^^^^^^^^^ 176 | scale_factors: Vec, | ^^^^^^^^^^^^^ 177 | quantized_spectrum: Vec, | ^^^^^^^^^^^^^^^^^^ | = note: `SpectralData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `frequency`, `amplitude`, and `phase` are never read --> src/codecs/aac.rs:183:5 | 182 | struct TonalComponent { | -------------- fields in this struct 183 | frequency: f32, | ^^^^^^^^^ 184 | amplitude: f32, | ^^^^^^^^^ 185 | phase: f32, | ^^^^^ | = note: `TonalComponent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `input_buffer` and `quality_preset` are never read --> src/codecs/mp3.rs:34:5 | 26 | pub struct Mp3EncoderImpl { | -------------- fields in this struct ... 34 | input_buffer: Arc>>, | ^^^^^^^^^^^^ 35 | /// Quality preset utilisé 36 | quality_preset: Mp3QualityPreset, | ^^^^^^^^^^^^^^ | = note: `Mp3EncoderImpl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `output_buffer` and `frame_cache` are never read --> src/codecs/mp3.rs:49:5 | 41 | pub struct Mp3DecoderImpl { | -------------- fields in this struct ... 49 | output_buffer: Arc>>, | ^^^^^^^^^^^^^ 50 | /// Cache des frames pour seeking 51 | frame_cache: Arc>>, | ^^^^^^^^^^^ | = note: `Mp3DecoderImpl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `initialized`, `samples_encoded`, `bytes_generated`, `last_frame_timestamp`, and `internal_buffers` are never read --> src/codecs/mp3.rs:141:5 | 139 | struct Mp3EncoderState { | --------------- fields in this struct 140 | /// Initialized flag 141 | initialized: bool, | ^^^^^^^^^^^ 142 | /// Total samples encodés 143 | samples_encoded: u64, | ^^^^^^^^^^^^^^^ 144 | /// Total bytes générés 145 | bytes_generated: u64, | ^^^^^^^^^^^^^^^ 146 | /// Dernière frame encodée 147 | last_frame_timestamp: Option, | ^^^^^^^^^^^^^^^^^^^^ 148 | /// Buffers internes LAME (simulation) 149 | internal_buffers: Vec, | ^^^^^^^^^^^^^^^^ | = note: `Mp3EncoderState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `initialized`, `total_samples`, `decode_buffer`, and `current_frame` are never read --> src/codecs/mp3.rs:158:5 | 156 | struct Mp3DecoderState { | --------------- fields in this struct 157 | /// Initialized flag 158 | initialized: bool, | ^^^^^^^^^^^ ... 162 | total_samples: Option, | ^^^^^^^^^^^^^ ... 166 | decode_buffer: Vec, | ^^^^^^^^^^^^^ 167 | /// Frame courante 168 | current_frame: Option, | ^^^^^^^^^^^^^ | = note: `Mp3DecoderState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `audio_data`, `timestamp`, `bitrate`, and `header_info` are never read --> src/codecs/mp3.rs:175:5 | 173 | struct Mp3Frame { | -------- fields in this struct 174 | /// Données audio 175 | audio_data: Vec, | ^^^^^^^^^^ 176 | /// Timestamp de la frame 177 | timestamp: Duration, | ^^^^^^^^^ 178 | /// Bitrate de cette frame 179 | bitrate: u32, | ^^^^^^^ 180 | /// Information du header 181 | header_info: Mp3FrameHeader, | ^^^^^^^^^^^ | = note: `Mp3Frame` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: multiple fields are never read --> src/codecs/mp3.rs:188:9 | 186 | struct Mp3FrameHeader { | -------------- fields in this struct 187 | /// Version MPEG 188 | pub mpeg_version: MpegVersion, | ^^^^^^^^^^^^ 189 | /// Layer 190 | pub layer: u8, | ^^^^^ 191 | /// Protection CRC 192 | pub crc_protection: bool, | ^^^^^^^^^^^^^^ 193 | /// Bitrate index 194 | pub bitrate_index: u8, | ^^^^^^^^^^^^^ 195 | /// Sample rate index 196 | pub samplerate_index: u8, | ^^^^^^^^^^^^^^^^ 197 | /// Padding 198 | pub padding: bool, | ^^^^^^^ 199 | /// Mode (stereo, joint stereo, etc.) 200 | pub channel_mode: ChannelMode, | ^^^^^^^^^^^^ 201 | /// Mode extension pour joint stereo 202 | pub mode_extension: u8, | ^^^^^^^^^^^^^^ 203 | /// Copyright 204 | pub copyright: bool, | ^^^^^^^^^ 205 | /// Original 206 | pub original: bool, | ^^^^^^^^ 207 | /// Emphasis 208 | pub emphasis: u8, | ^^^^^^^^ | = note: `Mp3FrameHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: fields `average_bitrate`, `channels`, `duration`, `encoding_mode`, `has_id3`, and `encoder_info` are never read --> src/codecs/mp3.rs:232:9 | 230 | struct Mp3StreamInfo { | ------------- fields in this struct 231 | /// Bitrate moyen 232 | pub average_bitrate: u32, | ^^^^^^^^^^^^^^^ ... 236 | pub channels: u8, | ^^^^^^^^ 237 | /// Durée totale 238 | pub duration: Option, | ^^^^^^^^ 239 | /// Mode d'encodage détecté 240 | pub encoding_mode: Mp3EncodingMode, | ^^^^^^^^^^^^^ 241 | /// Présence d'ID3 tags 242 | pub has_id3: bool, | ^^^^^^^ 243 | /// Version de l'encoder détectée 244 | pub encoder_info: Option, | ^^^^^^^^^^^^ | = note: `Mp3StreamInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: fields `frames_encoded`, `total_encoding_time`, `average_compression_ratio`, `average_bitrate`, `peak_cpu_usage`, and `encoding_errors` are never read --> src/codecs/mp3.rs:266:9 | 264 | struct Mp3EncoderStats { | --------------- fields in this struct 265 | /// Total frames encodées 266 | pub frames_encoded: u64, | ^^^^^^^^^^^^^^ 267 | /// Temps total d'encodage 268 | pub total_encoding_time: Duration, | ^^^^^^^^^^^^^^^^^^^ 269 | /// Ratio de compression moyen 270 | pub average_compression_ratio: f32, | ^^^^^^^^^^^^^^^^^^^^^^^^^ 271 | /// Bitrate réel moyen 272 | pub average_bitrate: f32, | ^^^^^^^^^^^^^^^ 273 | /// Peak utilisation CPU 274 | pub peak_cpu_usage: f32, | ^^^^^^^^^^^^^^ 275 | /// Erreurs d'encodage 276 | pub encoding_errors: u32, | ^^^^^^^^^^^^^^^ | = note: `Mp3EncoderStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: fields `frames_decoded`, `total_decoding_time`, `recovered_errors`, `corrupted_frames`, and `peak_cpu_usage` are never read --> src/codecs/mp3.rs:283:9 | 281 | struct Mp3DecoderStats { | --------------- fields in this struct 282 | /// Total frames décodées 283 | pub frames_decoded: u64, | ^^^^^^^^^^^^^^ 284 | /// Temps total de décodage 285 | pub total_decoding_time: Duration, | ^^^^^^^^^^^^^^^^^^^ 286 | /// Erreurs de décodage récupérées 287 | pub recovered_errors: u32, | ^^^^^^^^^^^^^^^^ 288 | /// Frames corrompues détectées 289 | pub corrupted_frames: u32, | ^^^^^^^^^^^^^^^^ 290 | /// Peak utilisation CPU 291 | pub peak_cpu_usage: f32, | ^^^^^^^^^^^^^^ | = note: `Mp3DecoderStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: methods `optimize_config_for_preset`, `initialize_lame_encoder`, `encode_with_lame`, and `generate_id3v1_tag` are never used --> src/codecs/mp3.rs:381:8 | 324 | impl Mp3EncoderImpl { | ------------------- methods in this implementation ... 381 | fn optimize_config_for_preset(&mut self) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ... 419 | async fn initialize_lame_encoder(&self) -> Result<(), AppError> { | ^^^^^^^^^^^^^^^^^^^^^^^ ... 443 | async fn encode_with_lame(&self, samples: &[f32]) -> Result, AppError> { | ^^^^^^^^^^^^^^^^ ... 509 | fn generate_id3v1_tag(&self, metadata: &Mp3Metadata) -> Vec { | ^^^^^^^^^^^^^^^^^^ warning: methods `analyze_mp3_header`, `parse_frame_header`, `bitrate_from_index`, `samplerate_from_index`, and `decode_mp3_frame` are never used --> src/codecs/mp3.rs:616:14 | 577 | impl Mp3DecoderImpl { | ------------------- methods in this implementation ... 616 | async fn analyze_mp3_header(&self, data: &[u8]) -> Result { | ^^^^^^^^^^^^^^^^^^ ... 656 | fn parse_frame_header(&self, header_bytes: &[u8]) -> Result { | ^^^^^^^^^^^^^^^^^^ ... 709 | fn bitrate_from_index(&self, index: u8, version: MpegVersion) -> u32 { | ^^^^^^^^^^^^^^^^^^ ... 734 | fn samplerate_from_index(&self, index: u8, version: MpegVersion) -> u32 { | ^^^^^^^^^^^^^^^^^^^^^ ... 758 | async fn decode_mp3_frame(&self, frame_data: &[u8]) -> Result { | ^^^^^^^^^^^^^^^^ warning: fields `adaptation_rate` and `quality_history` are never read --> src/codecs/opus.rs:146:5 | 143 | struct BandwidthAdaptation { | ------------------- fields in this struct ... 146 | adaptation_rate: f32, | ^^^^^^^^^^^^^^^ 147 | quality_history: Vec, | ^^^^^^^^^^^^^^^ | = note: `BandwidthAdaptation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: method `adapt_bitrate` is never used --> src/codecs/opus.rs:319:8 | 206 | impl OpusEncoderImpl { | -------------------- method in this implementation ... 319 | fn adapt_bitrate( | ^^^^^^^^^^^^^ warning: field `bandwidth_analyzer` is never read --> src/core/buffer.rs:33:5 | 23 | pub struct BufferManager { | ------------- field in this struct ... 33 | bandwidth_analyzer: Arc, | ^^^^^^^^^^^^^^^^^^ | = note: `BufferManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `model` is never read --> src/core/buffer.rs:209:5 | 205 | pub struct BufferPredictor { | --------------- field in this struct ... 209 | model: Arc>, | ^^^^^ | = note: `BufferPredictor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `analytics` is never read --> src/core/stream.rs:27:5 | 19 | pub struct StreamManager { | ------------- field in this struct ... 27 | analytics: Arc, | ^^^^^^^^^ | = note: `StreamManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `config` and `timed_metadata` are never read --> src/core/sync.rs:70:5 | 61 | pub struct StreamSynchronizer { | ------------------ fields in this struct ... 70 | config: StreamSyncConfig, | ^^^^^^ 71 | /// Métadonnées temps réel (paroles, etc.) 72 | timed_metadata: Arc>, | ^^^^^^^^^^^^^^ | = note: `StreamSynchronizer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `ntp_clients`, `time_offset`, and `sync_quality` are never read --> src/core/sync.rs:81:5 | 77 | pub struct TimeServer { | ---------- fields in this struct ... 81 | ntp_clients: Vec, | ^^^^^^^^^^^ 82 | /// Décalage mesuré avec les serveurs externes 83 | time_offset: Arc, | ^^^^^^^^^^^ 84 | /// Qualité de la synchronisation 85 | sync_quality: Arc, | ^^^^^^^^^^^^ | = note: `TimeServer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `compensations` and `config` are never read --> src/core/sync.rs:103:5 | 99 | pub struct DriftCompensator { | ---------------- fields in this struct ... 103 | compensations: Arc>, | ^^^^^^^^^^^^^ 104 | /// Configuration 105 | config: DriftCompensatorConfig, | ^^^^^^ | = note: `DriftCompensator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `timed_events` and `max_size` are never read --> src/core/sync.rs:195:5 | 191 | pub struct SyncBuffer { | ---------- fields in this struct ... 195 | timed_events: VecDeque, | ^^^^^^^^^^^^ 196 | /// Configuration 197 | max_size: usize, | ^^^^^^^^ | = note: `SyncBuffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: field `start_time` is never read --> src/core/sync.rs:752:5 | 751 | pub struct MasterClock { | ----------- field in this struct 752 | start_time: Instant, | ^^^^^^^^^^ | = note: `MasterClock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: fields `config` and `connection` are never read --> src/event_bus.rs:30:5 | 29 | pub struct RabbitMQEventBus { | ---------------- fields in this struct 30 | config: config::RabbitMQConfig, // Use the canonical config type | ^^^^^^ 31 | connection: Option, | ^^^^^^^^^^ warning: field `total_bytes` is never read --> src/health/mod.rs:850:5 | 849 | struct DiskInfo { | -------- field in this struct 850 | total_bytes: u64, | ^^^^^^^^^^^ warning: field `grafana_manager` is never read --> src/monitoring/mod.rs:78:5 | 75 | pub struct MonitoringManager { | ----------------- field in this struct ... 78 | grafana_manager: Arc, | ^^^^^^^^^^^^^^^ | = note: `MonitoringManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `config` is never read --> src/monitoring/grafana_dashboards.rs:14:5 | 12 | pub struct GrafanaManager { | -------------- field in this struct 13 | dashboards: Arc>>, 14 | config: GrafanaConfig, | ^^^^^^ | = note: `GrafanaManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: field `config` is never read --> src/monitoring/tracing_module.rs:13:5 | 12 | pub struct TracingManager { | -------------- field in this struct 13 | config: TracingConfig, | ^^^^^^ | = note: `TracingManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis warning: methods `update_quality_decisions`, `get_lower_quality`, and `get_higher_quality` are never used --> src/streaming/adaptive.rs:272:14 | 177 | impl AdaptiveStreamingManager { | ----------------------------- methods in this implementation ... 272 | async fn update_quality_decisions(&self) { | ^^^^^^^^^^^^^^^^^^^^^^^^ ... 322 | fn get_lower_quality(&self, current_quality: &str) -> Option<&AdaptiveProfile> { | ^^^^^^^^^^^^^^^^^ ... 337 | fn get_higher_quality(&self, current_quality: &str) -> Option<&AdaptiveProfile> { | ^^^^^^^^^^^^^^^^^^ warning: field `stats_collector` is never read --> src/streaming/live_recording.rs:292:5 | 287 | pub struct LiveRecordingManager { | -------------------- field in this struct ... 292 | stats_collector: Arc>>, | ^^^^^^^^^^^^^^^ | = note: `LiveRecordingManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis warning: field `stats_tx` is never read --> src/streaming/webrtc.rs:162:5 | 158 | pub struct WebRTCManager { | ------------- field in this struct ... 162 | stats_tx: mpsc::Sender, | ^^^^^^^^ | = note: `WebRTCManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis warning: comparison is useless due to type limits --> src/config/mod.rs:604:30 | 604 | if self.port == 0 || self.port > 65535 { | ^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_comparisons)]` on by default warning: `stream_server` (lib test) generated 104 warnings (run `cargo fix --lib -p stream_server --tests` to apply 40 suggestions) Finished `test` profile [unoptimized + debuginfo] target(s) in 6.73s warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.25.4, sqlx-postgres v0.7.4 note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` Running unittests src/lib.rs (target/debug/deps/stream_server-c10365a7417b13f6) running 1 test test streaming::websocket_transport::tests::test_send_adjustment_sends_websocket_event ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 97 filtered out; finished in 0.00s