[INFO] cloning repository https://github.com/alexbezrukov/streaming [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexbezrukov/streaming" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexbezrukov%2Fstreaming", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexbezrukov%2Fstreaming'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5f04ffd2625b45cbb3bb6530223540c64833ca95 [INFO] checking alexbezrukov/streaming/5f04ffd2625b45cbb3bb6530223540c64833ca95 against master#86a49fd71fecd25b0fd20247db0ba95eeceaba28 for pr-129543-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexbezrukov%2Fstreaming" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/alexbezrukov/streaming [INFO] finished tweaking git repo https://github.com/alexbezrukov/streaming [INFO] tweaked toml for git repo https://github.com/alexbezrukov/streaming written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/alexbezrukov/streaming on toolchain 86a49fd71fecd25b0fd20247db0ba95eeceaba28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+86a49fd71fecd25b0fd20247db0ba95eeceaba28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/alexbezrukov/streaming 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" "+86a49fd71fecd25b0fd20247db0ba95eeceaba28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rustls-platform-verifier v0.6.2 [INFO] [stderr] Downloaded cmake v0.1.57 [INFO] [stderr] Downloaded crc16 v0.4.0 [INFO] [stderr] Downloaded tokio-test v0.4.5 [INFO] [stderr] Downloaded reqwest v0.13.1 [INFO] [stderr] Downloaded webpki-root-certs v1.0.5 [INFO] [stderr] Downloaded redis v0.24.0 [INFO] [stderr] Downloaded aws-lc-rs v1.15.2 [INFO] [stderr] Downloaded aws-lc-sys v0.35.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+86a49fd71fecd25b0fd20247db0ba95eeceaba28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ff7f61e0b32850ce18f391eab6a6e3293329958be6fd42155bf158860bfbee55 [INFO] running `Command { std: "docker" "start" "-a" "ff7f61e0b32850ce18f391eab6a6e3293329958be6fd42155bf158860bfbee55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ff7f61e0b32850ce18f391eab6a6e3293329958be6fd42155bf158860bfbee55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff7f61e0b32850ce18f391eab6a6e3293329958be6fd42155bf158860bfbee55", kill_on_drop: false }` [INFO] [stdout] ff7f61e0b32850ce18f391eab6a6e3293329958be6fd42155bf158860bfbee55 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+86a49fd71fecd25b0fd20247db0ba95eeceaba28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f312c04623e52870abe71c894ea9814549aeac687912b50c96298add473eb6f7 [INFO] running `Command { std: "docker" "start" "-a" "f312c04623e52870abe71c894ea9814549aeac687912b50c96298add473eb6f7", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Compiling aws-lc-rs v1.15.2 [INFO] [stderr] Compiling zmij v1.0.12 [INFO] [stderr] Checking rustls-pki-types v1.13.2 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Checking regex-syntax v0.8.8 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Compiling cc v1.2.52 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking ryu v1.0.22 [INFO] [stderr] Checking brotli-decompressor v5.0.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking openssl-probe v0.2.0 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Compiling crc16 v0.4.0 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking rustls-native-certs v0.8.3 [INFO] [stderr] Checking iri-string v0.7.10 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking clap_builder v4.5.54 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking arc-swap v1.8.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking flate2 v1.1.5 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking hdrhistogram v7.5.4 [INFO] [stderr] Checking serde_path_to_error v0.1.20 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking nu-ansi-term v0.50.3 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking dotenvy v0.15.7 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking brotli v8.0.2 [INFO] [stderr] Compiling aws-lc-sys v0.35.0 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking clap v4.5.54 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking compression-codecs v0.4.35 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling axum-macros v0.4.2 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking tungstenite v0.24.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tokio-retry v0.3.0 [INFO] [stderr] Checking async-compression v0.4.36 [INFO] [stderr] Checking tokio-tungstenite v0.24.0 [INFO] [stderr] Checking tokio-stream v0.1.18 [INFO] [stderr] Checking rustls-webpki v0.103.8 [INFO] [stderr] Checking tokio-test v0.4.5 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking rustls-platform-verifier v0.6.2 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking redis v0.24.0 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking reqwest v0.13.1 [INFO] [stderr] Checking live-streaming-cdn v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> src/cdn/edge_manager.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Deserialize, Serialize}; [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: `manifest::HLSManifestGenerator` [INFO] [stdout] --> src/streaming/hls/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use manifest::HLSManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manifest::DASHManifestGenerator` [INFO] [stdout] --> src/streaming/dash/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use manifest::DASHManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `VecDeque` [INFO] [stdout] --> src/streaming/webrtc/connection.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::{HashMap, VecDeque}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StreamQuality` and `VideoSegment` [INFO] [stdout] --> src/streaming/webrtc/connection.rs:11:21 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::domain::{StreamQuality, VideoSegment}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connection::WebRTCConnection` [INFO] [stdout] --> src/streaming/webrtc/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use connection::WebRTCConnection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> src/cdn/edge_manager.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebRTCManager` and `WebRTCSignal` [INFO] [stdout] --> src/streaming/webrtc/mod.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | pub use signaling::{WebRTCManager, WebRTCSignal}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hls::manifest::HLSManifestGenerator` [INFO] [stdout] --> src/streaming/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use hls::manifest::HLSManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manifest::HLSManifestGenerator` [INFO] [stdout] --> src/streaming/hls/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use manifest::HLSManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manifest::DASHManifestGenerator` [INFO] [stdout] --> src/streaming/dash/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use manifest::DASHManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap` and `VecDeque` [INFO] [stdout] --> src/streaming/webrtc/connection.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::{HashMap, VecDeque}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StreamQuality` and `VideoSegment` [INFO] [stdout] --> src/streaming/webrtc/connection.rs:11:21 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::domain::{StreamQuality, VideoSegment}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connection::WebRTCConnection` [INFO] [stdout] --> src/streaming/webrtc/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use connection::WebRTCConnection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebRTCManager` and `WebRTCSignal` [INFO] [stdout] --> src/streaming/webrtc/mod.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | pub use signaling::{WebRTCManager, WebRTCSignal}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hls::manifest::HLSManifestGenerator` [INFO] [stdout] --> src/streaming/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use hls::manifest::HLSManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dash::manifest::DASHManifestGenerator` [INFO] [stdout] --> src/streaming/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use dash::manifest::DASHManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebRTCManager` and `WebRTCSignal` [INFO] [stdout] --> src/streaming/mod.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | pub use webrtc::signaling::{WebRTCManager, WebRTCSignal}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dash::manifest::DASHManifestGenerator` [INFO] [stdout] --> src/streaming/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use dash::manifest::DASHManifestGenerator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `WebRTCManager` and `WebRTCSignal` [INFO] [stdout] --> src/streaming/mod.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | pub use webrtc::signaling::{WebRTCManager, WebRTCSignal}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Semaphore` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::sync::{mpsc, Semaphore}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `quality::StreamQuality` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | domain::{quality::StreamQuality, stream::VideoSegment}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AccelType`, `HardwareAcceleration`, `SimpleTranscoder`, `TranscoderError`, `TranscoderService`, and `TranscodingStats` [INFO] [stdout] --> src/ingest/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | TranscoderService, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | TranscoderError, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | SimpleTranscoder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | HardwareAcceleration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | AccelType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | TranscodingStats, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PoolStats` and `TranscoderPool` [INFO] [stdout] --> src/ingest/mod.rs:22:27 [INFO] [stdout] | [INFO] [stdout] 22 | pub use transcoder_pool::{TranscoderPool, PoolStats}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `segment_buffer::SegmentBuffer` [INFO] [stdout] --> src/ingest/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use segment_buffer::SegmentBuffer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Semaphore` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::sync::{mpsc, Semaphore}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `quality::StreamQuality` [INFO] [stdout] --> src/ingest/transcoder_pool.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | domain::{quality::StreamQuality, stream::VideoSegment}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream_manager::StreamManager` [INFO] [stdout] --> src/manager/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use stream_manager::StreamManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AccelType`, `HardwareAcceleration`, `SimpleTranscoder`, `TranscoderError`, `TranscoderService`, and `TranscodingStats` [INFO] [stdout] --> src/ingest/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | TranscoderService, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | TranscoderError, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | SimpleTranscoder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | HardwareAcceleration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | AccelType, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | TranscodingStats, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UNIX_EPOCH` [INFO] [stdout] --> src/api/health.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_stream`, `end_stream`, `get_stream`, and `list_streams` [INFO] [stdout] --> src/api/mod.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub use streams::{create_stream, list_streams, get_stream, end_stream}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hls_master_playlist`, `hls_media_playlist`, and `hls_segment` [INFO] [stdout] --> src/api/mod.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | pub use hls::{hls_master_playlist, hls_media_playlist, hls_segment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dash::dash_manifest` [INFO] [stdout] --> src/api/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use dash::dash_manifest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PoolStats` and `TranscoderPool` [INFO] [stdout] --> src/ingest/mod.rs:22:27 [INFO] [stdout] | [INFO] [stdout] 22 | pub use transcoder_pool::{TranscoderPool, PoolStats}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `watch_stream` and `webrtc_signaling` [INFO] [stdout] --> src/api/mod.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | pub use websocket::{watch_stream, webrtc_signaling}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `segment_buffer::SegmentBuffer` [INFO] [stdout] --> src/ingest/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use segment_buffer::SegmentBuffer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream_manager::StreamManager` [INFO] [stdout] --> src/manager/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use stream_manager::StreamManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UNIX_EPOCH` [INFO] [stdout] --> src/api/health.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cache_stats`, `register_edge_node`, and `select_edge_node` [INFO] [stdout] --> src/api/mod.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub use cdn::{register_edge_node, select_edge_node, cache_stats}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `metrics::get_metrics` [INFO] [stdout] --> src/api/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use metrics::get_metrics; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `health::health_check` [INFO] [stdout] --> src/api/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use health::health_check; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_stream`, `end_stream`, `get_stream`, and `list_streams` [INFO] [stdout] --> src/api/mod.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub use streams::{create_stream, list_streams, get_stream, end_stream}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `app_state::AppState` [INFO] [stdout] --> src/state/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use app_state::AppState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hls_master_playlist`, `hls_media_playlist`, and `hls_segment` [INFO] [stdout] --> src/api/mod.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | pub use hls::{hls_master_playlist, hls_media_playlist, hls_segment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dash::dash_manifest` [INFO] [stdout] --> src/api/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use dash::dash_manifest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `watch_stream` and `webrtc_signaling` [INFO] [stdout] --> src/api/mod.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | pub use websocket::{watch_stream, webrtc_signaling}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cache_stats`, `register_edge_node`, and `select_edge_node` [INFO] [stdout] --> src/api/mod.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub use cdn::{register_edge_node, select_edge_node, cache_stats}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `metrics::get_metrics` [INFO] [stdout] --> src/api/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use metrics::get_metrics; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `health::health_check` [INFO] [stdout] --> src/api/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use health::health_check; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `app_state::AppState` [INFO] [stdout] --> src/state/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use app_state::AppState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CdnConfig`, `RedisConfig`, `ServerConfig`, and `StreamingConfig` [INFO] [stdout] --> src/config/mod.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | pub use settings::{Config, ServerConfig, RedisConfig, CdnConfig, StreamingConfig}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CdnConfig`, `RedisConfig`, `ServerConfig`, and `StreamingConfig` [INFO] [stdout] --> src/config/mod.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | pub use settings::{Config, ServerConfig, RedisConfig, CdnConfig, StreamingConfig}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `segments` [INFO] [stdout] --> src/streaming/dash/manifest.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | segments: &HashMap>, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segments` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/ingest/rtmp.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | addr: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sequence` is assigned to, but never used [INFO] [stdout] --> src/ingest/transcoder.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | let mut sequence = 0u64; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sequence` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/ingest/transcoder.rs:321:21 [INFO] [stdout] | [INFO] [stdout] 321 | let data = Bytes::copy_from_slice(&buffer[..n]); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sequence` is never read [INFO] [stdout] --> src/ingest/transcoder.rs:331:17 [INFO] [stdout] | [INFO] [stdout] 331 | sequence += 1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer_location` [INFO] [stdout] --> src/manager/stream_manager.rs:247:36 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn select_edge_node(&self, viewer_location: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `quality` [INFO] [stdout] --> src/manager/stream_manager.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | quality: StreamQuality, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quality` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `segments` [INFO] [stdout] --> src/streaming/dash/manifest.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | segments: &HashMap>, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segments` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/ingest/rtmp.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | addr: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `sequence` is assigned to, but never used [INFO] [stdout] --> src/ingest/transcoder.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | let mut sequence = 0u64; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sequence` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/ingest/transcoder.rs:321:21 [INFO] [stdout] | [INFO] [stdout] 321 | let data = Bytes::copy_from_slice(&buffer[..n]); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sequence` is never read [INFO] [stdout] --> src/ingest/transcoder.rs:331:17 [INFO] [stdout] | [INFO] [stdout] 331 | sequence += 1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `viewer_location` [INFO] [stdout] --> src/manager/stream_manager.rs:247:36 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn select_edge_node(&self, viewer_location: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewer_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `quality` [INFO] [stdout] --> src/manager/stream_manager.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | quality: StreamQuality, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quality` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `keyframe` and `timestamp` are never read [INFO] [stdout] --> src/domain/stream.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct VideoSegment { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub keyframe: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 26 | pub timestamp: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VideoSegment` has derived impls for the traits `Clone` and `Debug`, but these are 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: fields `quality`, `bitrate_kbps`, and `resolution` are never read [INFO] [stdout] --> src/domain/stream.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AdaptiveStream { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 32 | pub quality: StreamQuality, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 33 | pub bitrate_kbps: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 34 | pub resolution: (u32, u32), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdaptiveStream` 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 `bitrate_kbps` and `resolution` are never used [INFO] [stdout] --> src/domain/quality.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl StreamQuality { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn bitrate_kbps(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn resolution(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_load` and `is_available` are never used [INFO] [stdout] --> src/domain/edge_node.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl EdgeNode { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn update_load(&mut self, load: usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn is_available(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `regions`, `strategy`, and `health_config` are never read [INFO] [stdout] --> src/cdn/edge_manager.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct EdgeNodeManager { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 13 | /// Active edge nodes [INFO] [stdout] 14 | nodes: DashMap>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | regions: DashMap>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | strategy: LoadBalancingStrategy, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | health_config: HealthCheckConfig, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `heartbeat_timeout`, `max_load_percentage`, and `auto_failover` are never read [INFO] [stdout] --> src/cdn/edge_manager.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct HealthCheckConfig { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 48 | /// Maximum time since last heartbeat before node is unhealthy [INFO] [stdout] 49 | pub heartbeat_timeout: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub max_load_percentage: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub auto_failover: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HealthCheckConfig` 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: struct `NodeSelection` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct NodeSelection { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SelectionReason` is never used [INFO] [stdout] --> src/cdn/edge_manager.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum SelectionReason { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdgeNodeStats` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub struct EdgeNodeStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cdn/edge_manager.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 97 | impl EdgeNodeManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn with_health_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub async fn register_node(&self, node: EdgeNode) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub async fn unregister_node(&self, node_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub async fn update_heartbeat(&self, node_id: &str, load: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub async fn select_node( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | async fn select_least_loaded(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | async fn select_by_geography( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | async fn select_weighted(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | async fn select_round_robin(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 355 | async fn select_random(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub async fn get_healthy_nodes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | async fn is_node_healthy(&self, node: &EdgeNode) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub async fn get_all_nodes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | pub async fn get_node(&self, node_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn get_nodes_in_region(&self, location: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 440 | async fn get_alternative_nodes(&self, exclude_id: &str, count: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 452 | fn find_closest_region(&self, viewer_location: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 471 | pub async fn get_node_stats(&self, node_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 491 | pub async fn get_cluster_stats(&self) -> ClusterStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | pub async fn run_health_check(&self) -> HealthCheckReport { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn set_strategy(&mut self, strategy: LoadBalancingStrategy) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pub fn get_strategy(&self) -> LoadBalancingStrategy { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ClusterStats` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:559:12 [INFO] [stdout] | [INFO] [stdout] 559 | pub struct ClusterStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HealthCheckReport` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:571:12 [INFO] [stdout] | [INFO] [stdout] 571 | pub struct HealthCheckReport { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_nodes` and `health_percentage` are never used [INFO] [stdout] --> src/cdn/edge_manager.rs:577:12 [INFO] [stdout] | [INFO] [stdout] 576 | impl HealthCheckReport { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 577 | pub fn total_nodes(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 581 | pub fn health_percentage(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `playlist_type` is never read [INFO] [stdout] --> src/streaming/hls/manifest.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct HLSManifestGenerator { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 6 | target_duration: u32, [INFO] [stdout] 7 | playlist_type: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_id` and `stream_id` are never read [INFO] [stdout] --> src/streaming/webrtc/connection.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct WebRTCConnection { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 2 | pub peer_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 3 | pub stream_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_keyframe_data` is never used [INFO] [stdout] --> src/ingest/rtmp.rs:376:4 [INFO] [stdout] | [INFO] [stdout] 376 | fn is_keyframe_data(data: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtmpServerBuilder` is never constructed [INFO] [stdout] --> src/ingest/rtmp.rs:393:12 [INFO] [stdout] | [INFO] [stdout] 393 | pub struct RtmpServerBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `bind_addr`, `max_connections`, `connection_timeout`, `buffer_size`, and `build` are never used [INFO] [stdout] --> src/ingest/rtmp.rs:401:12 [INFO] [stdout] | [INFO] [stdout] 400 | impl RtmpServerBuilder { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 401 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn bind_addr(mut self, addr: SocketAddr) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | pub fn max_connections(mut self, max: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 420 | pub fn connection_timeout(mut self, timeout: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 425 | pub fn buffer_size(mut self, size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn build(self, state: AppState) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscoderService` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct TranscoderService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HardwareAcceleration` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct HardwareAcceleration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AccelType` is never used [INFO] [stdout] --> src/ingest/transcoder.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum AccelType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodingSession` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | struct TranscodingSession { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodingProcess` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | struct TranscodingProcess { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodedSegment` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct TranscodedSegment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TranscoderError` is never used [INFO] [stdout] --> src/ingest/transcoder.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | pub enum TranscoderError { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ingest/transcoder.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 95 | impl TranscoderService { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 96 | /// Create new transcoder service [INFO] [stdout] 97 | pub fn new(config: Arc) -> Result, TranscoderError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn check_ffmpeg_installation() -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn detect_hardware_acceleration() -> HardwareAcceleration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn check_nvidia_support() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn check_intel_support() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub async fn start_session( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | async fn spawn_transcoding_process( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | fn add_hw_accel_args(&self, cmd: &mut Command) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | fn get_video_codec(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | fn profile_to_quality(profile: &TranscodingProfile) -> StreamQuality { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub async fn stop_session(&self, stream_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn active_sessions(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn has_session(&self, stream_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleTranscoder` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:425:12 [INFO] [stdout] | [INFO] [stdout] 425 | pub struct SimpleTranscoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `transcode` is never used [INFO] [stdout] --> src/ingest/transcoder.rs:428:12 [INFO] [stdout] | [INFO] [stdout] 427 | impl SimpleTranscoder { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 428 | pub fn transcode(data: &Bytes, quality: StreamQuality) -> Bytes { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodingStats` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:446:12 [INFO] [stdout] | [INFO] [stdout] 446 | pub struct TranscodingStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compression_ratio` is never used [INFO] [stdout] --> src/ingest/transcoder.rs:455:12 [INFO] [stdout] | [INFO] [stdout] 454 | impl TranscodingStats { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 455 | pub fn compression_ratio(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscoderPool` is never constructed [INFO] [stdout] --> src/ingest/transcoder_pool.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct TranscoderPool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_next_worker`, `start_session`, `stop_session`, and `get_stats` are never used [INFO] [stdout] --> src/ingest/transcoder_pool.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl TranscoderPool { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 29 | /// Create new transcoder pool [INFO] [stdout] 30 | pub fn new(config: Arc, pool_size: usize) -> Result, TranscoderError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | fn get_next_worker(&self) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn start_session( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub async fn stop_session(&self, stream_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn get_stats(&self) -> PoolStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PoolStats` is never constructed [INFO] [stdout] --> src/ingest/transcoder_pool.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct PoolStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SegmentBuffer` is never constructed [INFO] [stdout] --> src/ingest/segment_buffer.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct SegmentBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ingest/segment_buffer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl SegmentBuffer { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(max_size: usize, max_duration: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn push(&mut self, segment: VideoSegment) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn fill_percentage(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `edge_manager` is never read [INFO] [stdout] --> src/manager/stream_manager.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct StreamManager { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | pub edge_manager: Arc, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `invalidate_cache` and `get_all_edge_nodes` are never used [INFO] [stdout] --> src/manager/stream_manager.rs:334:18 [INFO] [stdout] | [INFO] [stdout] 35 | impl StreamManager { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 334 | pub async fn invalidate_cache(&self, stream_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn get_all_edge_nodes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stream_cache_stats` is never used [INFO] [stdout] --> src/api/cdn.rs:148:14 [INFO] [stdout] | [INFO] [stdout] 148 | pub async fn stream_cache_stats( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_stream_cache` is never used [INFO] [stdout] --> src/api/cdn.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | pub async fn clear_stream_cache( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdgeNodeHealthResponse` is never constructed [INFO] [stdout] --> src/api/cdn.rs:187:12 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct EdgeNodeHealthResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdgeNodeStatus` is never constructed [INFO] [stdout] --> src/api/cdn.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub struct EdgeNodeStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edge_nodes_health` is never used [INFO] [stdout] --> src/api/cdn.rs:203:14 [INFO] [stdout] | [INFO] [stdout] 203 | pub async fn edge_nodes_health( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CdnMetrics` is never constructed [INFO] [stdout] --> src/api/cdn.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | pub struct CdnMetrics { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamBandwidth` is never constructed [INFO] [stdout] --> src/api/cdn.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct StreamBandwidth { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cdn_metrics` is never used [INFO] [stdout] --> src/api/cdn.rs:262:14 [INFO] [stdout] | [INFO] [stdout] 262 | pub async fn cdn_metrics( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/state/app_state.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl AppState { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 15 | /// Create new application state [INFO] [stdout] 16 | pub fn new(stream_manager: Arc, config: Config) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `MissingField` is never constructed [INFO] [stdout] --> src/config/settings.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 313 | pub enum ConfigError { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 324 | MissingField(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConfigError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `keyframe` and `timestamp` are never read [INFO] [stdout] --> src/domain/stream.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct VideoSegment { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub keyframe: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 26 | pub timestamp: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VideoSegment` has derived impls for the traits `Clone` and `Debug`, but these are 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: fields `quality`, `bitrate_kbps`, and `resolution` are never read [INFO] [stdout] --> src/domain/stream.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct AdaptiveStream { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 32 | pub quality: StreamQuality, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 33 | pub bitrate_kbps: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 34 | pub resolution: (u32, u32), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdaptiveStream` 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 `bitrate_kbps` and `resolution` are never used [INFO] [stdout] --> src/domain/quality.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl StreamQuality { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn bitrate_kbps(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn resolution(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `strategy` is never read [INFO] [stdout] --> src/cdn/edge_manager.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct EdgeNodeManager { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | strategy: LoadBalancingStrategy, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `auto_failover` is never read [INFO] [stdout] --> src/cdn/edge_manager.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct HealthCheckConfig { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub auto_failover: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HealthCheckConfig` 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: fields `reason` and `alternatives` are never read [INFO] [stdout] --> src/cdn/edge_manager.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 70 | pub struct NodeSelection { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 71 | pub node: EdgeNode, [INFO] [stdout] 72 | pub reason: SelectionReason, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 73 | pub alternatives: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NodeSelection` 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 `Weighted`, `RoundRobin`, and `OnlyAvailable` are never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub enum SelectionReason { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 80 | Weighted, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 81 | RoundRobin, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | OnlyAvailable, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SelectionReason` 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: struct `EdgeNodeStats` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | pub struct EdgeNodeStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cdn/edge_manager.rs:109:12 [INFO] [stdout] | [INFO] [stdout] 97 | impl EdgeNodeManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn with_health_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub async fn update_heartbeat(&self, node_id: &str, load: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub async fn select_node( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | async fn select_weighted(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | async fn select_round_robin(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 355 | async fn select_random(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub async fn get_all_nodes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | pub async fn get_node(&self, node_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn get_nodes_in_region(&self, location: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 471 | pub async fn get_node_stats(&self, node_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 491 | pub async fn get_cluster_stats(&self) -> ClusterStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 546 | pub fn set_strategy(&mut self, strategy: LoadBalancingStrategy) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pub fn get_strategy(&self) -> LoadBalancingStrategy { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ClusterStats` is never constructed [INFO] [stdout] --> src/cdn/edge_manager.rs:559:12 [INFO] [stdout] | [INFO] [stdout] 559 | pub struct ClusterStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_nodes` and `health_percentage` are never used [INFO] [stdout] --> src/cdn/edge_manager.rs:577:12 [INFO] [stdout] | [INFO] [stdout] 576 | impl HealthCheckReport { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 577 | pub fn total_nodes(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 581 | pub fn health_percentage(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `playlist_type` is never read [INFO] [stdout] --> src/streaming/hls/manifest.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct HLSManifestGenerator { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 6 | target_duration: u32, [INFO] [stdout] 7 | playlist_type: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_id` and `stream_id` are never read [INFO] [stdout] --> src/streaming/webrtc/connection.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct WebRTCConnection { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 2 | pub peer_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 3 | pub stream_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `build` is never used [INFO] [stdout] --> src/ingest/rtmp.rs:430:12 [INFO] [stdout] | [INFO] [stdout] 400 | impl RtmpServerBuilder { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn build(self, state: AppState) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config`, `sessions`, `job_limiter`, and `hw_accel` are never read [INFO] [stdout] --> src/ingest/transcoder.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct TranscoderService { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 19 | /// Application configuration [INFO] [stdout] 20 | config: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | sessions: DashMap>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | job_limiter: Arc, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | hw_accel: HardwareAcceleration, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled` and `accel_type` are never read [INFO] [stdout] --> src/ingest/transcoder.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct HardwareAcceleration { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] 35 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | pub accel_type: AccelType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HardwareAcceleration` 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 `Amd` and `VideoToolbox` are never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum AccelType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 44 | Amd, // AMF [INFO] [stdout] | ^^^ [INFO] [stdout] 45 | VideoToolbox, // macOS [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AccelType` 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: fields `stream_id` and `processes` are never read [INFO] [stdout] --> src/ingest/transcoder.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 49 | struct TranscodingSession { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 50 | stream_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | processes: DashMap, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `quality`, `child`, and `input_tx` are never read [INFO] [stdout] --> src/ingest/transcoder.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | struct TranscodingProcess { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 56 | quality: StreamQuality, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | child: Arc>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 58 | input_tx: mpsc::Sender, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodedSegment` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct TranscodedSegment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ProcessSpawnError`, `WriteError`, `ReadError`, `SessionNotFound`, `InvalidVideoData`, and `JobLimitReached` are never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub enum TranscoderError { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 77 | ProcessSpawnError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | WriteError(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | ReadError(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | SessionNotFound(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | InvalidVideoData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | JobLimitReached, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TranscoderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ingest/transcoder.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 95 | impl TranscoderService { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 96 | /// Create new transcoder service [INFO] [stdout] 97 | pub fn new(config: Arc) -> Result, TranscoderError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub async fn start_session( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | async fn spawn_transcoding_process( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | fn add_hw_accel_args(&self, cmd: &mut Command) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | fn get_video_codec(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 383 | fn profile_to_quality(profile: &TranscodingProfile) -> StreamQuality { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub async fn stop_session(&self, stream_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn active_sessions(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn has_session(&self, stream_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscodingStats` is never constructed [INFO] [stdout] --> src/ingest/transcoder.rs:446:12 [INFO] [stdout] | [INFO] [stdout] 446 | pub struct TranscodingStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compression_ratio` is never used [INFO] [stdout] --> src/ingest/transcoder.rs:455:12 [INFO] [stdout] | [INFO] [stdout] 454 | impl TranscodingStats { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 455 | pub fn compression_ratio(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TranscoderPool` is never constructed [INFO] [stdout] --> src/ingest/transcoder_pool.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct TranscoderPool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_next_worker`, `start_session`, `stop_session`, and `get_stats` are never used [INFO] [stdout] --> src/ingest/transcoder_pool.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl TranscoderPool { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 29 | /// Create new transcoder pool [INFO] [stdout] 30 | pub fn new(config: Arc, pool_size: usize) -> Result, TranscoderError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | fn get_next_worker(&self) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn start_session( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub async fn stop_session(&self, stream_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn get_stats(&self) -> PoolStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PoolStats` is never constructed [INFO] [stdout] --> src/ingest/transcoder_pool.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct PoolStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SegmentBuffer` is never constructed [INFO] [stdout] --> src/ingest/segment_buffer.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct SegmentBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ingest/segment_buffer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl SegmentBuffer { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(max_size: usize, max_duration: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn push(&mut self, segment: VideoSegment) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn fill_percentage(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `edge_manager` is never read [INFO] [stdout] --> src/manager/stream_manager.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct StreamManager { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | pub edge_manager: Arc, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `invalidate_cache` and `get_all_edge_nodes` are never used [INFO] [stdout] --> src/manager/stream_manager.rs:334:18 [INFO] [stdout] | [INFO] [stdout] 35 | impl StreamManager { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 334 | pub async fn invalidate_cache(&self, stream_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn get_all_edge_nodes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stream_cache_stats` is never used [INFO] [stdout] --> src/api/cdn.rs:148:14 [INFO] [stdout] | [INFO] [stdout] 148 | pub async fn stream_cache_stats( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_stream_cache` is never used [INFO] [stdout] --> src/api/cdn.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | pub async fn clear_stream_cache( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdgeNodeHealthResponse` is never constructed [INFO] [stdout] --> src/api/cdn.rs:187:12 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct EdgeNodeHealthResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EdgeNodeStatus` is never constructed [INFO] [stdout] --> src/api/cdn.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub struct EdgeNodeStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edge_nodes_health` is never used [INFO] [stdout] --> src/api/cdn.rs:203:14 [INFO] [stdout] | [INFO] [stdout] 203 | pub async fn edge_nodes_health( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CdnMetrics` is never constructed [INFO] [stdout] --> src/api/cdn.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | pub struct CdnMetrics { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamBandwidth` is never constructed [INFO] [stdout] --> src/api/cdn.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct StreamBandwidth { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cdn_metrics` is never used [INFO] [stdout] --> src/api/cdn.rs:262:14 [INFO] [stdout] | [INFO] [stdout] 262 | pub async fn cdn_metrics( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/state/app_state.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl AppState { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 15 | /// Create new application state [INFO] [stdout] 16 | pub fn new(stream_manager: Arc, config: Config) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `MissingField` is never constructed [INFO] [stdout] --> src/config/settings.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 313 | pub enum ConfigError { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 324 | MissingField(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConfigError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.24.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4` [INFO] running `Command { std: "docker" "inspect" "f312c04623e52870abe71c894ea9814549aeac687912b50c96298add473eb6f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f312c04623e52870abe71c894ea9814549aeac687912b50c96298add473eb6f7", kill_on_drop: false }` [INFO] [stdout] f312c04623e52870abe71c894ea9814549aeac687912b50c96298add473eb6f7