[INFO] crate bip_peer 0.5.0 is already in cache [INFO] extracting crate bip_peer 0.5.0 into work/ex/clippy-test-run/sources/stable/reg/bip_peer/0.5.0 [INFO] extracting crate bip_peer 0.5.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_peer/0.5.0 [INFO] validating manifest of bip_peer-0.5.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 bip_peer-0.5.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 bip_peer-0.5.0 [INFO] removed 0 missing tests [INFO] finished frobbing bip_peer-0.5.0 [INFO] frobbed toml for bip_peer-0.5.0 written to work/ex/clippy-test-run/sources/stable/reg/bip_peer/0.5.0/Cargo.toml [INFO] started frobbing bip_peer-0.5.0 [INFO] removed 0 missing tests [INFO] finished frobbing bip_peer-0.5.0 [INFO] frobbed toml for bip_peer-0.5.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bip_peer/0.5.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 bip_peer-0.5.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/bip_peer/0.5.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] 9047e60502e2c4eaddd2c5265fe06e9489855da26d0c6bd0c2db7c6e4f4f3228 [INFO] running `"docker" "start" "-a" "9047e60502e2c4eaddd2c5265fe06e9489855da26d0c6bd0c2db7c6e4f4f3228"` [INFO] [stderr] Checking bip_bencode v0.4.4 [INFO] [stderr] Checking bip_util v0.5.0 [INFO] [stderr] Checking bip_handshake v0.7.1 [INFO] [stderr] Checking bip_peer v0.5.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/codec.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | PeerProtocolCodec{ protocol: protocol, max_payload: None } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `protocol` [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/codec.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | PeerProtocolCodec{ protocol: protocol, max_payload: Some(max_payload) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `protocol` [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/manager/peer_info.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/manager/peer_info.rs:24:31 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pid` [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/manager/peer_info.rs:24:41 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [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/manager/future/mod.rs:85:33 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dur` [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/manager/future/mod.rs:85:43 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `timer` [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/manager/future/mod.rs:85:57 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `sleep` [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/manager/future/mod.rs:85:71 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/manager/mod.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | PeerManager{ sink: sink, stream: stream } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sink` [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/manager/mod.rs:70:34 [INFO] [stderr] | [INFO] [stderr] 70 | PeerManager{ sink: sink, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/manager/mod.rs:134:26 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/manager/mod.rs:134:42 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `timer` [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/manager/mod.rs:134:56 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `build` [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/manager/mod.rs:134:70 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [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/manager/mod.rs:134:82 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `peers` [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/manager/mod.rs:134:96 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task_queue` [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/manager/mod.rs:224:119 [INFO] [stderr] | [INFO] [stderr] 224 | Entry::Occupied(_) => Err(PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })), [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:238:104 [INFO] [stderr] | [INFO] [stderr] 238 | .ok_or_else(|| PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:248:104 [INFO] [stderr] | [INFO] [stderr] 248 | .ok_or_else(|| PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:288:28 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `recv` [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/manager/mod.rs:288:40 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `peers` [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/manager/mod.rs:288:54 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task_queue` [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/message/bits_ext/handshake.rs:251:41 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `id_map` [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/message/bits_ext/handshake.rs:251:57 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `our_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/message/bits_ext/handshake.rs:251:73 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_tcp_port` [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/message/bits_ext/handshake.rs:251:101 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `their_ip` [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/message/bits_ext/handshake.rs:252:25 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_ipv6_addr` [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/message/bits_ext/handshake.rs:252:55 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_ipv4_addr` [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/message/bits_ext/handshake.rs:252:85 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_max_requests` [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/message/bits_ext/handshake.rs:253:25 [INFO] [stderr] | [INFO] [stderr] 253 | metadata_size: metadata_size, raw_bencode: clone_raw_bencode }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata_size` [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/message/bits_ext/port.rs:19:23 [INFO] [stderr] | [INFO] [stderr] 19 | PortMessage { port: port } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/message/prot_ext/ut_metadata.rs:87:35 [INFO] [stderr] | [INFO] [stderr] 87 | UtMetadataRequestMessage{ piece: piece, bencode_size: encoded_bytes_size } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:91:35 [INFO] [stderr] | [INFO] [stderr] 91 | UtMetadataRequestMessage{ piece: piece, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:131:46 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_size` [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/message/prot_ext/ut_metadata.rs:131:70 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/message/prot_ext/ut_metadata.rs:135:32 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:135:46 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_size` [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/message/prot_ext/ut_metadata.rs:135:70 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/message/prot_ext/ut_metadata.rs:183:34 [INFO] [stderr] | [INFO] [stderr] 183 | UtMetadataRejectMessage{ piece: piece, bencode_size: encoded_bytes_size } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:187:34 [INFO] [stderr] | [INFO] [stderr] 187 | UtMetadataRejectMessage{ piece: piece, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/standard.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | HaveMessage { piece_index: piece_index } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | BitFieldMessage { bytes: bytes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/message/standard.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | BitFieldIter{ bytes: bytes, cur_bit: 0 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/message/standard.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | block_length: block_length, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_length` [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/message/standard.rs:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | block: block [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/message/standard.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:252:13 [INFO] [stderr] | [INFO] [stderr] 252 | block_length: block_length, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_length` [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/protocol/extension.rs:20:82 [INFO] [stderr] | [INFO] [stderr] 20 | PeerExtensionProtocol{ our_extended_msg: None, their_extended_msg: None, custom_protocol: custom_protocol } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `custom_protocol` [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/protocol/wire.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | PeerWireProtocol{ ext_protocol: ext_protocol } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ext_protocol` [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/codec.rs:23:28 [INFO] [stderr] | [INFO] [stderr] 23 | PeerProtocolCodec{ protocol: protocol, max_payload: None } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `protocol` [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/codec.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | PeerProtocolCodec{ protocol: protocol, max_payload: Some(max_payload) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `protocol` [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/manager/peer_info.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/manager/peer_info.rs:24:31 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pid` [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/manager/peer_info.rs:24:41 [INFO] [stderr] | [INFO] [stderr] 24 | PeerInfo{ addr: addr, pid: pid, hash: hash, ext: extensions } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [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/manager/future/mod.rs:85:33 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dur` [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/manager/future/mod.rs:85:43 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `timer` [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/manager/future/mod.rs:85:57 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `sleep` [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/manager/future/mod.rs:85:71 [INFO] [stderr] | [INFO] [stderr] 85 | RecurringTimeoutStream{ dur: dur, timer: timer, sleep: sleep, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/manager/mod.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | PeerManager{ sink: sink, stream: stream } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `sink` [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/manager/mod.rs:70:34 [INFO] [stderr] | [INFO] [stderr] 70 | PeerManager{ sink: sink, stream: stream } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/manager/mod.rs:134:26 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/manager/mod.rs:134:42 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `timer` [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/manager/mod.rs:134:56 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `build` [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/manager/mod.rs:134:70 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `send` [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/manager/mod.rs:134:82 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `peers` [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/manager/mod.rs:134:96 [INFO] [stderr] | [INFO] [stderr] 134 | PeerManagerSink{ handle: handle, timer: timer, build: build, send: send, peers: peers, task_queue: task_queue} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task_queue` [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/manager/mod.rs:224:119 [INFO] [stderr] | [INFO] [stderr] 224 | Entry::Occupied(_) => Err(PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })), [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:238:104 [INFO] [stderr] | [INFO] [stderr] 238 | .ok_or_else(|| PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:248:104 [INFO] [stderr] | [INFO] [stderr] 248 | .ok_or_else(|| PeerManagerError::from_kind(PeerManagerErrorKind::PeerNotFound{ info: info })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `info` [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/manager/mod.rs:288:28 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `recv` [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/manager/mod.rs:288:40 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `peers` [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/manager/mod.rs:288:54 [INFO] [stderr] | [INFO] [stderr] 288 | PeerManagerStream{ recv: recv, peers: peers, task_queue: task_queue, opt_pending: None } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task_queue` [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/message/bits_ext/handshake.rs:251:41 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `id_map` [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/message/bits_ext/handshake.rs:251:57 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `our_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/message/bits_ext/handshake.rs:251:73 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_tcp_port` [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/message/bits_ext/handshake.rs:251:101 [INFO] [stderr] | [INFO] [stderr] 251 | Ok(ExtendedMessage{ id_map: id_map, our_id: our_id, our_tcp_port: our_tcp_port, their_ip: their_ip, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `their_ip` [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/message/bits_ext/handshake.rs:252:25 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_ipv6_addr` [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/message/bits_ext/handshake.rs:252:55 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_ipv4_addr` [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/message/bits_ext/handshake.rs:252:85 [INFO] [stderr] | [INFO] [stderr] 252 | our_ipv6_addr: our_ipv6_addr, our_ipv4_addr: our_ipv4_addr, our_max_requests: our_max_requests, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `our_max_requests` [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/message/bits_ext/handshake.rs:253:25 [INFO] [stderr] | [INFO] [stderr] 253 | metadata_size: metadata_size, raw_bencode: clone_raw_bencode }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `metadata_size` [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/message/bits_ext/port.rs:19:23 [INFO] [stderr] | [INFO] [stderr] 19 | PortMessage { port: port } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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/message/prot_ext/ut_metadata.rs:87:35 [INFO] [stderr] | [INFO] [stderr] 87 | UtMetadataRequestMessage{ piece: piece, bencode_size: encoded_bytes_size } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:91:35 [INFO] [stderr] | [INFO] [stderr] 91 | UtMetadataRequestMessage{ piece: piece, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:131:32 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:131:46 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_size` [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/message/prot_ext/ut_metadata.rs:131:70 [INFO] [stderr] | [INFO] [stderr] 131 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: encoded_bytes_len } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/message/prot_ext/ut_metadata.rs:135:32 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:135:46 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_size` [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/message/prot_ext/ut_metadata.rs:135:70 [INFO] [stderr] | [INFO] [stderr] 135 | UtMetadataDataMessage{ piece: piece, total_size: total_size, data: data, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/message/prot_ext/ut_metadata.rs:183:34 [INFO] [stderr] | [INFO] [stderr] 183 | UtMetadataRejectMessage{ piece: piece, bencode_size: encoded_bytes_size } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/prot_ext/ut_metadata.rs:187:34 [INFO] [stderr] | [INFO] [stderr] 187 | UtMetadataRejectMessage{ piece: piece, bencode_size: bytes.len() } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `piece` [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/message/standard.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | HaveMessage { piece_index: piece_index } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | BitFieldMessage { bytes: bytes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/message/standard.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | BitFieldIter{ bytes: bytes, cur_bit: 0 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/message/standard.rs:131:13 [INFO] [stderr] | [INFO] [stderr] 131 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | block_length: block_length, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_length` [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/message/standard.rs:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | block: block [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/message/standard.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | piece_index: piece_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `piece_index` [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/message/standard.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | block_offset: block_offset, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_offset` [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/message/standard.rs:252:13 [INFO] [stderr] | [INFO] [stderr] 252 | block_length: block_length, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_length` [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/protocol/extension.rs:20:82 [INFO] [stderr] | [INFO] [stderr] 20 | PeerExtensionProtocol{ our_extended_msg: None, their_extended_msg: None, custom_protocol: custom_protocol } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `custom_protocol` [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/protocol/wire.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | PeerWireProtocol{ ext_protocol: ext_protocol } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ext_protocol` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:25:37 [INFO] [stderr] | [INFO] [stderr] 25 | pub const ID_MAP_KEY: &'static [u8] = b"m"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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/message/bencode.rs:26:37 [INFO] [stderr] | [INFO] [stderr] 26 | pub const CLIENT_ID_KEY: &'static [u8] = b"v"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:27:37 [INFO] [stderr] | [INFO] [stderr] 27 | pub const CLIENT_TCP_PORT_KEY: &'static [u8] = b"p"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:28:37 [INFO] [stderr] | [INFO] [stderr] 28 | pub const OUR_IP_KEY: &'static [u8] = b"yourip"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:29:37 [INFO] [stderr] | [INFO] [stderr] 29 | pub const CLIENT_IPV6_ADDR_KEY: &'static [u8] = b"ipv6"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:30:37 [INFO] [stderr] | [INFO] [stderr] 30 | pub const CLIENT_IPV4_ADDR_KEY: &'static [u8] = b"ipv4"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:31:37 [INFO] [stderr] | [INFO] [stderr] 31 | pub const CLIENT_MAX_REQUESTS_KEY: &'static [u8] = b"reqq"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:32:37 [INFO] [stderr] | [INFO] [stderr] 32 | pub const METADATA_SIZE_KEY: &'static [u8] = b"metadata_size"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | pub const MESSAGE_TYPE_KEY: &'static [u8] = b"msg_type"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:137:30 [INFO] [stderr] | [INFO] [stderr] 137 | pub const PIECE_INDEX_KEY: &'static [u8] = b"piece"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:138:30 [INFO] [stderr] | [INFO] [stderr] 138 | pub const TOTAL_SIZE_KEY: &'static [u8] = b"total_size"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:165:24 [INFO] [stderr] | [INFO] [stderr] 165 | const ROOT_ERROR_KEY: &'static str = "ExtendedMessage"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:167:24 [INFO] [stderr] | [INFO] [stderr] 167 | const UT_METADATA_ID: &'static str = "ut_metadata"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:168:24 [INFO] [stderr] | [INFO] [stderr] 168 | const UT_PEX_ID: &'static str = "ut_pex"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | const ROOT_ERROR_KEY: &'static str = "PeerExtensionProtocolMessage"; [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: unneeded return statement [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:45:32 [INFO] [stderr] | [INFO] [stderr] 45 | other => { return Err(io::Error::new(io::ErrorKind::Other, format!("Failed To Recognize Message Type For UtMetadataMessage: {}", msg_type))) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(io::Error::new(io::ErrorKind::Other, format!("Failed To Recognize Message Type For UtMetadataMessage: {}", msg_type)))` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:25:37 [INFO] [stderr] | [INFO] [stderr] 25 | pub const ID_MAP_KEY: &'static [u8] = b"m"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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/message/bencode.rs:26:37 [INFO] [stderr] | [INFO] [stderr] 26 | pub const CLIENT_ID_KEY: &'static [u8] = b"v"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:27:37 [INFO] [stderr] | [INFO] [stderr] 27 | pub const CLIENT_TCP_PORT_KEY: &'static [u8] = b"p"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:28:37 [INFO] [stderr] | [INFO] [stderr] 28 | pub const OUR_IP_KEY: &'static [u8] = b"yourip"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:29:37 [INFO] [stderr] | [INFO] [stderr] 29 | pub const CLIENT_IPV6_ADDR_KEY: &'static [u8] = b"ipv6"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:30:37 [INFO] [stderr] | [INFO] [stderr] 30 | pub const CLIENT_IPV4_ADDR_KEY: &'static [u8] = b"ipv4"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:31:37 [INFO] [stderr] | [INFO] [stderr] 31 | pub const CLIENT_MAX_REQUESTS_KEY: &'static [u8] = b"reqq"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:32:37 [INFO] [stderr] | [INFO] [stderr] 32 | pub const METADATA_SIZE_KEY: &'static [u8] = b"metadata_size"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | pub const MESSAGE_TYPE_KEY: &'static [u8] = b"msg_type"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:137:30 [INFO] [stderr] | [INFO] [stderr] 137 | pub const PIECE_INDEX_KEY: &'static [u8] = b"piece"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bencode.rs:138:30 [INFO] [stderr] | [INFO] [stderr] 138 | pub const TOTAL_SIZE_KEY: &'static [u8] = b"total_size"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:165:24 [INFO] [stderr] | [INFO] [stderr] 165 | const ROOT_ERROR_KEY: &'static str = "ExtendedMessage"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:167:24 [INFO] [stderr] | [INFO] [stderr] 167 | const UT_METADATA_ID: &'static str = "ut_metadata"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/bits_ext/handshake.rs:168:24 [INFO] [stderr] | [INFO] [stderr] 168 | const UT_PEX_ID: &'static str = "ut_pex"; [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | const ROOT_ERROR_KEY: &'static str = "PeerExtensionProtocolMessage"; [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: unneeded return statement [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:45:32 [INFO] [stderr] | [INFO] [stderr] 45 | other => { return Err(io::Error::new(io::ErrorKind::Other, format!("Failed To Recognize Message Type For UtMetadataMessage: {}", msg_type))) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(io::Error::new(io::ErrorKind::Other, format!("Failed To Recognize Message Type For UtMetadataMessage: {}", msg_type)))` [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: redundant closure found [INFO] [stderr] --> src/codec.rs:50:46 [INFO] [stderr] | [INFO] [stderr] 50 | self.protocol.parse_bytes(bytes).map(|message| Some(message)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `60` [INFO] [stderr] --> src/manager/builder.rs:13:50 [INFO] [stderr] | [INFO] [stderr] 13 | const DEFAULT_HEARTBEAT_INTERVAL_MILLIS: u64 = 1 * 60 * 1000; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `manager::builder::PeerManagerBuilder` [INFO] [stderr] --> src/manager/builder.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / pub fn new() -> PeerManagerBuilder { [INFO] [stderr] 29 | | PeerManagerBuilder { [INFO] [stderr] 30 | | peer: DEFAULT_PEER_CAPACITY, [INFO] [stderr] 31 | | sink_buffer: DEFAULT_SINK_BUFFER_CAPACITY, [INFO] [stderr] ... | [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [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] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/manager/future/mod.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | .map_err(|error| PersistentError::IoError(error)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PersistentError::IoError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the `other @ _` pattern can be written as just `other` [INFO] [stderr] --> src/manager/future/mod.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | other @ _ => Ok(other) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/manager/future/mod.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | Err(_) => panic!("bip_peer: Timer Error In Manager Stream, Timer Capacity Is Probably Too Small...") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/manager/mod.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | |info| IPeerManagerMessage::RemovePeer(info)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `IPeerManagerMessage::RemovePeer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/manager/mod.rs:281:18 [INFO] [stderr] | [INFO] [stderr] 281 | opt_pending: Option>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [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/message/bencode.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / match (str::from_utf8(id.as_ref()), CONVERT.convert_int(ben_value, id)) { [INFO] [stderr] 41 | | (Ok(str_id), Ok(value)) => { id_map.insert(ExtendedType::from_id(str_id), value as u8); }, [INFO] [stderr] 42 | | _ => () [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____________^ help: try this: `if let (Ok(str_id), Ok(value)) = (str::from_utf8(id.as_ref()), CONVERT.convert_int(ben_value, id)) { id_map.insert(ExtendedType::from_id(str_id), value as u8); }` [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: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bencode.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | if port as u16 as i64 == port { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(port as u16)` [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: identical conversion [INFO] [stderr] --> src/message/bencode.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | CONVERT.lookup_and_convert_int(root, MESSAGE_TYPE_KEY).map(|msg_type| msg_type as u8).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, MESSAGE_TYPE_KEY).map(|msg_type| msg_type as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/message/bencode.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | CONVERT.lookup_and_convert_int(root, PIECE_INDEX_KEY).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, PIECE_INDEX_KEY)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/message/bencode.rs:152:5 [INFO] [stderr] | [INFO] [stderr] 152 | CONVERT.lookup_and_convert_int(root, TOTAL_SIZE_KEY).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, TOTAL_SIZE_KEY)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `message::bits_ext::handshake::ExtendedMessageBuilder` [INFO] [stderr] --> src/message/bits_ext/handshake.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new() -> ExtendedMessageBuilder { [INFO] [stderr] 33 | | ExtendedMessageBuilder{ id_map: HashMap::new(), our_id: None, our_tcp_port: None, their_ip: None, our_ipv6_addr: None, [INFO] [stderr] 34 | | our_ipv4_addr: None, our_max_requests: None, metadata_size: None, custom_entries: HashMap::new() } [INFO] [stderr] 35 | | } [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] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/handshake.rs:114:14 [INFO] [stderr] | [INFO] [stderr] 114 | .map(|client_ipv6_addr| convert::ipv6_to_bytes_be(client_ipv6_addr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `convert::ipv6_to_bytes_be` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/handshake.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | .map(|client_ipv4_addr| convert::ipv4_to_bytes_be(client_ipv4_addr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `convert::ipv4_to_bytes_be` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bits_ext/handshake.rs:127:82 [INFO] [stderr] | [INFO] [stderr] 127 | ben_id_map_access.insert(ext_id.id().as_bytes().into(), ben_int!(value as i64)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bits_ext/handshake.rs:141:98 [INFO] [stderr] | [INFO] [stderr] 141 | .map(|tcp_port| root_map_access.insert(bencode::CLIENT_TCP_PORT_KEY.into(), ben_int!(tcp_port as i64))); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(tcp_port)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/handshake.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | / match self { [INFO] [stderr] 191 | | &ExtendedType::UtMetadata => UT_METADATA_ID, [INFO] [stderr] 192 | | &ExtendedType::UtPex => UT_PEX_ID, [INFO] [stderr] 193 | | &ExtendedType::Custom(ref id) => &**id [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________^ [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] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 190 | match *self { [INFO] [stderr] 191 | ExtendedType::UtMetadata => UT_METADATA_ID, [INFO] [stderr] 192 | ExtendedType::UtPex => UT_PEX_ID, [INFO] [stderr] 193 | ExtendedType::Custom(ref id) => &**id [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/message/bits_ext/handshake.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 280 | self.id_map.get(ext_type).map(|id| *id) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.id_map.get(ext_type).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/bits_ext/handshake.rs:319:5 [INFO] [stderr] | [INFO] [stderr] 319 | / pub fn bencode_ref<'a>(&'a self) -> BencodeRef<'a> { [INFO] [stderr] 320 | | // We already verified that this is valid bencode [INFO] [stderr] 321 | | BencodeRef::decode(&*self.raw_bencode, BDecodeOpt::default()).unwrap() [INFO] [stderr] 322 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/bits_ext/port.rs:30:27 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn write_bytes(&self, mut writer: W) -> io::Result<()> [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/port.rs:40:25 [INFO] [stderr] | [INFO] [stderr] 40 | map!(bytes, be_u16, |port| PortMessage::new(port)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PortMessage::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/mod.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &BitsExtensionMessage::Port(msg) => msg.write_bytes(writer), [INFO] [stderr] 50 | | &BitsExtensionMessage::Extended(ref msg) => msg.write_bytes(writer) [INFO] [stderr] 51 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | BitsExtensionMessage::Port(msg) => msg.write_bytes(writer), [INFO] [stderr] 50 | BitsExtensionMessage::Extended(ref msg) => msg.write_bytes(writer) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/mod.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match self { [INFO] [stderr] 56 | | &BitsExtensionMessage::Port(_) => PORT_MESSAGE_LEN as usize, [INFO] [stderr] 57 | | &BitsExtensionMessage::Extended(ref msg) => BASE_EXTENDED_MESSAGE_LEN as usize + msg.bencode_size() [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 55 | match *self { [INFO] [stderr] 56 | BitsExtensionMessage::Port(_) => PORT_MESSAGE_LEN as usize, [INFO] [stderr] 57 | BitsExtensionMessage::Extended(ref msg) => BASE_EXTENDED_MESSAGE_LEN as usize + msg.bencode_size() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/message/bits_ext/mod.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | / fn parse_extension(mut bytes: Bytes) -> IResult<(), io::Result> { [INFO] [stderr] 63 | | let header_bytes = bytes.clone(); [INFO] [stderr] 64 | | [INFO] [stderr] 65 | | alt!((), [INFO] [stderr] ... | [INFO] [stderr] 82 | | ) [INFO] [stderr] 83 | | } [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] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / alt!((), [INFO] [stderr] 66 | | ignore_input!( [INFO] [stderr] 67 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)), [INFO] [stderr] 68 | | (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!( [INFO] [stderr] ... | [INFO] [stderr] 81 | | ) [INFO] [stderr] 82 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:70:45 [INFO] [stderr] | [INFO] [stderr] 70 | |res_port| res_port.map(|port| BitsExtensionMessage::Port(port)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BitsExtensionMessage::Port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / alt!((), [INFO] [stderr] 66 | | ignore_input!( [INFO] [stderr] 67 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)), [INFO] [stderr] 68 | | (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!( [INFO] [stderr] ... | [INFO] [stderr] 81 | | ) [INFO] [stderr] 82 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:78:53 [INFO] [stderr] | [INFO] [stderr] 78 | |res_extended| res_extended.map(|extended| BitsExtensionMessage::Extended(extended)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BitsExtensionMessage::Extended` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match self { [INFO] [stderr] 56 | | &UtMetadataMessage::Request(ref request) => request.write_bytes(writer), [INFO] [stderr] 57 | | &UtMetadataMessage::Data(ref data) => data.write_bytes(writer), [INFO] [stderr] 58 | | &UtMetadataMessage::Reject(ref reject) => reject.write_bytes(writer), [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 55 | match *self { [INFO] [stderr] 56 | UtMetadataMessage::Request(ref request) => request.write_bytes(writer), [INFO] [stderr] 57 | UtMetadataMessage::Data(ref data) => data.write_bytes(writer), [INFO] [stderr] 58 | UtMetadataMessage::Reject(ref reject) => reject.write_bytes(writer), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / match self { [INFO] [stderr] 64 | | &UtMetadataMessage::Request(ref request) => request.message_size(), [INFO] [stderr] 65 | | &UtMetadataMessage::Data(ref data) => data.message_size(), [INFO] [stderr] 66 | | &UtMetadataMessage::Reject(ref reject) => reject.message_size(), [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 63 | match *self { [INFO] [stderr] 64 | UtMetadataMessage::Request(ref request) => request.message_size(), [INFO] [stderr] 65 | UtMetadataMessage::Data(ref data) => data.message_size(), [INFO] [stderr] 66 | UtMetadataMessage::Reject(ref reject) => reject.message_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:83:51 [INFO] [stderr] | [INFO] [stderr] 83 | bencode::MESSAGE_TYPE_KEY => ben_int!(REQUEST_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REQUEST_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:98:51 [INFO] [stderr] | [INFO] [stderr] 98 | bencode::MESSAGE_TYPE_KEY => ben_int!(REQUEST_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REQUEST_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:126:51 [INFO] [stderr] | [INFO] [stderr] 126 | bencode::MESSAGE_TYPE_KEY => ben_int!(DATA_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(DATA_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:142:51 [INFO] [stderr] | [INFO] [stderr] 142 | bencode::MESSAGE_TYPE_KEY => ben_int!(DATA_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(DATA_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:179:51 [INFO] [stderr] | [INFO] [stderr] 179 | bencode::MESSAGE_TYPE_KEY => ben_int!(REJECT_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REJECT_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:194:51 [INFO] [stderr] | [INFO] [stderr] 194 | bencode::MESSAGE_TYPE_KEY => ben_int!(REJECT_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REJECT_MESSAGE_TYPE_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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/mod.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | / match self { [INFO] [stderr] 43 | | &PeerExtensionProtocolMessage::UtMetadata(ref msg) => { [INFO] [stderr] 44 | | let ext_id = if let Some(ext_id) = extended.query_id(&ExtendedType::UtMetadata) { [INFO] [stderr] 45 | | ext_id [INFO] [stderr] ... | [INFO] [stderr] 55 | | &PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.write_bytes(msg, writer) [INFO] [stderr] 56 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 42 | match *self { [INFO] [stderr] 43 | PeerExtensionProtocolMessage::UtMetadata(ref msg) => { [INFO] [stderr] 44 | let ext_id = if let Some(ext_id) = extended.query_id(&ExtendedType::UtMetadata) { [INFO] [stderr] 45 | ext_id [INFO] [stderr] 46 | } else { return Err(io::Error::new(io::ErrorKind::Other, "Can't Send UtMetadataMessage As We Have No Id Mapping")) }; [INFO] [stderr] 47 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/mod.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &PeerExtensionProtocolMessage::UtMetadata(ref msg) => msg.message_size(), [INFO] [stderr] 62 | | &PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.message_size(&msg) [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | PeerExtensionProtocolMessage::UtMetadata(ref msg) => msg.message_size(), [INFO] [stderr] 62 | PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.message_size(&msg) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / alt!((), [INFO] [stderr] 73 | | ignore_input!( [INFO] [stderr] 74 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)), [INFO] [stderr] 75 | | (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) => [INFO] [stderr] ... | [INFO] [stderr] 79 | | |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext))) [INFO] [stderr] 80 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:79:48 [INFO] [stderr] | [INFO] [stderr] 79 | |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerExtensionProtocolMessage::Custom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:90:22 [INFO] [stderr] | [INFO] [stderr] 90 | .map(|lt_metadata_msg| PeerExtensionProtocolMessage::UtMetadata(lt_metadata_msg)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerExtensionProtocolMessage::UtMetadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/standard.rs:24:27 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn write_bytes(&self, mut writer: W) -> io::Result<()> [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/standard.rs:32:24 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn piece_index(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/message/standard.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | let opt_byte = self.bytes.get(byte_in_bytes).map(|byte| *byte); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.bytes.get(byte_in_bytes).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &PeerWireProtocolMessage::KeepAlive => true, [INFO] [stderr] 98 | | _ => false [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 96 | match *self { [INFO] [stderr] 97 | PeerWireProtocolMessage::KeepAlive => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self { [INFO] [stderr] 124 | | &PeerWireProtocolMessage::KeepAlive => write_length_id_pair(writer, KEEP_ALIVE_MESSAGE_LEN, None), [INFO] [stderr] 125 | | &PeerWireProtocolMessage::Choke => write_length_id_pair(writer, CHOKE_MESSAGE_LEN, Some(CHOKE_MESSAGE_ID)), [INFO] [stderr] 126 | | &PeerWireProtocolMessage::UnChoke => write_length_id_pair(writer, UNCHOKE_MESSAGE_LEN, Some(UNCHOKE_MESSAGE_ID)), [INFO] [stderr] ... | [INFO] [stderr] 135 | | &PeerWireProtocolMessage::ProtExtension(ref ext) => ext_protocol.write_bytes(ext, writer) [INFO] [stderr] 136 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 123 | match *self { [INFO] [stderr] 124 | PeerWireProtocolMessage::KeepAlive => write_length_id_pair(writer, KEEP_ALIVE_MESSAGE_LEN, None), [INFO] [stderr] 125 | PeerWireProtocolMessage::Choke => write_length_id_pair(writer, CHOKE_MESSAGE_LEN, Some(CHOKE_MESSAGE_ID)), [INFO] [stderr] 126 | PeerWireProtocolMessage::UnChoke => write_length_id_pair(writer, UNCHOKE_MESSAGE_LEN, Some(UNCHOKE_MESSAGE_ID)), [INFO] [stderr] 127 | PeerWireProtocolMessage::Interested => write_length_id_pair(writer, INTERESTED_MESSAGE_LEN, Some(INTERESTED_MESSAGE_ID)), [INFO] [stderr] 128 | PeerWireProtocolMessage::UnInterested => write_length_id_pair(writer, UNINTERESTED_MESSAGE_LEN, Some(UNINTERESTED_MESSAGE_ID)), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | let message_specific_len = match self { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 141 | | &PeerWireProtocolMessage::KeepAlive => KEEP_ALIVE_MESSAGE_LEN as usize, [INFO] [stderr] 142 | | &PeerWireProtocolMessage::Choke => CHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 143 | | &PeerWireProtocolMessage::UnChoke => UNCHOKE_MESSAGE_LEN as usize, [INFO] [stderr] ... | [INFO] [stderr] 152 | | &PeerWireProtocolMessage::ProtExtension(ref ext) => ext_protocol.message_size(ext) [INFO] [stderr] 153 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 140 | let message_specific_len = match *self { [INFO] [stderr] 141 | PeerWireProtocolMessage::KeepAlive => KEEP_ALIVE_MESSAGE_LEN as usize, [INFO] [stderr] 142 | PeerWireProtocolMessage::Choke => CHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 143 | PeerWireProtocolMessage::UnChoke => UNCHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 144 | PeerWireProtocolMessage::Interested => INTERESTED_MESSAGE_LEN as usize, [INFO] [stderr] 145 | PeerWireProtocolMessage::UnInterested => UNINTERESTED_MESSAGE_LEN as usize, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 33 [INFO] [stderr] --> src/message/mod.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | / fn parse_message

(mut bytes: Bytes, ext_protocol: &mut P) -> IResult<(), io::Result>> [INFO] [stderr] 197 | | where P: PeerProtocol { [INFO] [stderr] 198 | | let header_bytes = bytes.clone(); [INFO] [stderr] 199 | | [INFO] [stderr] ... | [INFO] [stderr] 244 | | ) [INFO] [stderr] 245 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / alt!((), [INFO] [stderr] 202 | | ignore_input!( [INFO] [stderr] 203 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))), [INFO] [stderr] 204 | | (KEEP_ALIVE_MESSAGE_LEN, None) => value!( [INFO] [stderr] ... | [INFO] [stderr] 243 | | |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext))) [INFO] [stderr] 244 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/mod.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | |res_have| res_have.map(|have| PeerWireProtocolMessage::Have(have)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Have` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:225:53 [INFO] [stderr] | [INFO] [stderr] 225 | |res_bitfield| res_bitfield.map(|bitfield| PeerWireProtocolMessage::BitField(bitfield)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::BitField` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:229:51 [INFO] [stderr] | [INFO] [stderr] 229 | |res_request| res_request.map(|request| PeerWireProtocolMessage::Request(request)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:233:47 [INFO] [stderr] | [INFO] [stderr] 233 | |res_piece| res_piece.map(|piece| PeerWireProtocolMessage::Piece(piece)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Piece` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:237:49 [INFO] [stderr] | [INFO] [stderr] 237 | |res_cancel| res_cancel.map(|cancel| PeerWireProtocolMessage::Cancel(cancel)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Cancel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:241:48 [INFO] [stderr] | [INFO] [stderr] 241 | |res_bits_ext| res_bits_ext.map(|bits_ext| PeerWireProtocolMessage::BitsExtension(bits_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::BitsExtension` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:243:48 [INFO] [stderr] | [INFO] [stderr] 243 | |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::ProtExtension` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `protocol::unit::UnitProtocol` [INFO] [stderr] --> src/protocol/unit.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new() -> UnitProtocol { [INFO] [stderr] 13 | | UnitProtocol [INFO] [stderr] 14 | | } [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] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `protocol::null::NullProtocol` [INFO] [stderr] --> src/protocol/null.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> NullProtocol { [INFO] [stderr] 21 | | NullProtocol [INFO] [stderr] 22 | | } [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] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/codec.rs:50:46 [INFO] [stderr] | [INFO] [stderr] 50 | self.protocol.parse_bytes(bytes).map(|message| Some(message)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `60` [INFO] [stderr] --> src/manager/builder.rs:13:50 [INFO] [stderr] | [INFO] [stderr] 13 | const DEFAULT_HEARTBEAT_INTERVAL_MILLIS: u64 = 1 * 60 * 1000; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `manager::builder::PeerManagerBuilder` [INFO] [stderr] --> src/manager/builder.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / pub fn new() -> PeerManagerBuilder { [INFO] [stderr] 29 | | PeerManagerBuilder { [INFO] [stderr] 30 | | peer: DEFAULT_PEER_CAPACITY, [INFO] [stderr] 31 | | sink_buffer: DEFAULT_SINK_BUFFER_CAPACITY, [INFO] [stderr] ... | [INFO] [stderr] 35 | | } [INFO] [stderr] 36 | | } [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] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/manager/future/mod.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | .map_err(|error| PersistentError::IoError(error)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PersistentError::IoError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the `other @ _` pattern can be written as just `other` [INFO] [stderr] --> src/manager/future/mod.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | other @ _ => Ok(other) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/manager/future/mod.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | Err(_) => panic!("bip_peer: Timer Error In Manager Stream, Timer Capacity Is Probably Too Small...") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/manager/mod.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | |info| IPeerManagerMessage::RemovePeer(info)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `IPeerManagerMessage::RemovePeer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/manager/mod.rs:281:18 [INFO] [stderr] | [INFO] [stderr] 281 | opt_pending: Option>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/manager/mod.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | self.task_queue.try_pop().map(|task| task.notify()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(task) = self.task_queue.try_pop() { task.notify() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [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/message/bencode.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / match (str::from_utf8(id.as_ref()), CONVERT.convert_int(ben_value, id)) { [INFO] [stderr] 41 | | (Ok(str_id), Ok(value)) => { id_map.insert(ExtendedType::from_id(str_id), value as u8); }, [INFO] [stderr] 42 | | _ => () [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____________^ help: try this: `if let (Ok(str_id), Ok(value)) = (str::from_utf8(id.as_ref()), CONVERT.convert_int(ben_value, id)) { id_map.insert(ExtendedType::from_id(str_id), value as u8); }` [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: casting u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bencode.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | if port as u16 as i64 == port { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(port as u16)` [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: identical conversion [INFO] [stderr] --> src/message/bencode.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | CONVERT.lookup_and_convert_int(root, MESSAGE_TYPE_KEY).map(|msg_type| msg_type as u8).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, MESSAGE_TYPE_KEY).map(|msg_type| msg_type as u8)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/message/bencode.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | CONVERT.lookup_and_convert_int(root, PIECE_INDEX_KEY).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, PIECE_INDEX_KEY)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/message/bencode.rs:152:5 [INFO] [stderr] | [INFO] [stderr] 152 | CONVERT.lookup_and_convert_int(root, TOTAL_SIZE_KEY).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `CONVERT.lookup_and_convert_int(root, TOTAL_SIZE_KEY)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `message::bits_ext::handshake::ExtendedMessageBuilder` [INFO] [stderr] --> src/message/bits_ext/handshake.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | / pub fn new() -> ExtendedMessageBuilder { [INFO] [stderr] 33 | | ExtendedMessageBuilder{ id_map: HashMap::new(), our_id: None, our_tcp_port: None, their_ip: None, our_ipv6_addr: None, [INFO] [stderr] 34 | | our_ipv4_addr: None, our_max_requests: None, metadata_size: None, custom_entries: HashMap::new() } [INFO] [stderr] 35 | | } [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] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/handshake.rs:114:14 [INFO] [stderr] | [INFO] [stderr] 114 | .map(|client_ipv6_addr| convert::ipv6_to_bytes_be(client_ipv6_addr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `convert::ipv6_to_bytes_be` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/handshake.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | .map(|client_ipv4_addr| convert::ipv4_to_bytes_be(client_ipv4_addr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `convert::ipv4_to_bytes_be` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bits_ext/handshake.rs:127:82 [INFO] [stderr] | [INFO] [stderr] 127 | ben_id_map_access.insert(ext_id.id().as_bytes().into(), ben_int!(value as i64)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [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 u16 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/bits_ext/handshake.rs:141:98 [INFO] [stderr] | [INFO] [stderr] 141 | .map(|tcp_port| root_map_access.insert(bencode::CLIENT_TCP_PORT_KEY.into(), ben_int!(tcp_port as i64))); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(tcp_port)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/handshake.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | / match self { [INFO] [stderr] 191 | | &ExtendedType::UtMetadata => UT_METADATA_ID, [INFO] [stderr] 192 | | &ExtendedType::UtPex => UT_PEX_ID, [INFO] [stderr] 193 | | &ExtendedType::Custom(ref id) => &**id [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________^ [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] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 190 | match *self { [INFO] [stderr] 191 | ExtendedType::UtMetadata => UT_METADATA_ID, [INFO] [stderr] 192 | ExtendedType::UtPex => UT_PEX_ID, [INFO] [stderr] 193 | ExtendedType::Custom(ref id) => &**id [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/message/bits_ext/handshake.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 280 | self.id_map.get(ext_type).map(|id| *id) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.id_map.get(ext_type).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/message/bits_ext/handshake.rs:319:5 [INFO] [stderr] | [INFO] [stderr] 319 | / pub fn bencode_ref<'a>(&'a self) -> BencodeRef<'a> { [INFO] [stderr] 320 | | // We already verified that this is valid bencode [INFO] [stderr] 321 | | BencodeRef::decode(&*self.raw_bencode, BDecodeOpt::default()).unwrap() [INFO] [stderr] 322 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/bits_ext/port.rs:30:27 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn write_bytes(&self, mut writer: W) -> io::Result<()> [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/port.rs:40:25 [INFO] [stderr] | [INFO] [stderr] 40 | map!(bytes, be_u16, |port| PortMessage::new(port)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PortMessage::new` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/mod.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &BitsExtensionMessage::Port(msg) => msg.write_bytes(writer), [INFO] [stderr] 50 | | &BitsExtensionMessage::Extended(ref msg) => msg.write_bytes(writer) [INFO] [stderr] 51 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | BitsExtensionMessage::Port(msg) => msg.write_bytes(writer), [INFO] [stderr] 50 | BitsExtensionMessage::Extended(ref msg) => msg.write_bytes(writer) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/bits_ext/mod.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match self { [INFO] [stderr] 56 | | &BitsExtensionMessage::Port(_) => PORT_MESSAGE_LEN as usize, [INFO] [stderr] 57 | | &BitsExtensionMessage::Extended(ref msg) => BASE_EXTENDED_MESSAGE_LEN as usize + msg.bencode_size() [INFO] [stderr] 58 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 55 | match *self { [INFO] [stderr] 56 | BitsExtensionMessage::Port(_) => PORT_MESSAGE_LEN as usize, [INFO] [stderr] 57 | BitsExtensionMessage::Extended(ref msg) => BASE_EXTENDED_MESSAGE_LEN as usize + msg.bencode_size() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/message/bits_ext/mod.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | / fn parse_extension(mut bytes: Bytes) -> IResult<(), io::Result> { [INFO] [stderr] 63 | | let header_bytes = bytes.clone(); [INFO] [stderr] 64 | | [INFO] [stderr] 65 | | alt!((), [INFO] [stderr] ... | [INFO] [stderr] 82 | | ) [INFO] [stderr] 83 | | } [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] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / alt!((), [INFO] [stderr] 66 | | ignore_input!( [INFO] [stderr] 67 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)), [INFO] [stderr] 68 | | (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!( [INFO] [stderr] ... | [INFO] [stderr] 81 | | ) [INFO] [stderr] 82 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:70:45 [INFO] [stderr] | [INFO] [stderr] 70 | |res_port| res_port.map(|port| BitsExtensionMessage::Port(port)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BitsExtensionMessage::Port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / alt!((), [INFO] [stderr] 66 | | ignore_input!( [INFO] [stderr] 67 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)), [INFO] [stderr] 68 | | (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!( [INFO] [stderr] ... | [INFO] [stderr] 81 | | ) [INFO] [stderr] 82 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/bits_ext/mod.rs:78:53 [INFO] [stderr] | [INFO] [stderr] 78 | |res_extended| res_extended.map(|extended| BitsExtensionMessage::Extended(extended)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `BitsExtensionMessage::Extended` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / match self { [INFO] [stderr] 56 | | &UtMetadataMessage::Request(ref request) => request.write_bytes(writer), [INFO] [stderr] 57 | | &UtMetadataMessage::Data(ref data) => data.write_bytes(writer), [INFO] [stderr] 58 | | &UtMetadataMessage::Reject(ref reject) => reject.write_bytes(writer), [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 55 | match *self { [INFO] [stderr] 56 | UtMetadataMessage::Request(ref request) => request.write_bytes(writer), [INFO] [stderr] 57 | UtMetadataMessage::Data(ref data) => data.write_bytes(writer), [INFO] [stderr] 58 | UtMetadataMessage::Reject(ref reject) => reject.write_bytes(writer), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / match self { [INFO] [stderr] 64 | | &UtMetadataMessage::Request(ref request) => request.message_size(), [INFO] [stderr] 65 | | &UtMetadataMessage::Data(ref data) => data.message_size(), [INFO] [stderr] 66 | | &UtMetadataMessage::Reject(ref reject) => reject.message_size(), [INFO] [stderr] 67 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 63 | match *self { [INFO] [stderr] 64 | UtMetadataMessage::Request(ref request) => request.message_size(), [INFO] [stderr] 65 | UtMetadataMessage::Data(ref data) => data.message_size(), [INFO] [stderr] 66 | UtMetadataMessage::Reject(ref reject) => reject.message_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:83:51 [INFO] [stderr] | [INFO] [stderr] 83 | bencode::MESSAGE_TYPE_KEY => ben_int!(REQUEST_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REQUEST_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:98:51 [INFO] [stderr] | [INFO] [stderr] 98 | bencode::MESSAGE_TYPE_KEY => ben_int!(REQUEST_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REQUEST_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:126:51 [INFO] [stderr] | [INFO] [stderr] 126 | bencode::MESSAGE_TYPE_KEY => ben_int!(DATA_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(DATA_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:142:51 [INFO] [stderr] | [INFO] [stderr] 142 | bencode::MESSAGE_TYPE_KEY => ben_int!(DATA_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(DATA_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:179:51 [INFO] [stderr] | [INFO] [stderr] 179 | bencode::MESSAGE_TYPE_KEY => ben_int!(REJECT_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REJECT_MESSAGE_TYPE_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 u8 to i64 may become silently lossy if types change [INFO] [stderr] --> src/message/prot_ext/ut_metadata.rs:194:51 [INFO] [stderr] | [INFO] [stderr] 194 | bencode::MESSAGE_TYPE_KEY => ben_int!(REJECT_MESSAGE_TYPE_ID as i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(REJECT_MESSAGE_TYPE_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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/mod.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | / match self { [INFO] [stderr] 43 | | &PeerExtensionProtocolMessage::UtMetadata(ref msg) => { [INFO] [stderr] 44 | | let ext_id = if let Some(ext_id) = extended.query_id(&ExtendedType::UtMetadata) { [INFO] [stderr] 45 | | ext_id [INFO] [stderr] ... | [INFO] [stderr] 55 | | &PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.write_bytes(msg, writer) [INFO] [stderr] 56 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 42 | match *self { [INFO] [stderr] 43 | PeerExtensionProtocolMessage::UtMetadata(ref msg) => { [INFO] [stderr] 44 | let ext_id = if let Some(ext_id) = extended.query_id(&ExtendedType::UtMetadata) { [INFO] [stderr] 45 | ext_id [INFO] [stderr] 46 | } else { return Err(io::Error::new(io::ErrorKind::Other, "Can't Send UtMetadataMessage As We Have No Id Mapping")) }; [INFO] [stderr] 47 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/prot_ext/mod.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &PeerExtensionProtocolMessage::UtMetadata(ref msg) => msg.message_size(), [INFO] [stderr] 62 | | &PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.message_size(&msg) [INFO] [stderr] 63 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | PeerExtensionProtocolMessage::UtMetadata(ref msg) => msg.message_size(), [INFO] [stderr] 62 | PeerExtensionProtocolMessage::Custom(ref msg) => custom_prot.message_size(&msg) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / alt!((), [INFO] [stderr] 73 | | ignore_input!( [INFO] [stderr] 74 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)), [INFO] [stderr] 75 | | (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) => [INFO] [stderr] ... | [INFO] [stderr] 79 | | |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext))) [INFO] [stderr] 80 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:79:48 [INFO] [stderr] | [INFO] [stderr] 79 | |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerExtensionProtocolMessage::Custom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/prot_ext/mod.rs:90:22 [INFO] [stderr] | [INFO] [stderr] 90 | .map(|lt_metadata_msg| PeerExtensionProtocolMessage::UtMetadata(lt_metadata_msg)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerExtensionProtocolMessage::UtMetadata` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/standard.rs:24:27 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn write_bytes(&self, mut writer: W) -> io::Result<()> [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/message/standard.rs:32:24 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn piece_index(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/message/standard.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | let opt_byte = self.bytes.get(byte_in_bytes).map(|byte| *byte); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.bytes.get(byte_in_bytes).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / match self { [INFO] [stderr] 97 | | &PeerWireProtocolMessage::KeepAlive => true, [INFO] [stderr] 98 | | _ => false [INFO] [stderr] 99 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 96 | match *self { [INFO] [stderr] 97 | PeerWireProtocolMessage::KeepAlive => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self { [INFO] [stderr] 124 | | &PeerWireProtocolMessage::KeepAlive => write_length_id_pair(writer, KEEP_ALIVE_MESSAGE_LEN, None), [INFO] [stderr] 125 | | &PeerWireProtocolMessage::Choke => write_length_id_pair(writer, CHOKE_MESSAGE_LEN, Some(CHOKE_MESSAGE_ID)), [INFO] [stderr] 126 | | &PeerWireProtocolMessage::UnChoke => write_length_id_pair(writer, UNCHOKE_MESSAGE_LEN, Some(UNCHOKE_MESSAGE_ID)), [INFO] [stderr] ... | [INFO] [stderr] 135 | | &PeerWireProtocolMessage::ProtExtension(ref ext) => ext_protocol.write_bytes(ext, writer) [INFO] [stderr] 136 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 123 | match *self { [INFO] [stderr] 124 | PeerWireProtocolMessage::KeepAlive => write_length_id_pair(writer, KEEP_ALIVE_MESSAGE_LEN, None), [INFO] [stderr] 125 | PeerWireProtocolMessage::Choke => write_length_id_pair(writer, CHOKE_MESSAGE_LEN, Some(CHOKE_MESSAGE_ID)), [INFO] [stderr] 126 | PeerWireProtocolMessage::UnChoke => write_length_id_pair(writer, UNCHOKE_MESSAGE_LEN, Some(UNCHOKE_MESSAGE_ID)), [INFO] [stderr] 127 | PeerWireProtocolMessage::Interested => write_length_id_pair(writer, INTERESTED_MESSAGE_LEN, Some(INTERESTED_MESSAGE_ID)), [INFO] [stderr] 128 | PeerWireProtocolMessage::UnInterested => write_length_id_pair(writer, UNINTERESTED_MESSAGE_LEN, Some(UNINTERESTED_MESSAGE_ID)), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/message/mod.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | let message_specific_len = match self { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 141 | | &PeerWireProtocolMessage::KeepAlive => KEEP_ALIVE_MESSAGE_LEN as usize, [INFO] [stderr] 142 | | &PeerWireProtocolMessage::Choke => CHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 143 | | &PeerWireProtocolMessage::UnChoke => UNCHOKE_MESSAGE_LEN as usize, [INFO] [stderr] ... | [INFO] [stderr] 152 | | &PeerWireProtocolMessage::ProtExtension(ref ext) => ext_protocol.message_size(ext) [INFO] [stderr] 153 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 140 | let message_specific_len = match *self { [INFO] [stderr] 141 | PeerWireProtocolMessage::KeepAlive => KEEP_ALIVE_MESSAGE_LEN as usize, [INFO] [stderr] 142 | PeerWireProtocolMessage::Choke => CHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 143 | PeerWireProtocolMessage::UnChoke => UNCHOKE_MESSAGE_LEN as usize, [INFO] [stderr] 144 | PeerWireProtocolMessage::Interested => INTERESTED_MESSAGE_LEN as usize, [INFO] [stderr] 145 | PeerWireProtocolMessage::UnInterested => UNINTERESTED_MESSAGE_LEN as usize, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 33 [INFO] [stderr] --> src/message/mod.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | / fn parse_message

(mut bytes: Bytes, ext_protocol: &mut P) -> IResult<(), io::Result>> [INFO] [stderr] 197 | | where P: PeerProtocol { [INFO] [stderr] 198 | | let header_bytes = bytes.clone(); [INFO] [stderr] 199 | | [INFO] [stderr] ... | [INFO] [stderr] 244 | | ) [INFO] [stderr] 245 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / alt!((), [INFO] [stderr] 202 | | ignore_input!( [INFO] [stderr] 203 | | switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))), [INFO] [stderr] 204 | | (KEEP_ALIVE_MESSAGE_LEN, None) => value!( [INFO] [stderr] ... | [INFO] [stderr] 243 | | |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext))) [INFO] [stderr] 244 | | ) [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#redundant_closure [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: redundant closure found [INFO] [stderr] --> src/message/mod.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | |res_have| res_have.map(|have| PeerWireProtocolMessage::Have(have)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Have` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:225:53 [INFO] [stderr] | [INFO] [stderr] 225 | |res_bitfield| res_bitfield.map(|bitfield| PeerWireProtocolMessage::BitField(bitfield)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::BitField` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:229:51 [INFO] [stderr] | [INFO] [stderr] 229 | |res_request| res_request.map(|request| PeerWireProtocolMessage::Request(request)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:233:47 [INFO] [stderr] | [INFO] [stderr] 233 | |res_piece| res_piece.map(|piece| PeerWireProtocolMessage::Piece(piece)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Piece` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:237:49 [INFO] [stderr] | [INFO] [stderr] 237 | |res_cancel| res_cancel.map(|cancel| PeerWireProtocolMessage::Cancel(cancel)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::Cancel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:241:48 [INFO] [stderr] | [INFO] [stderr] 241 | |res_bits_ext| res_bits_ext.map(|bits_ext| PeerWireProtocolMessage::BitsExtension(bits_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::BitsExtension` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/message/mod.rs:243:48 [INFO] [stderr] | [INFO] [stderr] 243 | |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PeerWireProtocolMessage::ProtExtension` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `protocol::unit::UnitProtocol` [INFO] [stderr] --> src/protocol/unit.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new() -> UnitProtocol { [INFO] [stderr] 13 | | UnitProtocol [INFO] [stderr] 14 | | } [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] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `protocol::null::NullProtocol` [INFO] [stderr] --> src/protocol/null.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> NullProtocol { [INFO] [stderr] 21 | | NullProtocol [INFO] [stderr] 22 | | } [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] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> test/peer_manager_send_backpressure.rs:21:31 [INFO] [stderr] | [INFO] [stderr] 21 | let (peer_one, peer_two): (ConnectedChannel, PeerWireProtocolMessage>, [INFO] [stderr] | _______________________________^ [INFO] [stderr] 22 | | ConnectedChannel, PeerWireProtocolMessage>) = ::connected_channel(5); [INFO] [stderr] | |______________________________________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 34.42s [INFO] running `"docker" "inspect" "9047e60502e2c4eaddd2c5265fe06e9489855da26d0c6bd0c2db7c6e4f4f3228"` [INFO] running `"docker" "rm" "-f" "9047e60502e2c4eaddd2c5265fe06e9489855da26d0c6bd0c2db7c6e4f4f3228"` [INFO] [stdout] 9047e60502e2c4eaddd2c5265fe06e9489855da26d0c6bd0c2db7c6e4f4f3228