[INFO] cloning repository https://github.com/topecongiro/rtsp-client [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/topecongiro/rtsp-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftopecongiro%2Frtsp-client", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftopecongiro%2Frtsp-client'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] be0f745128d04f873c8ce8d7554d087b4487f0d7 [INFO] checking topecongiro/rtsp-client against master#d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee for pr-127481-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftopecongiro%2Frtsp-client" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/topecongiro/rtsp-client on toolchain d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/topecongiro/rtsp-client [INFO] finished tweaking git repo https://github.com/topecongiro/rtsp-client [INFO] tweaked toml for git repo https://github.com/topecongiro/rtsp-client written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/topecongiro/rtsp-client 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" "+d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sdp-types v0.1.3 [INFO] [stderr] Downloaded http-auth v0.1.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a3fc07631ddaf66ae776691ddb0f854957402f844e22349b4da2bf7684d09337 [INFO] running `Command { std: "docker" "start" "-a" "a3fc07631ddaf66ae776691ddb0f854957402f844e22349b4da2bf7684d09337", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a3fc07631ddaf66ae776691ddb0f854957402f844e22349b4da2bf7684d09337", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a3fc07631ddaf66ae776691ddb0f854957402f844e22349b4da2bf7684d09337", kill_on_drop: false }` [INFO] [stdout] a3fc07631ddaf66ae776691ddb0f854957402f844e22349b4da2bf7684d09337 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+d3dd34a1d4a7e25a92a0d65994bb01a5d17c59ee" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 338daa541acdca89b57d0c1b0bd5b52fa97b54e7e1e335f50718eaa5352c1246 [INFO] running `Command { std: "docker" "start" "-a" "338daa541acdca89b57d0c1b0bd5b52fa97b54e7e1e335f50718eaa5352c1246", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.117 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.86 [INFO] [stderr] Compiling typenum v1.15.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Checking smallvec v1.8.0 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking tinyvec_macros v0.1.0 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Checking lock_api v0.4.6 [INFO] [stderr] Compiling generic-array v0.14.5 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling indexmap v1.8.0 [INFO] [stderr] Checking tinyvec v1.5.1 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Checking matches v0.1.9 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking once_cell v1.9.0 [INFO] [stderr] Compiling quote v1.0.15 [INFO] [stderr] Checking getrandom v0.2.4 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking unicode-normalization v0.1.19 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking mio v0.7.14 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Compiling http-auth v0.1.5 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking pin-project-lite v0.2.8 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking cpufeatures v0.2.1 [INFO] [stderr] Compiling anyhow v1.0.53 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking unicode-bidi v0.3.7 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking bytes v1.1.0 [INFO] [stderr] Checking form_urlencoded v1.0.1 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking md-5 v0.9.1 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Checking textwrap v0.14.2 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking sdp-types v0.1.3 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Compiling tokio-macros v1.7.0 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling clap_derive v3.0.14 [INFO] [stderr] Checking tokio v1.16.1 [INFO] [stderr] Checking thiserror v1.0.30 [INFO] [stderr] Checking clap v3.0.14 [INFO] [stderr] Checking tokio-stream v0.1.8 [INFO] [stderr] Checking rtsp_client v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `tokio::select` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::select; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::io::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IpAddr` [INFO] [stdout] --> src/rtsp.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{IpAddr, SocketAddr}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::RangeInclusive` [INFO] [stdout] --> src/rtsp.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::RangeInclusive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/rtsp.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::select` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::select; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/rtsp.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::{net::{TcpStream, UdpSocket}, io::AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rtp::RtpStream` [INFO] [stdout] --> src/rtsp.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::rtp::RtpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::io::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow` [INFO] [stdout] --> src/rtsp/data_stream.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | use anyhow::{anyhow, bail}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToSocketAddrs` [INFO] [stdout] --> src/rtsp/data_stream.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ToSocketAddrs, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `url::Url` [INFO] [stdout] --> src/rtsp/data_stream.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use url::Url; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Config` [INFO] [stdout] --> src/rtsp/data_stream.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::Config; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IpAddr` [INFO] [stdout] --> src/rtsp.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{IpAddr, SocketAddr}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::RangeInclusive` [INFO] [stdout] --> src/rtsp.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::RangeInclusive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::Rng` [INFO] [stdout] --> src/rtsp.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::Rng; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/rtsp.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::{net::{TcpStream, UdpSocket}, io::AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rtp::RtpStream` [INFO] [stdout] --> src/rtsp.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::rtp::RtpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow` [INFO] [stdout] --> src/rtsp/data_stream.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | use anyhow::{anyhow, bail}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToSocketAddrs` [INFO] [stdout] --> src/rtsp/data_stream.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ToSocketAddrs, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `url::Url` [INFO] [stdout] --> src/rtsp/data_stream.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use url::Url; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Config` [INFO] [stdout] --> src/rtsp/data_stream.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::Config; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_stream::StreamExt` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use tokio_stream::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `video_stream` [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let video_stream = client.connect(url).await?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_stream` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> src/main.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let mut buf = vec![0u8; 1500]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf2` [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut buf2 = vec![0u8; 1500]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_buf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval` [INFO] [stdout] --> src/main.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut interval = interval(Duration::from_secs(5)); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_stream::StreamExt` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use tokio_stream::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let mut client = RtspClient::new(config).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let mut buf = vec![0u8; 1500]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut buf2 = vec![0u8; 1500]; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut interval = interval(Duration::from_secs(5)); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtpStream` is never constructed [INFO] [stdout] --> src/rtp.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) struct RtpStream { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpStreamError` is never used [INFO] [stdout] --> src/rtp.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) enum RtpStreamError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rtp.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 29 | impl RtpStream { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub(crate) fn new(socket: Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtpPacket` is never constructed [INFO] [stdout] --> src/rtp/packet.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct RtpPacket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensionHeader` is never constructed [INFO] [stdout] --> src/rtp/packet.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct ExtensionHeader { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpPayloadType` is never used [INFO] [stdout] --> src/rtp/packet.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) enum RtpPayloadType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpPacketParseError` is never used [INFO] [stdout] --> src/rtp/packet.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | pub(crate) enum RtpPacketParseError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated constants are never used [INFO] [stdout] --> src/rtp/packet.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 60 | impl RtpPacket { [INFO] [stdout] | -------------- associated constants in this implementation [INFO] [stdout] 61 | const VERSION_MASK: u8 = 0b1100_0000u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 62 | const PADDING_BIT: u8 = 0b0010_0000u8; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 63 | const EXTENSION_BIT: u8 = 0b0001_0000u8; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 64 | const CSRC_COUNT_MASK: u8 = 0b0000_1111u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | [INFO] [stdout] 66 | const MARKER_BIT: u8 = 0b1000_0000u8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 67 | const PAYLOAD_TYPE_MASK: u8 = 0b0111_1111u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 68 | [INFO] [stdout] 69 | const RTP_VERSION: u8 = 0b1000_0000u8; // 2 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 70 | const MIN_SIZE: usize = 12; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rtsp_stream` and `data_stream` are never read [INFO] [stdout] --> src/rtsp.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) struct VideoStream { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 62 | rtsp_stream: RtspStream, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 63 | data_stream: DataStream, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `play` is never used [INFO] [stdout] --> src/rtsp.rs:145:25 [INFO] [stdout] | [INFO] [stdout] 97 | impl RtspStream { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub(crate) async fn play(&mut self, session: u32) -> anyhow::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Options` and `Play` are never constructed [INFO] [stdout] --> src/rtsp.rs:244:5 [INFO] [stdout] | [INFO] [stdout] 242 | enum RtspMethod { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 243 | Describe, [INFO] [stdout] 244 | Options, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 245 | Play, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RtspMethod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `response` is never read [INFO] [stdout] --> src/rtsp.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 287 | pub(crate) struct DescribeResponse { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 288 | response: RtspResponse, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DescribeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `session` is never used [INFO] [stdout] --> src/rtsp.rs:293:19 [INFO] [stdout] | [INFO] [stdout] 292 | impl DescribeResponse { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 293 | pub(crate) fn session(&self) -> &sdp_types::Session { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PlayResponse` is never constructed [INFO] [stdout] --> src/rtsp.rs:313:19 [INFO] [stdout] | [INFO] [stdout] 313 | pub(crate) struct PlayResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `response` and `session` are never read [INFO] [stdout] --> src/rtsp.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 318 | pub(crate) struct SetupResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 319 | response: RtspResponse, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 320 | peer_ports: (u16, u16), [INFO] [stdout] 321 | session: (u32, usize), // (Session ID, timeout) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SetupResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `timeout` and `session_id` are never used [INFO] [stdout] --> src/rtsp.rs:325:19 [INFO] [stdout] | [INFO] [stdout] 324 | impl SetupResponse { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 325 | pub(crate) fn timeout(&self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | pub(crate) fn session_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version` is never read [INFO] [stdout] --> src/rtsp.rs:378:5 [INFO] [stdout] | [INFO] [stdout] 374 | pub(crate) struct Config { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 378 | version: RtspVersion, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rtp_socket`, `rtcp_socket`, and `ports` are never read [INFO] [stdout] --> src/rtsp/data_stream.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) struct DataStream { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 16 | rtp_socket: Arc, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | rtcp_socket: Arc, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | ports: RtpRtcpPorts, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local` and `peer` are never read [INFO] [stdout] --> src/rtsp/data_stream.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) struct RtpRtcpPorts { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 22 | local: (u16, u16), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | peer: (u16, u16), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `local_rtp_port` and `local_rtcp_port` are never used [INFO] [stdout] --> src/rtsp/data_stream.rs:33:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl DataStream { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 33 | pub(crate) fn local_rtp_port(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub(crate) fn local_rtcp_port(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `punch_firewall_hole` is never used [INFO] [stdout] --> src/rtsp/data_stream.rs:76:10 [INFO] [stdout] | [INFO] [stdout] 76 | async fn punch_firewall_hole( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / env_logger::builder() [INFO] [stdout] 37 | | .filter_module(env!("CARGO_PKG_NAME"), LevelFilter::Trace) [INFO] [stdout] 38 | | .try_init(); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 36 | let _ = env_logger::builder() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 42 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `video_stream` [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let video_stream = client.connect(url).await?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_video_stream` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> src/main.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | let mut buf = vec![0u8; 1500]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf2` [INFO] [stdout] --> src/main.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | let mut buf2 = vec![0u8; 1500]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_buf2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval` [INFO] [stdout] --> src/main.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut interval = interval(Duration::from_secs(5)); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let mut client = RtspClient::new(config).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let mut buf = vec![0u8; 1500]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut buf2 = vec![0u8; 1500]; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | let mut interval = interval(Duration::from_secs(5)); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtpStream` is never constructed [INFO] [stdout] --> src/rtp.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) struct RtpStream { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpStreamError` is never used [INFO] [stdout] --> src/rtp.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) enum RtpStreamError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rtp.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 29 | impl RtpStream { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub(crate) fn new(socket: Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RtpPacket` is never constructed [INFO] [stdout] --> src/rtp/packet.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct RtpPacket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensionHeader` is never constructed [INFO] [stdout] --> src/rtp/packet.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct ExtensionHeader { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpPayloadType` is never used [INFO] [stdout] --> src/rtp/packet.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) enum RtpPayloadType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RtpPacketParseError` is never used [INFO] [stdout] --> src/rtp/packet.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | pub(crate) enum RtpPacketParseError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated constants are never used [INFO] [stdout] --> src/rtp/packet.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 60 | impl RtpPacket { [INFO] [stdout] | -------------- associated constants in this implementation [INFO] [stdout] 61 | const VERSION_MASK: u8 = 0b1100_0000u8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 62 | const PADDING_BIT: u8 = 0b0010_0000u8; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 63 | const EXTENSION_BIT: u8 = 0b0001_0000u8; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 64 | const CSRC_COUNT_MASK: u8 = 0b0000_1111u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | [INFO] [stdout] 66 | const MARKER_BIT: u8 = 0b1000_0000u8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 67 | const PAYLOAD_TYPE_MASK: u8 = 0b0111_1111u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 68 | [INFO] [stdout] 69 | const RTP_VERSION: u8 = 0b1000_0000u8; // 2 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 70 | const MIN_SIZE: usize = 12; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rtsp_stream` and `data_stream` are never read [INFO] [stdout] --> src/rtsp.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) struct VideoStream { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 62 | rtsp_stream: RtspStream, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 63 | data_stream: DataStream, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `play` is never used [INFO] [stdout] --> src/rtsp.rs:145:25 [INFO] [stdout] | [INFO] [stdout] 97 | impl RtspStream { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 145 | pub(crate) async fn play(&mut self, session: u32) -> anyhow::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Options` and `Play` are never constructed [INFO] [stdout] --> src/rtsp.rs:244:5 [INFO] [stdout] | [INFO] [stdout] 242 | enum RtspMethod { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 243 | Describe, [INFO] [stdout] 244 | Options, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 245 | Play, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RtspMethod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `response` is never read [INFO] [stdout] --> src/rtsp.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 287 | pub(crate) struct DescribeResponse { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 288 | response: RtspResponse, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DescribeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `session` is never used [INFO] [stdout] --> src/rtsp.rs:293:19 [INFO] [stdout] | [INFO] [stdout] 292 | impl DescribeResponse { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 293 | pub(crate) fn session(&self) -> &sdp_types::Session { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PlayResponse` is never constructed [INFO] [stdout] --> src/rtsp.rs:313:19 [INFO] [stdout] | [INFO] [stdout] 313 | pub(crate) struct PlayResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `response` and `session` are never read [INFO] [stdout] --> src/rtsp.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 318 | pub(crate) struct SetupResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 319 | response: RtspResponse, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 320 | peer_ports: (u16, u16), [INFO] [stdout] 321 | session: (u32, usize), // (Session ID, timeout) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SetupResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `timeout` and `session_id` are never used [INFO] [stdout] --> src/rtsp.rs:325:19 [INFO] [stdout] | [INFO] [stdout] 324 | impl SetupResponse { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 325 | pub(crate) fn timeout(&self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | pub(crate) fn session_id(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version` is never read [INFO] [stdout] --> src/rtsp.rs:378:5 [INFO] [stdout] | [INFO] [stdout] 374 | pub(crate) struct Config { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 378 | version: RtspVersion, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `rtp_socket`, `rtcp_socket`, and `ports` are never read [INFO] [stdout] --> src/rtsp/data_stream.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) struct DataStream { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 16 | rtp_socket: Arc, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | rtcp_socket: Arc, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | ports: RtpRtcpPorts, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local` and `peer` are never read [INFO] [stdout] --> src/rtsp/data_stream.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) struct RtpRtcpPorts { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 22 | local: (u16, u16), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | peer: (u16, u16), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `local_rtp_port` and `local_rtcp_port` are never used [INFO] [stdout] --> src/rtsp/data_stream.rs:33:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl DataStream { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 33 | pub(crate) fn local_rtp_port(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub(crate) fn local_rtcp_port(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `punch_firewall_hole` is never used [INFO] [stdout] --> src/rtsp/data_stream.rs:76:10 [INFO] [stdout] | [INFO] [stdout] 76 | async fn punch_firewall_hole( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / env_logger::builder() [INFO] [stdout] 37 | | .filter_module(env!("CARGO_PKG_NAME"), LevelFilter::Trace) [INFO] [stdout] 38 | | .try_init(); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 36 | let _ = env_logger::builder() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 42 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.29s [INFO] running `Command { std: "docker" "inspect" "338daa541acdca89b57d0c1b0bd5b52fa97b54e7e1e335f50718eaa5352c1246", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "338daa541acdca89b57d0c1b0bd5b52fa97b54e7e1e335f50718eaa5352c1246", kill_on_drop: false }` [INFO] [stdout] 338daa541acdca89b57d0c1b0bd5b52fa97b54e7e1e335f50718eaa5352c1246