[INFO] crate rml_rtmp 0.2.0 is already in cache [INFO] extracting crate rml_rtmp 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/rml_rtmp/0.2.0 [INFO] extracting crate rml_rtmp 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rml_rtmp/0.2.0 [INFO] validating manifest of rml_rtmp-0.2.0 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 rml_rtmp-0.2.0 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 rml_rtmp-0.2.0 [INFO] finished frobbing rml_rtmp-0.2.0 [INFO] frobbed toml for rml_rtmp-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/rml_rtmp/0.2.0/Cargo.toml [INFO] started frobbing rml_rtmp-0.2.0 [INFO] finished frobbing rml_rtmp-0.2.0 [INFO] frobbed toml for rml_rtmp-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rml_rtmp/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 rml_rtmp-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rml_rtmp/0.2.0:/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] 4eb8d1ad3e9d890825e956724248a7f452bddd4941b964e93bd31ecf5372b619 [INFO] running `"docker" "start" "-a" "4eb8d1ad3e9d890825e956724248a7f452bddd4941b964e93bd31ecf5372b619"` [INFO] [stderr] Checking rml_amf0 v0.1.1 [INFO] [stderr] Checking rml_rtmp v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sessions/server/mod.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | app_name: app_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `app_name` [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/sessions/server/mod.rs:847:13 [INFO] [stderr] | [INFO] [stderr] 847 | transaction_id: transaction_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction_id` [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/sessions/server/mod.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | app_name: app_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `app_name` [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/sessions/server/mod.rs:847:13 [INFO] [stderr] | [INFO] [stderr] 847 | transaction_id: transaction_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction_id` [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 `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | #[macro_use] extern crate failure; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/time.rs:159:37 [INFO] [stderr] | [INFO] [stderr] 159 | const MAX_ADJACENT_VALUE: u32 = 2147483647; //2u32.pow(31) - 1 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/handshake/mod.rs:42:28 [INFO] [stderr] | [INFO] [stderr] 42 | const GENUINE_FMS_CONST : &'static str = "Genuine Adobe Flash Media Server 001"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/handshake/mod.rs:43:27 [INFO] [stderr] | [INFO] [stderr] 43 | const GENUINE_FP_CONST : &'static str = "Genuine Adobe Flash Player 001"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/handshake/mod.rs:242:25 [INFO] [stderr] | [INFO] [stderr] 242 | response_bytes: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Completed { remaining_bytes: bytes, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handshake/mod.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | offset [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/handshake/mod.rs:426:18 [INFO] [stderr] | [INFO] [stderr] 426 | let offset = (first_four_byte_sum % 728) + 776; [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handshake/mod.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | offset [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handshake/mod.rs:432:18 [INFO] [stderr] | [INFO] [stderr] 432 | let offset = (first_four_byte_sum % 728) + 12; [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/messages/types/set_chunk_size.rs:8:23 [INFO] [stderr] | [INFO] [stderr] 8 | const MAX_SIZE: u32 = 0x80000000 - 1; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/messages/message_payload.rs:86:36 [INFO] [stderr] | [INFO] [stderr] 86 | RtmpMessage::Unknown { type_id: _, data } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Unknown { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/messages/mod.rs:110:45 [INFO] [stderr] | [INFO] [stderr] 110 | RtmpMessage::Unknown { type_id, data: _ } => type_id, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Unknown { type_id, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | RtmpMessage::Abort { stream_id: _ } => 2_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Abort { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | RtmpMessage::Acknowledgement { sequence_number: _ } => 3_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | RtmpMessage::Amf0Command { command_name: _, transaction_id: _, command_object: _, additional_arguments: _ } => 20_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Command { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | RtmpMessage::Amf0Data { values: _ } => 18_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Data { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | RtmpMessage::AudioData { data: _ } => 8_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `AudioData { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | RtmpMessage::SetChunkSize { size: _ } => 1_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `SetChunkSize { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | RtmpMessage::SetPeerBandwidth { size: _, limit_type: _ } => 6_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `SetPeerBandwidth { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | RtmpMessage::UserControl { event_type: _, stream_id: _, buffer_length: _, timestamp: _ } => 4_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `UserControl { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | RtmpMessage::VideoData { data: _ } => 9_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `VideoData { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | RtmpMessage::WindowAcknowledgement { size: _ } => 5_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `WindowAcknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:12:36 [INFO] [stderr] | [INFO] [stderr] 12 | const MAX_INITIAL_TIMESTAMP: u32 = 16777215; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | if new_size > 2147483647 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:406:29 [INFO] [stderr] | [INFO] [stderr] 406 | const TYPE_0_MASK: u8 = 0b00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:407:29 [INFO] [stderr] | [INFO] [stderr] 407 | const TYPE_1_MASK: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:408:29 [INFO] [stderr] | [INFO] [stderr] 408 | const TYPE_2_MASK: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:409:29 [INFO] [stderr] | [INFO] [stderr] 409 | const FORMAT_MASK: u8 = 0b11000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:422:27 [INFO] [stderr] | [INFO] [stderr] 422 | const CSID_MASK: u8 = 0b00111111; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:11:36 [INFO] [stderr] | [INFO] [stderr] 11 | const MAX_INITIAL_TIMESTAMP: u32 = 16777215; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:53:23 [INFO] [stderr] | [INFO] [stderr] 53 | if new_size > 2147483647 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:90:33 [INFO] [stderr] | [INFO] [stderr] 90 | if message.data.len() > 16777215 { [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:175:63 [INFO] [stderr] | [INFO] [stderr] 175 | ChunkHeaderFormat::Full => 0b00000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:176:63 [INFO] [stderr] | [INFO] [stderr] 176 | ChunkHeaderFormat::TimeDeltaWithoutMessageStreamId => 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:177:63 [INFO] [stderr] | [INFO] [stderr] 177 | ChunkHeaderFormat::TimeDeltaOnly => 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:178:63 [INFO] [stderr] | [INFO] [stderr] 178 | ChunkHeaderFormat::Empty => 0b11000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:406:54 [INFO] [stderr] | [INFO] [stderr] 406 | StreamState::Publishing {ref stream_key, mode: _} => { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:479:54 [INFO] [stderr] | [INFO] [stderr] 479 | StreamState::Publishing {ref stream_key, mode: _} => { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:703:61 [INFO] [stderr] | [INFO] [stderr] 703 | StreamState::Publishing{ref stream_key, mode: _} => stream_key, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:742:62 [INFO] [stderr] | [INFO] [stderr] 742 | StreamState::Publishing {ref stream_key, mode: _} => stream_key.clone(), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:810:62 [INFO] [stderr] | [INFO] [stderr] 810 | StreamState::Publishing {ref stream_key, mode: _} => stream_key.clone(), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/sessions/client/mod.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | session [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/sessions/client/mod.rs:70:23 [INFO] [stderr] | [INFO] [stderr] 70 | let session = ClientSession { [INFO] [stderr] | _______________________^ [INFO] [stderr] 71 | | start_time: SystemTime::now(), [INFO] [stderr] 72 | | serializer: ChunkSerializer::new(), [INFO] [stderr] 73 | | deserializer: ChunkDeserializer::new(), [INFO] [stderr] ... | [INFO] [stderr] 82 | | config, [INFO] [stderr] 83 | | }; [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: unneeded return statement [INFO] [stderr] --> src/sessions/client/mod.rs:572:17 [INFO] [stderr] | [INFO] [stderr] 572 | return Err(ClientSessionError {kind}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClientSessionError {kind})` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/mod.rs:551:13 [INFO] [stderr] | [INFO] [stderr] 551 | OutstandingTransaction::ConnectionRequested {app_name: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ConnectionRequested { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/mod.rs:570:13 [INFO] [stderr] | [INFO] [stderr] 570 | OutstandingTransaction::CreateStream {purpose: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `CreateStream { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | #[macro_use] extern crate failure; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/time.rs:159:37 [INFO] [stderr] | [INFO] [stderr] 159 | const MAX_ADJACENT_VALUE: u32 = 2147483647; //2u32.pow(31) - 1 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [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: long literal lacking separators [INFO] [stderr] --> src/time.rs:255:40 [INFO] [stderr] | [INFO] [stderr] 255 | let time2 = RtmpTimestamp::new(4000000000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_000_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/time.rs:256:40 [INFO] [stderr] | [INFO] [stderr] 256 | let time3 = RtmpTimestamp::new(3000000000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_000_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/handshake/mod.rs:42:28 [INFO] [stderr] | [INFO] [stderr] 42 | const GENUINE_FMS_CONST : &'static str = "Genuine Adobe Flash Media Server 001"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/handshake/mod.rs:43:27 [INFO] [stderr] | [INFO] [stderr] 43 | const GENUINE_FP_CONST : &'static str = "Genuine Adobe Flash Player 001"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/handshake/mod.rs:242:25 [INFO] [stderr] | [INFO] [stderr] 242 | response_bytes: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Completed { remaining_bytes: bytes, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handshake/mod.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | offset [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/handshake/mod.rs:426:18 [INFO] [stderr] | [INFO] [stderr] 426 | let offset = (first_four_byte_sum % 728) + 776; [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/handshake/mod.rs:433:5 [INFO] [stderr] | [INFO] [stderr] 433 | offset [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/handshake/mod.rs:432:18 [INFO] [stderr] | [INFO] [stderr] 432 | let offset = (first_four_byte_sum % 728) + 12; [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/handshake/mod.rs:553:20 [INFO] [stderr] | [INFO] [stderr] 553 | response_bytes: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Completed { remaining_bytes: data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/handshake/mod.rs:588:20 [INFO] [stderr] | [INFO] [stderr] 588 | response_bytes: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Completed { remaining_bytes: data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/handshake/mod.rs:624:17 [INFO] [stderr] | [INFO] [stderr] 624 | remaining_bytes: _ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Completed { response_bytes: bytes, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/handshake/mod.rs:632:16 [INFO] [stderr] | [INFO] [stderr] 632 | Ok(HandshakeProcessResult::Completed { [INFO] [stderr] | ________________^ [INFO] [stderr] 633 | | response_bytes: _, [INFO] [stderr] 634 | | remaining_bytes: _ [INFO] [stderr] 635 | | }) => {}, [INFO] [stderr] | |________________^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Completed { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/messages/types/set_chunk_size.rs:8:23 [INFO] [stderr] | [INFO] [stderr] 8 | const MAX_SIZE: u32 = 0x80000000 - 1; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/messages/message_payload.rs:86:36 [INFO] [stderr] | [INFO] [stderr] 86 | RtmpMessage::Unknown { type_id: _, data } [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Unknown { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/messages/mod.rs:110:45 [INFO] [stderr] | [INFO] [stderr] 110 | RtmpMessage::Unknown { type_id, data: _ } => type_id, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Unknown { type_id, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | RtmpMessage::Abort { stream_id: _ } => 2_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Abort { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | RtmpMessage::Acknowledgement { sequence_number: _ } => 3_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | RtmpMessage::Amf0Command { command_name: _, transaction_id: _, command_object: _, additional_arguments: _ } => 20_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Command { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | RtmpMessage::Amf0Data { values: _ } => 18_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Data { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | RtmpMessage::AudioData { data: _ } => 8_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `AudioData { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | RtmpMessage::SetChunkSize { size: _ } => 1_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `SetChunkSize { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | RtmpMessage::SetPeerBandwidth { size: _, limit_type: _ } => 6_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `SetPeerBandwidth { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | RtmpMessage::UserControl { event_type: _, stream_id: _, buffer_length: _, timestamp: _ } => 4_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `UserControl { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | RtmpMessage::VideoData { data: _ } => 9_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `VideoData { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/messages/mod.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | RtmpMessage::WindowAcknowledgement { size: _ } => 5_u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `WindowAcknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:12:36 [INFO] [stderr] | [INFO] [stderr] 12 | const MAX_INITIAL_TIMESTAMP: u32 = 16777215; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | if new_size > 2147483647 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:406:29 [INFO] [stderr] | [INFO] [stderr] 406 | const TYPE_0_MASK: u8 = 0b00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:407:29 [INFO] [stderr] | [INFO] [stderr] 407 | const TYPE_1_MASK: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:408:29 [INFO] [stderr] | [INFO] [stderr] 408 | const TYPE_2_MASK: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:409:29 [INFO] [stderr] | [INFO] [stderr] 409 | const FORMAT_MASK: u8 = 0b11000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:422:27 [INFO] [stderr] | [INFO] [stderr] 422 | const CSID_MASK: u8 = 0b00111111; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:510:25 [INFO] [stderr] | [INFO] [stderr] 510 | let timestamp = 16777216u32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `16_777_216u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:527:25 [INFO] [stderr] | [INFO] [stderr] 527 | let timestamp = 16777216u32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `16_777_216u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | let timestamp = 16777216u32; [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `16_777_216u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:609:22 [INFO] [stderr] | [INFO] [stderr] 609 | let delta2 = 16777216_u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `16_777_216_u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:659:22 [INFO] [stderr] | [INFO] [stderr] 659 | let delta2 = 16777216_u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `16_777_216_u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:724:41 [INFO] [stderr] | [INFO] [stderr] 724 | const CHUNK_SIZE_VALUE: usize = 2147483648; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_648` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:770:50 [INFO] [stderr] | [INFO] [stderr] 770 | let standard_timestamp = if timestamp >= 16777215 { 16777215 } else { timestamp }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:770:61 [INFO] [stderr] | [INFO] [stderr] 770 | let standard_timestamp = if timestamp >= 16777215 { 16777215 } else { timestamp }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:776:24 [INFO] [stderr] | [INFO] [stderr] 776 | if timestamp > 16777215 { [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:798:44 [INFO] [stderr] | [INFO] [stderr] 798 | cursor.write_u8((csid as u8) | 0b01000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:800:36 [INFO] [stderr] | [INFO] [stderr] 800 | cursor.write_u8(0_u8 | 0b01000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:803:36 [INFO] [stderr] | [INFO] [stderr] 803 | cursor.write_u8(1_u8 | 0b01000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:807:46 [INFO] [stderr] | [INFO] [stderr] 807 | let standard_timestamp = if delta >= 16777215 { 16777215 } else { delta }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:807:57 [INFO] [stderr] | [INFO] [stderr] 807 | let standard_timestamp = if delta >= 16777215 { 16777215 } else { delta }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:812:20 [INFO] [stderr] | [INFO] [stderr] 812 | if delta > 16777215 { [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:824:44 [INFO] [stderr] | [INFO] [stderr] 824 | cursor.write_u8((csid as u8) | 0b10000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:826:36 [INFO] [stderr] | [INFO] [stderr] 826 | cursor.write_u8(0_u8 | 0b10000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:829:36 [INFO] [stderr] | [INFO] [stderr] 829 | cursor.write_u8(1_u8 | 0b10000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:833:46 [INFO] [stderr] | [INFO] [stderr] 833 | let standard_timestamp = if delta >= 16777215 { 16777215 } else { delta }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:833:57 [INFO] [stderr] | [INFO] [stderr] 833 | let standard_timestamp = if delta >= 16777215 { 16777215 } else { delta }; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:836:20 [INFO] [stderr] | [INFO] [stderr] 836 | if delta > 16777215 { [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:848:44 [INFO] [stderr] | [INFO] [stderr] 848 | cursor.write_u8((csid as u8) | 0b11000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:850:36 [INFO] [stderr] | [INFO] [stderr] 850 | cursor.write_u8(0_u8 | 0b11000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/deserializer.rs:853:36 [INFO] [stderr] | [INFO] [stderr] 853 | cursor.write_u8(1_u8 | 0b11000000).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:11:36 [INFO] [stderr] | [INFO] [stderr] 11 | const MAX_INITIAL_TIMESTAMP: u32 = 16777215; [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:53:23 [INFO] [stderr] | [INFO] [stderr] 53 | if new_size > 2147483647 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_147_483_647` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:90:33 [INFO] [stderr] | [INFO] [stderr] 90 | if message.data.len() > 16777215 { [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:175:63 [INFO] [stderr] | [INFO] [stderr] 175 | ChunkHeaderFormat::Full => 0b00000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:176:63 [INFO] [stderr] | [INFO] [stderr] 176 | ChunkHeaderFormat::TimeDeltaWithoutMessageStreamId => 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:177:63 [INFO] [stderr] | [INFO] [stderr] 177 | ChunkHeaderFormat::TimeDeltaOnly => 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:178:63 [INFO] [stderr] | [INFO] [stderr] 178 | ChunkHeaderFormat::Empty => 0b11000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:301:51 [INFO] [stderr] | [INFO] [stderr] 301 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:316:43 [INFO] [stderr] | [INFO] [stderr] 316 | timestamp: RtmpTimestamp::new(16777216), [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_216` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:326:51 [INFO] [stderr] | [INFO] [stderr] 326 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000 , "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:327:61 [INFO] [stderr] | [INFO] [stderr] 327 | assert_eq!(cursor.read_u24::().unwrap(), 16777215, "Unexpected timestamp value"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:331:61 [INFO] [stderr] | [INFO] [stderr] 331 | assert_eq!(cursor.read_u32::().unwrap(), 16777216, "Unexpected extended timestamp"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_216` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:360:51 [INFO] [stderr] | [INFO] [stderr] 360 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b01000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:381:43 [INFO] [stderr] | [INFO] [stderr] 381 | timestamp: RtmpTimestamp::new(16777226), [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_226` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:392:51 [INFO] [stderr] | [INFO] [stderr] 392 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b01000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:393:61 [INFO] [stderr] | [INFO] [stderr] 393 | assert_eq!(cursor.read_u24::().unwrap(), 16777215, "Unexpected timestamp value"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:396:61 [INFO] [stderr] | [INFO] [stderr] 396 | assert_eq!(cursor.read_u32::().unwrap(), 16777216, "Unexpected extended timestamp"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_216` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:425:51 [INFO] [stderr] | [INFO] [stderr] 425 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b10000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:444:43 [INFO] [stderr] | [INFO] [stderr] 444 | timestamp: RtmpTimestamp::new(16777226), [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_226` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:455:51 [INFO] [stderr] | [INFO] [stderr] 455 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b10000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:456:61 [INFO] [stderr] | [INFO] [stderr] 456 | assert_eq!(cursor.read_u24::().unwrap(), 16777215, "Unexpected timestamp value"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_215` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:457:61 [INFO] [stderr] | [INFO] [stderr] 457 | assert_eq!(cursor.read_u32::().unwrap(), 16777216, "Unexpected extended timestamp"); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_777_216` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:494:51 [INFO] [stderr] | [INFO] [stderr] 494 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b11000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:523:51 [INFO] [stderr] | [INFO] [stderr] 523 | assert_eq!(cursor.read_u8().unwrap(), 2 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:556:51 [INFO] [stderr] | [INFO] [stderr] 556 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:587:51 [INFO] [stderr] | [INFO] [stderr] 587 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:598:51 [INFO] [stderr] | [INFO] [stderr] 598 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b11000000, "Unexpected 2nd csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:610:51 [INFO] [stderr] | [INFO] [stderr] 610 | assert_eq!(cursor.read_u8().unwrap(), 2 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:638:51 [INFO] [stderr] | [INFO] [stderr] 638 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/chunk_io/serializer.rs:652:51 [INFO] [stderr] | [INFO] [stderr] 652 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected 2nd csid value"); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | transaction_id: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Command { ref command_name, command_object: Amf0Value::Object(ref properties), ref additional_arguments, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:106:64 [INFO] [stderr] | [INFO] [stderr] 106 | ServerSessionEvent::ConnectionRequested {ref app_name, request_id: _} => assert_eq!(app_name, "some_app", "Unexpected app name"), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ConnectionRequested { ref app_name, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | transaction_id: _, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Amf0Command { ref command_name, command_object: Amf0Value::Object(ref properties), ref additional_arguments, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:525:13 [INFO] [stderr] | [INFO] [stderr] 525 | request_id: _, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `PublishStreamRequested { ref app_name, ref stream_key, mode: PublishMode::Live, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/server/tests.rs:1031:13 [INFO] [stderr] | [INFO] [stderr] 1031 | (_, RtmpMessage::Acknowledgement {sequence_number: _}) => (), // No good way to predict sequence number [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/server/tests.rs:1053:13 [INFO] [stderr] | [INFO] [stderr] 1053 | (_, RtmpMessage::Acknowledgement {sequence_number: _}) => (), // No good way to predict sequence number [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/sessions/server/tests.rs:1143:5 [INFO] [stderr] | [INFO] [stderr] 1143 | payload [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/sessions/server/tests.rs:1142:19 [INFO] [stderr] | [INFO] [stderr] 1142 | let payload = message.into_message_payload(timestamp, stream_id).unwrap(); [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: unneeded return statement [INFO] [stderr] --> src/sessions/server/tests.rs:1188:41 [INFO] [stderr] | [INFO] [stderr] 1188 | Amf0Value::Number(x) => return x as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `x as u32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:50 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:63 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:78 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:91 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:104 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/tests.rs:1273:126 [INFO] [stderr] | [INFO] [stderr] 1273 | ServerSessionEvent::PlayStreamRequested {app_name: _, stream_key: _, start_at: _, duration: _, reset: _, request_id, stream_id: _} => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `PlayStreamRequested { request_id, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:406:54 [INFO] [stderr] | [INFO] [stderr] 406 | StreamState::Publishing {ref stream_key, mode: _} => { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:479:54 [INFO] [stderr] | [INFO] [stderr] 479 | StreamState::Publishing {ref stream_key, mode: _} => { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:703:61 [INFO] [stderr] | [INFO] [stderr] 703 | StreamState::Publishing{ref stream_key, mode: _} => stream_key, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:742:62 [INFO] [stderr] | [INFO] [stderr] 742 | StreamState::Publishing {ref stream_key, mode: _} => stream_key.clone(), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/sessions/server/mod.rs:810:62 [INFO] [stderr] | [INFO] [stderr] 810 | StreamState::Publishing {ref stream_key, mode: _} => stream_key.clone(), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Publishing { ref stream_key, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/tests.rs:597:13 [INFO] [stderr] | [INFO] [stderr] 597 | (_, RtmpMessage::Acknowledgement {sequence_number: _}) => (), // No good way to predict sequence number [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/tests.rs:619:13 [INFO] [stderr] | [INFO] [stderr] 619 | (_, RtmpMessage::Acknowledgement {sequence_number: _}) => (), // No good way to predict sequence number [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Acknowledgement { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/sessions/client/mod.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | session [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/sessions/client/mod.rs:70:23 [INFO] [stderr] | [INFO] [stderr] 70 | let session = ClientSession { [INFO] [stderr] | _______________________^ [INFO] [stderr] 71 | | start_time: SystemTime::now(), [INFO] [stderr] 72 | | serializer: ChunkSerializer::new(), [INFO] [stderr] 73 | | deserializer: ChunkDeserializer::new(), [INFO] [stderr] ... | [INFO] [stderr] 82 | | config, [INFO] [stderr] 83 | | }; [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: unneeded return statement [INFO] [stderr] --> src/sessions/client/mod.rs:572:17 [INFO] [stderr] | [INFO] [stderr] 572 | return Err(ClientSessionError {kind}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ClientSessionError {kind})` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/mod.rs:551:13 [INFO] [stderr] | [INFO] [stderr] 551 | OutstandingTransaction::ConnectionRequested {app_name: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `ConnectionRequested { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/sessions/client/mod.rs:570:13 [INFO] [stderr] | [INFO] [stderr] 570 | OutstandingTransaction::CreateStream {purpose: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `CreateStream { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | fn compare(value1: &u32, value2: &u32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | fn compare(value1: &u32, value2: &u32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/time.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / match difference <= MAX_ADJACENT_VALUE { [INFO] [stderr] 165 | | true => value1.cmp(value2), [INFO] [stderr] 166 | | false => value2.cmp(value1) [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if difference <= MAX_ADJACENT_VALUE { value1.cmp(value2) } else { value2.cmp(value1) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/handshake/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if self.input_buffer.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.input_buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/handshake/mod.rs:291:17 [INFO] [stderr] | [INFO] [stderr] 291 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/handshake/mod.rs:340:22 [INFO] [stderr] | [INFO] [stderr] 340 | for index in 0..SHA256_DIGEST_LENGTH { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `output_packet[P2_SIG_START_INDEX..(SHA256_DIGEST_LENGTH + P2_SIG_START_INDEX)].clone_from_slice(&hmac2[..SHA256_DIGEST_LENGTH])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/handshake/mod.rs:364:12 [INFO] [stderr] | [INFO] [stderr] 364 | if &self.sent_p1[..] == &received_packet_2[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 364 | if self.sent_p1[..] == received_packet_2[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/handshake/mod.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | / match true { [INFO] [stderr] 418 | | _ if v1_hmac == v1_parts.digest => Ok(v1_parts.digest), [INFO] [stderr] 419 | | _ if v2_hmac == v2_parts.digest => Ok(v2_parts.digest), [INFO] [stderr] 420 | | _ => Err(HandshakeError{ kind: HandshakeErrorKind::UnknownPacket1Format}) [INFO] [stderr] 421 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:31 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[772])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:52 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[773])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:73 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[774])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:94 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[775])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:31 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:50 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[9])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:69 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[10])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:89 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[11])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/handshake/mod.rs:441:18 [INFO] [stderr] | [INFO] [stderr] 441 | for index in 0..SHA256_DIGEST_LENGTH { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `digest[..SHA256_DIGEST_LENGTH].clone_from_slice(&raw_digest[..SHA256_DIGEST_LENGTH])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `part1`. [INFO] [stderr] --> src/handshake/mod.rs:454:18 [INFO] [stderr] | [INFO] [stderr] 454 | for index in 0..part1.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 454 | for in &part1 { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `part2`. [INFO] [stderr] --> src/handshake/mod.rs:458:18 [INFO] [stderr] | [INFO] [stderr] 458 | for index in 0..part2.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 458 | for in &part2 { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `buffer`. [INFO] [stderr] --> src/handshake/mod.rs:486:14 [INFO] [stderr] | [INFO] [stderr] 486 | for x in 0..buffer.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 486 | for in &mut buffer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `messages::message_payload::MessagePayload` [INFO] [stderr] --> src/messages/message_payload.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new() -> MessagePayload { [INFO] [stderr] 33 | | MessagePayload { [INFO] [stderr] 34 | | timestamp: RtmpTimestamp::new(0), [INFO] [stderr] 35 | | message_stream_id: 0, [INFO] [stderr] ... | [INFO] [stderr] 38 | | } [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 27 | impl Default for messages::message_payload::MessagePayload { [INFO] [stderr] 28 | fn default() -> Self { [INFO] [stderr] 29 | Self::new() [INFO] [stderr] 30 | } [INFO] [stderr] 31 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/messages/message_payload.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | if self.data.len() > 0 && self.data[0] == 0x00 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `chunk_io::deserializer::ChunkDeserializer` [INFO] [stderr] --> src/chunk_io/deserializer.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> ChunkDeserializer { [INFO] [stderr] 57 | | ChunkDeserializer { [INFO] [stderr] 58 | | max_chunk_size: INITIAL_MAX_CHUNK_SIZE, [INFO] [stderr] 59 | | current_header_format: ChunkHeaderFormat::Full, [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 51 | impl Default for chunk_io::deserializer::ChunkDeserializer { [INFO] [stderr] 52 | fn default() -> Self { [INFO] [stderr] 53 | Self::new() [INFO] [stderr] 54 | } [INFO] [stderr] 55 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | if self.buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/chunk_io/deserializer.rs:224:16 [INFO] [stderr] | [INFO] [stderr] 224 | if self.current_payload_data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.current_payload_data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | if self.buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/chunk_io/deserializer.rs:405:21 [INFO] [stderr] | [INFO] [stderr] 405 | fn get_format(byte: &u8) -> ChunkHeaderFormat { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:424:8 [INFO] [stderr] | [INFO] [stderr] 424 | if buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:433:41 [INFO] [stderr] | [INFO] [stderr] 433 | ParsedValue::Value{val: buffer[1] as u32 + 64, next_index: 2} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:441:42 [INFO] [stderr] | [INFO] [stderr] 441 | ParsedValue::Value{val: (buffer[2] as u32 * 256) + buffer[1] as u32 + 64, next_index: 3} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:441:68 [INFO] [stderr] | [INFO] [stderr] 441 | ParsedValue::Value{val: (buffer[2] as u32 * 256) + buffer[1] as u32 + 64, next_index: 3} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:445:38 [INFO] [stderr] | [INFO] [stderr] 445 | x => ParsedValue::Value{val: x as u32, next_index: 1} [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `chunk_io::serializer::ChunkSerializer` [INFO] [stderr] --> src/chunk_io/serializer.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn new() -> ChunkSerializer { [INFO] [stderr] 40 | | ChunkSerializer { [INFO] [stderr] 41 | | max_chunk_size: INITIAL_MAX_CHUNK_SIZE, [INFO] [stderr] 42 | | previous_headers: HashMap::new(), [INFO] [stderr] 43 | | } [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/chunk_io/serializer.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | iteration = iteration + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iteration += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/chunk_io/serializer.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | first_byte = first_byte | format_mask; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `first_byte |= format_mask` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/serializer.rs:248:5 [INFO] [stderr] | [INFO] [stderr] 248 | bytes.write(data)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `sessions::server::config::ServerSessionConfig` [INFO] [stderr] --> src/sessions/server/config.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn new() -> ServerSessionConfig { [INFO] [stderr] 14 | | ServerSessionConfig { [INFO] [stderr] 15 | | fms_version: "FMS/3,0,1,1233".to_string(), [INFO] [stderr] 16 | | peer_bandwidth: 2_500_000, [INFO] [stderr] ... | [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:223:79 [INFO] [stderr] | [INFO] [stderr] 223 | .map(|x| properties.insert("width".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:226:80 [INFO] [stderr] | [INFO] [stderr] 226 | .map(|x| properties.insert("height".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:233:87 [INFO] [stderr] | [INFO] [stderr] 233 | .map(|x| properties.insert("videodatarate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:236:83 [INFO] [stderr] | [INFO] [stderr] 236 | .map(|x| properties.insert("framerate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:243:87 [INFO] [stderr] | [INFO] [stderr] 243 | .map(|x| properties.insert("audiodatarate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:246:89 [INFO] [stderr] | [INFO] [stderr] 246 | .map(|x| properties.insert("audiosamplerate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:249:87 [INFO] [stderr] | [INFO] [stderr] 249 | .map(|x| properties.insert("audiochannels".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/mod.rs:289:29 [INFO] [stderr] | [INFO] [stderr] 289 | timestamp: Some(epoch.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `epoch` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/mod.rs:294:52 [INFO] [stderr] | [INFO] [stderr] 294 | let payload = message.into_message_payload(epoch.clone(), 0)?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `epoch` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/sessions/server/mod.rs:342:38 [INFO] [stderr] | [INFO] [stderr] 342 | if app.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:389:12 [INFO] [stderr] | [INFO] [stderr] 389 | if arguments.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:436:9 [INFO] [stderr] | [INFO] [stderr] 436 | self.next_stream_id = self.next_stream_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_stream_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:446:36 [INFO] [stderr] | [INFO] [stderr] 446 | vec![Amf0Value::Number(new_stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(new_stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:463:12 [INFO] [stderr] | [INFO] [stderr] 463 | if arguments.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:560:9 [INFO] [stderr] | [INFO] [stderr] 560 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:574:12 [INFO] [stderr] | [INFO] [stderr] 574 | if arguments.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:600:27 [INFO] [stderr] | [INFO] [stderr] 600 | let start_at = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/mod.rs:603:24 [INFO] [stderr] | [INFO] [stderr] 603 | if x == -2.0 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(x - -2.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/mod.rs:603:24 [INFO] [stderr] | [INFO] [stderr] 603 | if x == -2.0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/mod.rs:605:31 [INFO] [stderr] | [INFO] [stderr] 605 | } else if x == -1.0 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(x - -1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/mod.rs:605:31 [INFO] [stderr] | [INFO] [stderr] 605 | } else if x == -1.0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:620:27 [INFO] [stderr] | [INFO] [stderr] 620 | let duration = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:636:24 [INFO] [stderr] | [INFO] [stderr] 636 | let reset = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:651:9 [INFO] [stderr] | [INFO] [stderr] 651 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:668:12 [INFO] [stderr] | [INFO] [stderr] 668 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/server/mod.rs:714:9 [INFO] [stderr] | [INFO] [stderr] 714 | / match properties_option { [INFO] [stderr] 715 | | Some(properties) => metadata.apply_metadata_values(properties), [INFO] [stderr] 716 | | _ => (), [INFO] [stderr] 717 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(properties) = properties_option { metadata.apply_metadata_values(properties) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/sessions/server/mod.rs:787:43 [INFO] [stderr] | [INFO] [stderr] 787 | let timestamp = timestamp.unwrap_or(RtmpTimestamp::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| RtmpTimestamp::new(0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:1020:67 [INFO] [stderr] | [INFO] [stderr] 1020 | let milliseconds = (duration.as_secs() * 1000) + (duration.subsec_nanos() as u64 / 1_000_000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `sessions::client::config::ClientSessionConfig` [INFO] [stderr] --> src/sessions/client/config.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / pub fn new() -> ClientSessionConfig { [INFO] [stderr] 12 | | ClientSessionConfig { [INFO] [stderr] 13 | | flash_version: "WIN 23,0,0,207".to_string(), [INFO] [stderr] 14 | | playback_buffer_length_ms: 2_000, [INFO] [stderr] 15 | | window_ack_size: 2_500_000, [INFO] [stderr] 16 | | } [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:200:29 [INFO] [stderr] | [INFO] [stderr] 200 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:234:29 [INFO] [stderr] | [INFO] [stderr] 234 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:263:66 [INFO] [stderr] | [INFO] [stderr] 263 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:291:66 [INFO] [stderr] | [INFO] [stderr] 291 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/client/mod.rs:308:29 [INFO] [stderr] | [INFO] [stderr] 308 | timestamp: Some(current_epoch.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `current_epoch` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:337:70 [INFO] [stderr] | [INFO] [stderr] 337 | properties.insert("width".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:341:71 [INFO] [stderr] | [INFO] [stderr] 341 | properties.insert("height".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:349:74 [INFO] [stderr] | [INFO] [stderr] 349 | properties.insert("framerate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:353:78 [INFO] [stderr] | [INFO] [stderr] 353 | properties.insert("videodatarate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:361:78 [INFO] [stderr] | [INFO] [stderr] 361 | properties.insert("audiodatarate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:365:80 [INFO] [stderr] | [INFO] [stderr] 365 | properties.insert("audiosamplerate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:369:78 [INFO] [stderr] | [INFO] [stderr] 369 | properties.insert("audiochannels".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:489:12 [INFO] [stderr] | [INFO] [stderr] 489 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:552:38 [INFO] [stderr] | [INFO] [stderr] 552 | let description = if additional_args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!additional_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:610:20 [INFO] [stderr] | [INFO] [stderr] 610 | if additional_args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `additional_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/client/mod.rs:684:12 [INFO] [stderr] | [INFO] [stderr] 684 | if arguments.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/client/mod.rs:747:12 [INFO] [stderr] | [INFO] [stderr] 747 | if data.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/sessions/client/mod.rs:800:35 [INFO] [stderr] | [INFO] [stderr] 800 | let timestamp = timestamp.unwrap_or(RtmpTimestamp::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| RtmpTimestamp::new(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:808:67 [INFO] [stderr] | [INFO] [stderr] 808 | let milliseconds = (duration.as_secs() * 1000) + (duration.subsec_nanos() as u64 / 1_000_000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:74:28 [INFO] [stderr] | [INFO] [stderr] 74 | "width" => match value.get_number() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 75 | | Some(x) => self.video_width = Some(x as u32), [INFO] [stderr] 76 | | None => (), [INFO] [stderr] 77 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_width = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:79:29 [INFO] [stderr] | [INFO] [stderr] 79 | "height" => match value.get_number() { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 80 | | Some(x) => self.video_height = Some(x as u32), [INFO] [stderr] 81 | | None => (), [INFO] [stderr] 82 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_height = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:84:35 [INFO] [stderr] | [INFO] [stderr] 84 | "videocodecid" => match value.get_string() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 85 | | Some(x) => self.video_codec = Some(x), [INFO] [stderr] 86 | | None => (), [INFO] [stderr] 87 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.video_codec = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:89:36 [INFO] [stderr] | [INFO] [stderr] 89 | "videodatarate" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 90 | | Some(x) => self.video_bitrate_kbps = Some(x as u32), [INFO] [stderr] 91 | | None => (), [INFO] [stderr] 92 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_bitrate_kbps = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:94:32 [INFO] [stderr] | [INFO] [stderr] 94 | "framerate" => match value.get_number() { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 95 | | Some(x) => self.video_frame_rate = Some(x as f32), [INFO] [stderr] 96 | | None => (), [INFO] [stderr] 97 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_frame_rate = Some(x as f32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:99:35 [INFO] [stderr] | [INFO] [stderr] 99 | "audiocodecid" => match value.get_string() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 100 | | Some(x) => self.audio_codec = Some(x), [INFO] [stderr] 101 | | None => (), [INFO] [stderr] 102 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.audio_codec = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:104:36 [INFO] [stderr] | [INFO] [stderr] 104 | "audiodatarate" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 105 | | Some(x) => self.audio_bitrate_kbps = Some(x as u32), [INFO] [stderr] 106 | | None => (), [INFO] [stderr] 107 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_bitrate_kbps = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:109:38 [INFO] [stderr] | [INFO] [stderr] 109 | "audiosamplerate" => match value.get_number() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 110 | | Some(x) => self.audio_sample_rate = Some(x as u32), [INFO] [stderr] 111 | | None => (), [INFO] [stderr] 112 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_sample_rate = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:114:36 [INFO] [stderr] | [INFO] [stderr] 114 | "audiochannels" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 115 | | Some(x) => self.audio_channels = Some(x as u32), [INFO] [stderr] 116 | | None => (), [INFO] [stderr] 117 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_channels = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:119:29 [INFO] [stderr] | [INFO] [stderr] 119 | "stereo" => match value.get_boolean() { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 120 | | Some(x) => self.audio_is_stereo = Some(x), [INFO] [stderr] 121 | | None => (), [INFO] [stderr] 122 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_boolean() { self.audio_is_stereo = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:124:30 [INFO] [stderr] | [INFO] [stderr] 124 | "encoder" => match value.get_string() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 125 | | Some(x) => self.encoder = Some(x), [INFO] [stderr] 126 | | None => (), [INFO] [stderr] 127 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.encoder = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rml_rtmp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time.rs:158:20 [INFO] [stderr] | [INFO] [stderr] 158 | fn compare(value1: &u32, value2: &u32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/time.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | fn compare(value1: &u32, value2: &u32) -> Ordering { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/time.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / match difference <= MAX_ADJACENT_VALUE { [INFO] [stderr] 165 | | true => value1.cmp(value2), [INFO] [stderr] 166 | | false => value2.cmp(value1) [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if difference <= MAX_ADJACENT_VALUE { value1.cmp(value2) } else { value2.cmp(value1) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/handshake/mod.rs:266:12 [INFO] [stderr] | [INFO] [stderr] 266 | if self.input_buffer.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.input_buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/handshake/mod.rs:291:17 [INFO] [stderr] | [INFO] [stderr] 291 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/handshake/mod.rs:340:22 [INFO] [stderr] | [INFO] [stderr] 340 | for index in 0..SHA256_DIGEST_LENGTH { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `output_packet[P2_SIG_START_INDEX..(SHA256_DIGEST_LENGTH + P2_SIG_START_INDEX)].clone_from_slice(&hmac2[..SHA256_DIGEST_LENGTH])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/handshake/mod.rs:364:12 [INFO] [stderr] | [INFO] [stderr] 364 | if &self.sent_p1[..] == &received_packet_2[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 364 | if self.sent_p1[..] == received_packet_2[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/handshake/mod.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | / match true { [INFO] [stderr] 418 | | _ if v1_hmac == v1_parts.digest => Ok(v1_parts.digest), [INFO] [stderr] 419 | | _ if v2_hmac == v2_parts.digest => Ok(v2_parts.digest), [INFO] [stderr] 420 | | _ => Err(HandshakeError{ kind: HandshakeErrorKind::UnknownPacket1Format}) [INFO] [stderr] 421 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:31 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[772])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:52 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[773])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:73 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[774])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:425:94 [INFO] [stderr] | [INFO] [stderr] 425 | let first_four_byte_sum = (data[772] as u32) + (data[773] as u32) + (data[774] as u32) + (data[775] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[775])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:31 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:50 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[9])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:69 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[10])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/handshake/mod.rs:431:89 [INFO] [stderr] | [INFO] [stderr] 431 | let first_four_byte_sum = (data[8] as u32) + (data[9] as u32) + (data[10] as u32) + (data[11] as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(data[11])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/handshake/mod.rs:441:18 [INFO] [stderr] | [INFO] [stderr] 441 | for index in 0..SHA256_DIGEST_LENGTH { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `digest[..SHA256_DIGEST_LENGTH].clone_from_slice(&raw_digest[..SHA256_DIGEST_LENGTH])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `part1`. [INFO] [stderr] --> src/handshake/mod.rs:454:18 [INFO] [stderr] | [INFO] [stderr] 454 | for index in 0..part1.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 454 | for in &part1 { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is only used to index `part2`. [INFO] [stderr] --> src/handshake/mod.rs:458:18 [INFO] [stderr] | [INFO] [stderr] 458 | for index in 0..part2.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 458 | for in &part2 { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `buffer`. [INFO] [stderr] --> src/handshake/mod.rs:486:14 [INFO] [stderr] | [INFO] [stderr] 486 | for x in 0..buffer.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 486 | for in &mut buffer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/handshake/mod.rs:569:46 [INFO] [stderr] | [INFO] [stderr] 569 | fill_with_random_data(&mut c0_and_c1[9..RTMP_PACKET_SIZE + 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `9..=RTMP_PACKET_SIZE` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/handshake/mod.rs:658:21 [INFO] [stderr] | [INFO] [stderr] 658 | let data1 = "Hi ".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Hi "` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/handshake/mod.rs:659:21 [INFO] [stderr] | [INFO] [stderr] 659 | let data2 = "There".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"There"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/handshake/mod.rs:670:21 [INFO] [stderr] | [INFO] [stderr] 670 | let data1 = "Hi There".as_bytes(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Hi There"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: the loop variable `index` is used to index `message` [INFO] [stderr] --> src/handshake/mod.rs:704:22 [INFO] [stderr] | [INFO] [stderr] 704 | for index in 0..message.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 704 | for (index, ) in message.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `messages::message_payload::MessagePayload` [INFO] [stderr] --> src/messages/message_payload.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new() -> MessagePayload { [INFO] [stderr] 33 | | MessagePayload { [INFO] [stderr] 34 | | timestamp: RtmpTimestamp::new(0), [INFO] [stderr] 35 | | message_stream_id: 0, [INFO] [stderr] ... | [INFO] [stderr] 38 | | } [INFO] [stderr] 39 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 27 | impl Default for messages::message_payload::MessagePayload { [INFO] [stderr] 28 | fn default() -> Self { [INFO] [stderr] 29 | Self::new() [INFO] [stderr] 30 | } [INFO] [stderr] 31 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/messages/message_payload.rs:66:20 [INFO] [stderr] | [INFO] [stderr] 66 | if self.data.len() > 0 && self.data[0] == 0x00 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `chunk_io::deserializer::ChunkDeserializer` [INFO] [stderr] --> src/chunk_io/deserializer.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn new() -> ChunkDeserializer { [INFO] [stderr] 57 | | ChunkDeserializer { [INFO] [stderr] 58 | | max_chunk_size: INITIAL_MAX_CHUNK_SIZE, [INFO] [stderr] 59 | | current_header_format: ChunkHeaderFormat::Full, [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 51 | impl Default for chunk_io::deserializer::ChunkDeserializer { [INFO] [stderr] 52 | fn default() -> Self { [INFO] [stderr] 53 | Self::new() [INFO] [stderr] 54 | } [INFO] [stderr] 55 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | if self.buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/chunk_io/deserializer.rs:224:16 [INFO] [stderr] | [INFO] [stderr] 224 | if self.current_payload_data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.current_payload_data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | if self.buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/chunk_io/deserializer.rs:405:21 [INFO] [stderr] | [INFO] [stderr] 405 | fn get_format(byte: &u8) -> ChunkHeaderFormat { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/chunk_io/deserializer.rs:424:8 [INFO] [stderr] | [INFO] [stderr] 424 | if buffer.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `buffer.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:433:41 [INFO] [stderr] | [INFO] [stderr] 433 | ParsedValue::Value{val: buffer[1] as u32 + 64, next_index: 2} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:441:42 [INFO] [stderr] | [INFO] [stderr] 441 | ParsedValue::Value{val: (buffer[2] as u32 * 256) + buffer[1] as u32 + 64, next_index: 3} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:441:68 [INFO] [stderr] | [INFO] [stderr] 441 | ParsedValue::Value{val: (buffer[2] as u32 * 256) + buffer[1] as u32 + 64, next_index: 3} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(buffer[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chunk_io/deserializer.rs:445:38 [INFO] [stderr] | [INFO] [stderr] 445 | x => ParsedValue::Value{val: x as u32, next_index: 1} [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/chunk_io/deserializer.rs:691:9 [INFO] [stderr] | [INFO] [stderr] 691 | / match deserializer.get_next_message(first).unwrap() { [INFO] [stderr] 692 | | Some(x) => panic!("Expected None but received {:?}", x), [INFO] [stderr] 693 | | None => (), [INFO] [stderr] 694 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(x) = deserializer.get_next_message(first).unwrap() { panic!("Expected None but received {:?}", x) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:784:13 [INFO] [stderr] | [INFO] [stderr] 784 | cursor.write(&payload[..max_chunk_length]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:787:13 [INFO] [stderr] | [INFO] [stderr] 787 | cursor.write(&next_chunk).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:789:13 [INFO] [stderr] | [INFO] [stderr] 789 | cursor.write(payload).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `0b01000000` [INFO] [stderr] --> src/chunk_io/deserializer.rs:800:29 [INFO] [stderr] | [INFO] [stderr] 800 | cursor.write_u8(0_u8 | 0b01000000).unwrap(); [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:816:9 [INFO] [stderr] | [INFO] [stderr] 816 | cursor.write(payload).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `0b10000000` [INFO] [stderr] --> src/chunk_io/deserializer.rs:826:29 [INFO] [stderr] | [INFO] [stderr] 826 | cursor.write_u8(0_u8 | 0b10000000).unwrap(); [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:840:9 [INFO] [stderr] | [INFO] [stderr] 840 | cursor.write(payload).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `0b11000000` [INFO] [stderr] --> src/chunk_io/deserializer.rs:850:29 [INFO] [stderr] | [INFO] [stderr] 850 | cursor.write_u8(0_u8 | 0b11000000).unwrap(); [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:861:13 [INFO] [stderr] | [INFO] [stderr] 861 | cursor.write(&payload[..max_chunk_length]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:864:13 [INFO] [stderr] | [INFO] [stderr] 864 | cursor.write(&next_chunk).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/deserializer.rs:866:13 [INFO] [stderr] | [INFO] [stderr] 866 | cursor.write(payload).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `chunk_io::serializer::ChunkSerializer` [INFO] [stderr] --> src/chunk_io/serializer.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn new() -> ChunkSerializer { [INFO] [stderr] 40 | | ChunkSerializer { [INFO] [stderr] 41 | | max_chunk_size: INITIAL_MAX_CHUNK_SIZE, [INFO] [stderr] 42 | | previous_headers: HashMap::new(), [INFO] [stderr] 43 | | } [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/chunk_io/serializer.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | iteration = iteration + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iteration += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/chunk_io/serializer.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | first_byte = first_byte | format_mask; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `first_byte |= format_mask` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/chunk_io/serializer.rs:248:5 [INFO] [stderr] | [INFO] [stderr] 248 | bytes.write(data)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:301:47 [INFO] [stderr] | [INFO] [stderr] 301 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [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 `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:326:47 [INFO] [stderr] | [INFO] [stderr] 326 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000 , "Unexpected csid value"); [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 `2` [INFO] [stderr] --> src/chunk_io/serializer.rs:523:47 [INFO] [stderr] | [INFO] [stderr] 523 | assert_eq!(cursor.read_u8().unwrap(), 2 | 0b00000000, "Unexpected csid value"); [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 `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:556:47 [INFO] [stderr] | [INFO] [stderr] 556 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [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 `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:587:47 [INFO] [stderr] | [INFO] [stderr] 587 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [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 `2` [INFO] [stderr] --> src/chunk_io/serializer.rs:610:47 [INFO] [stderr] | [INFO] [stderr] 610 | assert_eq!(cursor.read_u8().unwrap(), 2 | 0b00000000, "Unexpected csid value"); [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 `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:638:47 [INFO] [stderr] | [INFO] [stderr] 638 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected csid value"); [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 `6` [INFO] [stderr] --> src/chunk_io/serializer.rs:652:47 [INFO] [stderr] | [INFO] [stderr] 652 | assert_eq!(cursor.read_u8().unwrap(), 6 | 0b00000000, "Unexpected 2nd csid value"); [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: you should consider deriving a `Default` implementation for `sessions::server::config::ServerSessionConfig` [INFO] [stderr] --> src/sessions/server/config.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn new() -> ServerSessionConfig { [INFO] [stderr] 14 | | ServerSessionConfig { [INFO] [stderr] 15 | | fms_version: "FMS/3,0,1,1233".to_string(), [INFO] [stderr] 16 | | peer_bandwidth: 2_500_000, [INFO] [stderr] ... | [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/test_utils/assert_vec_contains_macro.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | / match x { [INFO] [stderr] 6 | | $pattern if $cond => {has_value = true; $success}, [INFO] [stderr] 7 | | _ => () [INFO] [stderr] 8 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] ::: src/sessions/server/tests.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | assert_vec_contains!(responses, &(_, RtmpMessage::WindowAcknowledgement {size: DEFAULT_WINDOW_ACK_SIZE})); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/test_utils/assert_vec_contains_macro.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | / match x { [INFO] [stderr] 6 | | $pattern if $cond => {has_value = true; $success}, [INFO] [stderr] 7 | | _ => () [INFO] [stderr] 8 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] ::: src/sessions/server/tests.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | assert_vec_contains!(responses, &(_, RtmpMessage::SetPeerBandwidth {size: DEFAULT_PEER_BANDWIDTH, limit_type: PeerBandwidthLimitType::Dynamic})); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/test_utils/assert_vec_contains_macro.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | / match x { [INFO] [stderr] 6 | | $pattern if $cond => {has_value = true; $success}, [INFO] [stderr] 7 | | _ => () [INFO] [stderr] 8 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] ::: src/sessions/server/tests.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / assert_vec_contains!(responses, &(_, RtmpMessage::UserControl { [INFO] [stderr] 23 | | event_type: UserControlEventType::StreamBegin, [INFO] [stderr] 24 | | stream_id: Some(0), [INFO] [stderr] 25 | | buffer_length: None, [INFO] [stderr] 26 | | timestamp: None [INFO] [stderr] 27 | | })); [INFO] [stderr] | |____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/test_utils/assert_vec_contains_macro.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | / match x { [INFO] [stderr] 6 | | $pattern if $cond => {has_value = true; $success}, [INFO] [stderr] 7 | | _ => () [INFO] [stderr] 8 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] ::: src/sessions/server/tests.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / assert_vec_contains!(responses, &(_, RtmpMessage::Amf0Command { [INFO] [stderr] 32 | | command_name: ref command_name_value, [INFO] [stderr] 33 | | transaction_id: transaction_id_value, [INFO] [stderr] 34 | | command_object: Amf0Value::Null, [INFO] [stderr] 35 | | additional_arguments: ref x, [INFO] [stderr] 36 | | }) if command_name_value == "onBWDone" && transaction_id_value == 0_f64 => additional_values = x); [INFO] [stderr] | |__________________________________________________________________________________________________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/tests.rs:190:44 [INFO] [stderr] | [INFO] [stderr] 190 | }) if command_name == "_result" && transaction_id == 4.0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(transaction_id - 4.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/tests.rs:190:44 [INFO] [stderr] | [INFO] [stderr] 190 | }) if command_name == "_result" && transaction_id == 4.0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/tests.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/tests.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/tests.rs:432:54 [INFO] [stderr] | [INFO] [stderr] 432 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/tests.rs:470:54 [INFO] [stderr] | [INFO] [stderr] 470 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 43 [INFO] [stderr] --> src/sessions/server/tests.rs:537:1 [INFO] [stderr] | [INFO] [stderr] 537 | / fn can_accept_play_command_with_no_optional_parameters_to_requested_stream_key() { [INFO] [stderr] 538 | | let config = get_basic_config(); [INFO] [stderr] 539 | | let test_app_name = "some_app".to_string(); [INFO] [stderr] 540 | | let test_stream_key = "stream_key".to_string(); [INFO] [stderr] ... | [INFO] [stderr] 658 | | } [INFO] [stderr] 659 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/tests.rs:583:13 [INFO] [stderr] | [INFO] [stderr] 583 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/tests.rs:583:13 [INFO] [stderr] | [INFO] [stderr] 583 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/tests.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/tests.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/tests.rs:729:54 [INFO] [stderr] | [INFO] [stderr] 729 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/tests.rs:768:54 [INFO] [stderr] | [INFO] [stderr] 768 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/tests.rs:868:76 [INFO] [stderr] | [INFO] [stderr] 868 | let packet = session.send_video_data(stream_id, original_data.clone(), timestamp.clone(), false).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timestamp` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/tests.rs:898:76 [INFO] [stderr] | [INFO] [stderr] 898 | let packet = session.send_audio_data(stream_id, original_data.clone(), timestamp.clone(), false).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timestamp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/server/tests.rs:1103:17 [INFO] [stderr] | [INFO] [stderr] 1103 | / match message { [INFO] [stderr] 1104 | | RtmpMessage::SetChunkSize{size} => deserializer.set_max_chunk_size(size as usize).unwrap(), [INFO] [stderr] 1105 | | _ => (), [INFO] [stderr] 1106 | | } [INFO] [stderr] | |_________________^ help: try this: `if let RtmpMessage::SetChunkSize{size} = message { deserializer.set_max_chunk_size(size as usize).unwrap() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/tests.rs:1185:44 [INFO] [stderr] | [INFO] [stderr] 1185 | }) if command_name == "_result" && transaction_id == 4.0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(transaction_id - 4.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/tests.rs:1185:44 [INFO] [stderr] | [INFO] [stderr] 1185 | }) if command_name == "_result" && transaction_id == 4.0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/tests.rs:1202:54 [INFO] [stderr] | [INFO] [stderr] 1202 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:223:79 [INFO] [stderr] | [INFO] [stderr] 223 | .map(|x| properties.insert("width".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:226:80 [INFO] [stderr] | [INFO] [stderr] 226 | .map(|x| properties.insert("height".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:233:87 [INFO] [stderr] | [INFO] [stderr] 233 | .map(|x| properties.insert("videodatarate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:236:83 [INFO] [stderr] | [INFO] [stderr] 236 | .map(|x| properties.insert("framerate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:243:87 [INFO] [stderr] | [INFO] [stderr] 243 | .map(|x| properties.insert("audiodatarate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:246:89 [INFO] [stderr] | [INFO] [stderr] 246 | .map(|x| properties.insert("audiosamplerate".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:249:87 [INFO] [stderr] | [INFO] [stderr] 249 | .map(|x| properties.insert("audiochannels".to_string(), Amf0Value::Number(x as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/mod.rs:289:29 [INFO] [stderr] | [INFO] [stderr] 289 | timestamp: Some(epoch.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `epoch` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/server/mod.rs:294:52 [INFO] [stderr] | [INFO] [stderr] 294 | let payload = message.into_message_payload(epoch.clone(), 0)?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `epoch` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/sessions/server/mod.rs:342:38 [INFO] [stderr] | [INFO] [stderr] 342 | if app.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:389:12 [INFO] [stderr] | [INFO] [stderr] 389 | if arguments.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:436:9 [INFO] [stderr] | [INFO] [stderr] 436 | self.next_stream_id = self.next_stream_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_stream_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:446:36 [INFO] [stderr] | [INFO] [stderr] 446 | vec![Amf0Value::Number(new_stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(new_stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:463:12 [INFO] [stderr] | [INFO] [stderr] 463 | if arguments.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:560:9 [INFO] [stderr] | [INFO] [stderr] 560 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:574:12 [INFO] [stderr] | [INFO] [stderr] 574 | if arguments.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:600:27 [INFO] [stderr] | [INFO] [stderr] 600 | let start_at = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/mod.rs:603:24 [INFO] [stderr] | [INFO] [stderr] 603 | if x == -2.0 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(x - -2.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/mod.rs:603:24 [INFO] [stderr] | [INFO] [stderr] 603 | if x == -2.0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/server/mod.rs:605:31 [INFO] [stderr] | [INFO] [stderr] 605 | } else if x == -1.0 { [INFO] [stderr] | ^^^^^^^^^ help: consider comparing them within some error: `(x - -1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/server/mod.rs:605:31 [INFO] [stderr] | [INFO] [stderr] 605 | } else if x == -1.0 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:620:27 [INFO] [stderr] | [INFO] [stderr] 620 | let duration = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/server/mod.rs:636:24 [INFO] [stderr] | [INFO] [stderr] 636 | let reset = if arguments.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sessions/server/mod.rs:651:9 [INFO] [stderr] | [INFO] [stderr] 651 | self.next_request_number = self.next_request_number + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_request_number += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/server/mod.rs:668:12 [INFO] [stderr] | [INFO] [stderr] 668 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/server/mod.rs:714:9 [INFO] [stderr] | [INFO] [stderr] 714 | / match properties_option { [INFO] [stderr] 715 | | Some(properties) => metadata.apply_metadata_values(properties), [INFO] [stderr] 716 | | _ => (), [INFO] [stderr] 717 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(properties) = properties_option { metadata.apply_metadata_values(properties) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/sessions/server/mod.rs:787:43 [INFO] [stderr] | [INFO] [stderr] 787 | let timestamp = timestamp.unwrap_or(RtmpTimestamp::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| RtmpTimestamp::new(0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/server/mod.rs:1020:67 [INFO] [stderr] | [INFO] [stderr] 1020 | let milliseconds = (duration.as_secs() * 1000) + (duration.subsec_nanos() as u64 / 1_000_000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `sessions::client::config::ClientSessionConfig` [INFO] [stderr] --> src/sessions/client/config.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / pub fn new() -> ClientSessionConfig { [INFO] [stderr] 12 | | ClientSessionConfig { [INFO] [stderr] 13 | | flash_version: "WIN 23,0,0,207".to_string(), [INFO] [stderr] 14 | | playback_buffer_length_ms: 2_000, [INFO] [stderr] 15 | | window_ack_size: 2_500_000, [INFO] [stderr] 16 | | } [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | assert_ne!(transaction_id, 0.0, "Transaction id should not be zero"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | assert_ne!(transaction_id, 0.0, "Transaction id should not be zero"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/tests.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | assert!(description.len() > 0, "Expected a non-empty description"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!description.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:361:13 [INFO] [stderr] | [INFO] [stderr] 361 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:361:13 [INFO] [stderr] | [INFO] [stderr] 361 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:435:13 [INFO] [stderr] | [INFO] [stderr] 435 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:435:13 [INFO] [stderr] | [INFO] [stderr] 435 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/tests.rs:481:67 [INFO] [stderr] | [INFO] [stderr] 481 | assert_eq!(additional_arguments[0], Amf0Value::Number(stream_id as f64), "Unexpected argument stream id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:482:13 [INFO] [stderr] | [INFO] [stderr] 482 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:482:13 [INFO] [stderr] | [INFO] [stderr] 482 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:682:13 [INFO] [stderr] | [INFO] [stderr] 682 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:682:13 [INFO] [stderr] | [INFO] [stderr] 682 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/tests.rs:836:67 [INFO] [stderr] | [INFO] [stderr] 836 | assert_eq!(additional_arguments[0], Amf0Value::Number(stream_id as f64), "Unexpected argument stream id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:837:13 [INFO] [stderr] | [INFO] [stderr] 837 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:837:13 [INFO] [stderr] | [INFO] [stderr] 837 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/client/tests.rs:854:17 [INFO] [stderr] | [INFO] [stderr] 854 | / match message { [INFO] [stderr] 855 | | RtmpMessage::SetChunkSize{size} => deserializer.set_max_chunk_size(size as usize).unwrap(), [INFO] [stderr] 856 | | _ => (), [INFO] [stderr] 857 | | } [INFO] [stderr] | |_________________^ help: try this: `if let RtmpMessage::SetChunkSize{size} = message { deserializer.set_max_chunk_size(size as usize).unwrap() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/tests.rs:931:54 [INFO] [stderr] | [INFO] [stderr] 931 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:1034:13 [INFO] [stderr] | [INFO] [stderr] 1034 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:1034:13 [INFO] [stderr] | [INFO] [stderr] 1034 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/sessions/client/tests.rs:1085:13 [INFO] [stderr] | [INFO] [stderr] 1085 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/sessions/client/tests.rs:1085:13 [INFO] [stderr] | [INFO] [stderr] 1085 | assert_eq!(transaction_id, 0.0, "Unexpected transaction id"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:170:29 [INFO] [stderr] | [INFO] [stderr] 170 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:200:29 [INFO] [stderr] | [INFO] [stderr] 200 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:234:29 [INFO] [stderr] | [INFO] [stderr] 234 | transaction_id: transaction_id as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(transaction_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:263:66 [INFO] [stderr] | [INFO] [stderr] 263 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:291:66 [INFO] [stderr] | [INFO] [stderr] 291 | additional_arguments: vec![Amf0Value::Number(stream_id as f64)], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(stream_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sessions/client/mod.rs:308:29 [INFO] [stderr] | [INFO] [stderr] 308 | timestamp: Some(current_epoch.clone()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `current_epoch` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:337:70 [INFO] [stderr] | [INFO] [stderr] 337 | properties.insert("width".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:341:71 [INFO] [stderr] | [INFO] [stderr] 341 | properties.insert("height".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:349:74 [INFO] [stderr] | [INFO] [stderr] 349 | properties.insert("framerate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:353:78 [INFO] [stderr] | [INFO] [stderr] 353 | properties.insert("videodatarate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:361:78 [INFO] [stderr] | [INFO] [stderr] 361 | properties.insert("audiodatarate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:365:80 [INFO] [stderr] | [INFO] [stderr] 365 | properties.insert("audiosamplerate".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:369:78 [INFO] [stderr] | [INFO] [stderr] 369 | properties.insert("audiochannels".to_string(), Amf0Value::Number(x as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:489:12 [INFO] [stderr] | [INFO] [stderr] 489 | if data.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:552:38 [INFO] [stderr] | [INFO] [stderr] 552 | let description = if additional_args.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!additional_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sessions/client/mod.rs:610:20 [INFO] [stderr] | [INFO] [stderr] 610 | if additional_args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `additional_args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/client/mod.rs:684:12 [INFO] [stderr] | [INFO] [stderr] 684 | if arguments.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `arguments.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/sessions/client/mod.rs:747:12 [INFO] [stderr] | [INFO] [stderr] 747 | if data.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/sessions/client/mod.rs:800:35 [INFO] [stderr] | [INFO] [stderr] 800 | let timestamp = timestamp.unwrap_or(RtmpTimestamp::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| RtmpTimestamp::new(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/sessions/client/mod.rs:808:67 [INFO] [stderr] | [INFO] [stderr] 808 | let milliseconds = (duration.as_secs() * 1000) + (duration.subsec_nanos() as u64 / 1_000_000); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:74:28 [INFO] [stderr] | [INFO] [stderr] 74 | "width" => match value.get_number() { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 75 | | Some(x) => self.video_width = Some(x as u32), [INFO] [stderr] 76 | | None => (), [INFO] [stderr] 77 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_width = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:79:29 [INFO] [stderr] | [INFO] [stderr] 79 | "height" => match value.get_number() { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 80 | | Some(x) => self.video_height = Some(x as u32), [INFO] [stderr] 81 | | None => (), [INFO] [stderr] 82 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_height = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:84:35 [INFO] [stderr] | [INFO] [stderr] 84 | "videocodecid" => match value.get_string() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 85 | | Some(x) => self.video_codec = Some(x), [INFO] [stderr] 86 | | None => (), [INFO] [stderr] 87 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.video_codec = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:89:36 [INFO] [stderr] | [INFO] [stderr] 89 | "videodatarate" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 90 | | Some(x) => self.video_bitrate_kbps = Some(x as u32), [INFO] [stderr] 91 | | None => (), [INFO] [stderr] 92 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_bitrate_kbps = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:94:32 [INFO] [stderr] | [INFO] [stderr] 94 | "framerate" => match value.get_number() { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 95 | | Some(x) => self.video_frame_rate = Some(x as f32), [INFO] [stderr] 96 | | None => (), [INFO] [stderr] 97 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.video_frame_rate = Some(x as f32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:99:35 [INFO] [stderr] | [INFO] [stderr] 99 | "audiocodecid" => match value.get_string() { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 100 | | Some(x) => self.audio_codec = Some(x), [INFO] [stderr] 101 | | None => (), [INFO] [stderr] 102 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.audio_codec = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:104:36 [INFO] [stderr] | [INFO] [stderr] 104 | "audiodatarate" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 105 | | Some(x) => self.audio_bitrate_kbps = Some(x as u32), [INFO] [stderr] 106 | | None => (), [INFO] [stderr] 107 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_bitrate_kbps = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:109:38 [INFO] [stderr] | [INFO] [stderr] 109 | "audiosamplerate" => match value.get_number() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 110 | | Some(x) => self.audio_sample_rate = Some(x as u32), [INFO] [stderr] 111 | | None => (), [INFO] [stderr] 112 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_sample_rate = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:114:36 [INFO] [stderr] | [INFO] [stderr] 114 | "audiochannels" => match value.get_number() { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 115 | | Some(x) => self.audio_channels = Some(x as u32), [INFO] [stderr] 116 | | None => (), [INFO] [stderr] 117 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_number() { self.audio_channels = Some(x as u32) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:119:29 [INFO] [stderr] | [INFO] [stderr] 119 | "stereo" => match value.get_boolean() { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 120 | | Some(x) => self.audio_is_stereo = Some(x), [INFO] [stderr] 121 | | None => (), [INFO] [stderr] 122 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_boolean() { self.audio_is_stereo = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sessions/mod.rs:124:30 [INFO] [stderr] | [INFO] [stderr] 124 | "encoder" => match value.get_string() { [INFO] [stderr] | ______________________________^ [INFO] [stderr] 125 | | Some(x) => self.encoder = Some(x), [INFO] [stderr] 126 | | None => (), [INFO] [stderr] 127 | | }, [INFO] [stderr] | |_________________^ help: try this: `if let Some(x) = value.get_string() { self.encoder = Some(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: aborting due to 25 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rml_rtmp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4eb8d1ad3e9d890825e956724248a7f452bddd4941b964e93bd31ecf5372b619"` [INFO] running `"docker" "rm" "-f" "4eb8d1ad3e9d890825e956724248a7f452bddd4941b964e93bd31ecf5372b619"` [INFO] [stdout] 4eb8d1ad3e9d890825e956724248a7f452bddd4941b964e93bd31ecf5372b619