[INFO] updating cached repository csperkins/crtp [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/csperkins/crtp [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/csperkins/crtp" "work/ex/clippy-test-run/sources/stable/gh/csperkins/crtp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/csperkins/crtp'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/csperkins/crtp" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/csperkins/crtp"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/csperkins/crtp'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 17bfcbb4f3430b89b56dff46791dd63d16128edd [INFO] sha for GitHub repo csperkins/crtp: 17bfcbb4f3430b89b56dff46791dd63d16128edd [INFO] validating manifest of csperkins/crtp on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of csperkins/crtp on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing csperkins/crtp [INFO] finished frobbing csperkins/crtp [INFO] frobbed toml for csperkins/crtp written to work/ex/clippy-test-run/sources/stable/gh/csperkins/crtp/Cargo.toml [INFO] started frobbing csperkins/crtp [INFO] finished frobbing csperkins/crtp [INFO] frobbed toml for csperkins/crtp written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/csperkins/crtp/Cargo.toml [INFO] crate csperkins/crtp has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting csperkins/crtp against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/csperkins/crtp:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c09c9f6ccac23c1d14097204289c9f6a2d016573245241f1e9d3e405697c0b46 [INFO] running `"docker" "start" "-a" "c09c9f6ccac23c1d14097204289c9f6a2d016573245241f1e9d3e405697c0b46"` [INFO] [stderr] Checking net2 v0.2.26 [INFO] [stderr] Checking mio v0.6.4 [INFO] [stderr] Checking crtp v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/session.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | network : network, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `network` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/session.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | timeout : timeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/session.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | network : network, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `network` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/session.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | timeout : timeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Cursor` [INFO] [stderr] --> src/packets.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | use std::io::Cursor; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/packets.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | stats [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/packets.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | let stats = RtpSessionStatistics{pckt_count : 0}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packets.rs:109:64 [INFO] [stderr] | [INFO] [stderr] 109 | cumul_lost : BigEndian::read_u32(&packet[offset + 4..]) & 0x00ffffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_ffff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Instant` [INFO] [stderr] --> src/main.rs:35:27 [INFO] [stderr] | [INFO] [stderr] 35 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/packets.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buflen` [INFO] [stderr] --> src/packets.rs:98:38 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_buflen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | fn parse_sr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_rr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/packets.rs:159:7 [INFO] [stderr] | [INFO] [stderr] 159 | for i in 0..rc { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chunk` [INFO] [stderr] --> src/packets.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | let mut chunk = SdesChunk { [INFO] [stderr] | ^^^^^ help: consider using `_chunk` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:157:15 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:157:34 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:178:14 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rc` [INFO] [stderr] --> src/packets.rs:178:24 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^ help: consider using `_rc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:178:33 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `packet` [INFO] [stderr] --> src/packets.rs:178:46 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rc` [INFO] [stderr] --> src/packets.rs:182:24 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^ help: consider using `_rc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:182:33 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `packet` [INFO] [stderr] --> src/packets.rs:182:46 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parsed_packet` [INFO] [stderr] --> src/packets.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | let parsed_packet = match pt { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_parsed_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:77:29 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/session.rs:77:44 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/session.rs:77:57 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^ help: consider using `_addr` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timer` [INFO] [stderr] --> src/session.rs:81:38 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^ help: consider using `_timer` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:89:29 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/session.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/session.rs:89:57 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^ help: consider using `_addr` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timer` [INFO] [stderr] --> src/session.rs:93:38 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^ help: consider using `_timer` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timeout_after` [INFO] [stderr] --> src/main.rs:64:31 [INFO] [stderr] | [INFO] [stderr] 64 | fn set_timeout(&mut self, timeout_after : Duration, id : TimerId) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_timeout_after` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/main.rs:64:57 [INFO] [stderr] | [INFO] [stderr] 64 | fn set_timeout(&mut self, timeout_after : Duration, id : TimerId) { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/main.rs:68:34 [INFO] [stderr] | [INFO] [stderr] 68 | fn cancel_timeout(&mut self, id : TimerId) { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packets.rs:158:7 [INFO] [stderr] | [INFO] [stderr] 158 | let mut offset = 4; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SSRC` [INFO] [stderr] --> src/packets.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | struct SSRC(u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpTimestamp` [INFO] [stderr] --> src/packets.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | struct RtpTimestamp(u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `NtpTimestamp` [INFO] [stderr] --> src/packets.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | struct NtpTimestamp(u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SenderInfo` [INFO] [stderr] --> src/packets.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | struct SenderInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ReportBlock` [INFO] [stderr] --> src/packets.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | struct ReportBlock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SdesChunk` [INFO] [stderr] --> src/packets.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | struct SdesChunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `RtcpPacket` [INFO] [stderr] --> src/packets.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | enum RtcpPacket { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `CompoundRtcpPacket` [INFO] [stderr] --> src/packets.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | struct CompoundRtcpPacket { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpPacket` [INFO] [stderr] --> src/packets.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | struct RtpPacket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpSessionStatistics` [INFO] [stderr] --> src/packets.rs:75:1 [INFO] [stderr] | [INFO] [stderr] 75 | struct RtpSessionStatistics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpSession` [INFO] [stderr] --> src/packets.rs:79:1 [INFO] [stderr] | [INFO] [stderr] 79 | struct RtpSession { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/packets.rs:84:3 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn new() -> RtpSession { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `run` [INFO] [stderr] --> src/packets.rs:90:3 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn run(&mut self) -> RtpSessionStatistics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rtp_packet` [INFO] [stderr] --> src/packets.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_report_block` [INFO] [stderr] --> src/packets.rs:105:1 [INFO] [stderr] | [INFO] [stderr] 105 | fn parse_report_block(packet : &[u8], offset : usize) -> ReportBlock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_sr` [INFO] [stderr] --> src/packets.rs:117:1 [INFO] [stderr] | [INFO] [stderr] 117 | fn parse_sr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rr` [INFO] [stderr] --> src/packets.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_rr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_sdes` [INFO] [stderr] --> src/packets.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_bye` [INFO] [stderr] --> src/packets.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_app` [INFO] [stderr] --> src/packets.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rtcp_packet` [INFO] [stderr] --> src/packets.rs:186:1 [INFO] [stderr] | [INFO] [stderr] 186 | fn parse_rtcp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Inactive` [INFO] [stderr] --> src/session.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub struct Inactive; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Active` [INFO] [stderr] --> src/session.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub struct Active; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Leaving` [INFO] [stderr] --> src/session.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub struct Leaving; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Session` [INFO] [stderr] --> src/session.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | pub struct Session<'a, State, > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/session.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn new(network: &'a SendDatagram, timeout: &'a Timeout) -> Session<'a, Inactive> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `join` [INFO] [stderr] --> src/session.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn join(self) -> Session<'a, Active> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `leave` [INFO] [stderr] --> src/session.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn leave(self) -> Session<'a, Leaving> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv_datagram` [INFO] [stderr] --> src/session.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `timeout` [INFO] [stderr] --> src/session.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv_datagram` [INFO] [stderr] --> src/session.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `timeout` [INFO] [stderr] --> src/session.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:201:22 [INFO] [stderr] | [INFO] [stderr] 201 | let v = (buf[offset + 0] >> 6) & 0x03; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:202:22 [INFO] [stderr] | [INFO] [stderr] 202 | let p = ((buf[offset + 0] >> 5) & 0x01) == 1; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `buf[offset + 0]` [INFO] [stderr] --> src/packets.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | let rc = (buf[offset + 0] >> 0) & 0x1f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | let rc = (buf[offset + 0] >> 0) & 0x1f; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(buf[offset + 3] as usize)` [INFO] [stderr] --> src/packets.rs:206:16 [INFO] [stderr] | [INFO] [stderr] 206 | (((buf[offset + 3] as usize) << 0) & 0x0fff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | timer.set_timeout(Duration::from_millis(5000), TimerId::RtcpTimer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | timer.set_timeout(Duration::from_millis(5000), TimerId::RtcpTimer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Cursor` [INFO] [stderr] --> src/packets.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | use std::io::Cursor; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/packets.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | stats [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/packets.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | let stats = RtpSessionStatistics{pckt_count : 0}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packets.rs:109:64 [INFO] [stderr] | [INFO] [stderr] 109 | cumul_lost : BigEndian::read_u32(&packet[offset + 4..]) & 0x00ffffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_ffff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Instant` [INFO] [stderr] --> src/main.rs:35:27 [INFO] [stderr] | [INFO] [stderr] 35 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/packets.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buflen` [INFO] [stderr] --> src/packets.rs:98:38 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_buflen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | fn parse_sr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_rr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/packets.rs:159:7 [INFO] [stderr] | [INFO] [stderr] 159 | for i in 0..rc { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chunk` [INFO] [stderr] --> src/packets.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | let mut chunk = SdesChunk { [INFO] [stderr] | ^^^^^ help: consider using `_chunk` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:157:15 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:157:34 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:178:14 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rc` [INFO] [stderr] --> src/packets.rs:178:24 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^ help: consider using `_rc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:178:33 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `packet` [INFO] [stderr] --> src/packets.rs:178:46 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/packets.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rc` [INFO] [stderr] --> src/packets.rs:182:24 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^ help: consider using `_rc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/packets.rs:182:33 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `packet` [INFO] [stderr] --> src/packets.rs:182:46 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^ help: consider using `_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parsed_packet` [INFO] [stderr] --> src/packets.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | let parsed_packet = match pt { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_parsed_packet` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:77:29 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/session.rs:77:44 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/session.rs:77:57 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^ help: consider using `_addr` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timer` [INFO] [stderr] --> src/session.rs:81:38 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^ help: consider using `_timer` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:89:29 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/session.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^ help: consider using `_buf` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/session.rs:89:57 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^ help: consider using `_addr` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/session.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^ help: consider using `_now` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timer` [INFO] [stderr] --> src/session.rs:93:38 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^ help: consider using `_timer` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `timeout_after` [INFO] [stderr] --> src/main.rs:64:31 [INFO] [stderr] | [INFO] [stderr] 64 | fn set_timeout(&mut self, timeout_after : Duration, id : TimerId) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_timeout_after` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/main.rs:64:57 [INFO] [stderr] | [INFO] [stderr] 64 | fn set_timeout(&mut self, timeout_after : Duration, id : TimerId) { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/main.rs:68:34 [INFO] [stderr] | [INFO] [stderr] 68 | fn cancel_timeout(&mut self, id : TimerId) { [INFO] [stderr] | ^^ help: consider using `_id` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packets.rs:158:7 [INFO] [stderr] | [INFO] [stderr] 158 | let mut offset = 4; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SSRC` [INFO] [stderr] --> src/packets.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | struct SSRC(u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpTimestamp` [INFO] [stderr] --> src/packets.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | struct RtpTimestamp(u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `NtpTimestamp` [INFO] [stderr] --> src/packets.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | struct NtpTimestamp(u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SenderInfo` [INFO] [stderr] --> src/packets.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | struct SenderInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ReportBlock` [INFO] [stderr] --> src/packets.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | struct ReportBlock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SdesChunk` [INFO] [stderr] --> src/packets.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | struct SdesChunk { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `RtcpPacket` [INFO] [stderr] --> src/packets.rs:60:1 [INFO] [stderr] | [INFO] [stderr] 60 | enum RtcpPacket { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `CompoundRtcpPacket` [INFO] [stderr] --> src/packets.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | struct CompoundRtcpPacket { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpPacket` [INFO] [stderr] --> src/packets.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | struct RtpPacket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpSessionStatistics` [INFO] [stderr] --> src/packets.rs:75:1 [INFO] [stderr] | [INFO] [stderr] 75 | struct RtpSessionStatistics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `RtpSession` [INFO] [stderr] --> src/packets.rs:79:1 [INFO] [stderr] | [INFO] [stderr] 79 | struct RtpSession { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/packets.rs:84:3 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn new() -> RtpSession { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `run` [INFO] [stderr] --> src/packets.rs:90:3 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn run(&mut self) -> RtpSessionStatistics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rtp_packet` [INFO] [stderr] --> src/packets.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | fn parse_rtp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_report_block` [INFO] [stderr] --> src/packets.rs:105:1 [INFO] [stderr] | [INFO] [stderr] 105 | fn parse_report_block(packet : &[u8], offset : usize) -> ReportBlock { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_sr` [INFO] [stderr] --> src/packets.rs:117:1 [INFO] [stderr] | [INFO] [stderr] 117 | fn parse_sr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rr` [INFO] [stderr] --> src/packets.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | fn parse_rr(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_sdes` [INFO] [stderr] --> src/packets.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | fn parse_sdes(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_bye` [INFO] [stderr] --> src/packets.rs:178:1 [INFO] [stderr] | [INFO] [stderr] 178 | fn parse_bye(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_app` [INFO] [stderr] --> src/packets.rs:182:1 [INFO] [stderr] | [INFO] [stderr] 182 | fn parse_app(p : bool, rc : u8, len : usize, packet : &[u8]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rtcp_packet` [INFO] [stderr] --> src/packets.rs:186:1 [INFO] [stderr] | [INFO] [stderr] 186 | fn parse_rtcp_packet(buf : &mut [u8], buflen : usize) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Inactive` [INFO] [stderr] --> src/session.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub struct Inactive; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Active` [INFO] [stderr] --> src/session.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub struct Active; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Leaving` [INFO] [stderr] --> src/session.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub struct Leaving; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Session` [INFO] [stderr] --> src/session.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | pub struct Session<'a, State, > { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/session.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn new(network: &'a SendDatagram, timeout: &'a Timeout) -> Session<'a, Inactive> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `join` [INFO] [stderr] --> src/session.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn join(self) -> Session<'a, Active> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `leave` [INFO] [stderr] --> src/session.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn leave(self) -> Session<'a, Leaving> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv_datagram` [INFO] [stderr] --> src/session.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `timeout` [INFO] [stderr] --> src/session.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv_datagram` [INFO] [stderr] --> src/session.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | fn recv_datagram(&self, now : Instant, buf : &[u8], addr : SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `timeout` [INFO] [stderr] --> src/session.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | fn timeout(&self, now : Instant, timer : u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:201:22 [INFO] [stderr] | [INFO] [stderr] 201 | let v = (buf[offset + 0] >> 6) & 0x03; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:202:22 [INFO] [stderr] | [INFO] [stderr] 202 | let p = ((buf[offset + 0] >> 5) & 0x01) == 1; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `buf[offset + 0]` [INFO] [stderr] --> src/packets.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | let rc = (buf[offset + 0] >> 0) & 0x1f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `offset` [INFO] [stderr] --> src/packets.rs:203:22 [INFO] [stderr] | [INFO] [stderr] 203 | let rc = (buf[offset + 0] >> 0) & 0x1f; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(buf[offset + 3] as usize)` [INFO] [stderr] --> src/packets.rs:206:16 [INFO] [stderr] | [INFO] [stderr] 206 | (((buf[offset + 3] as usize) << 0) & 0x0fff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | timer.set_timeout(Duration::from_millis(5000), TimerId::RtcpTimer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | timer.set_timeout(Duration::from_millis(5000), TimerId::RtcpTimer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.91s [INFO] running `"docker" "inspect" "c09c9f6ccac23c1d14097204289c9f6a2d016573245241f1e9d3e405697c0b46"` [INFO] running `"docker" "rm" "-f" "c09c9f6ccac23c1d14097204289c9f6a2d016573245241f1e9d3e405697c0b46"` [INFO] [stdout] c09c9f6ccac23c1d14097204289c9f6a2d016573245241f1e9d3e405697c0b46