[INFO] cloning repository https://github.com/itsuy/rust-torrent [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/itsuy/rust-torrent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsuy%2Frust-torrent", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsuy%2Frust-torrent'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2740f35aacb420a957e323155f03bc03d0f4b898 [INFO] checking itsuy/rust-torrent against master#1557fb031b272b4c5bfcc7de5df7eddc7b36a584 for pr-73166 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsuy%2Frust-torrent" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/itsuy/rust-torrent on toolchain 1557fb031b272b4c5bfcc7de5df7eddc7b36a584 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1557fb031b272b4c5bfcc7de5df7eddc7b36a584" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/itsuy/rust-torrent [INFO] finished tweaking git repo https://github.com/itsuy/rust-torrent [INFO] tweaked toml for git repo https://github.com/itsuy/rust-torrent written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/itsuy/rust-torrent already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1557fb031b272b4c5bfcc7de5df7eddc7b36a584" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1557fb031b272b4c5bfcc7de5df7eddc7b36a584" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] e5c94a060e2add4439b63b30ccb277a93fc9eea236a27a4d6a8e3cbea2c68b14 [INFO] running `Command { std: "docker" "start" "-a" "e5c94a060e2add4439b63b30ccb277a93fc9eea236a27a4d6a8e3cbea2c68b14", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e5c94a060e2add4439b63b30ccb277a93fc9eea236a27a4d6a8e3cbea2c68b14", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e5c94a060e2add4439b63b30ccb277a93fc9eea236a27a4d6a8e3cbea2c68b14", kill_on_drop: false }` [INFO] [stdout] e5c94a060e2add4439b63b30ccb277a93fc9eea236a27a4d6a8e3cbea2c68b14 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1557fb031b272b4c5bfcc7de5df7eddc7b36a584" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0e9abe7ded7d4f62a99e403ba0d876ef605bd9c63e0866ccfe13f747ac7cbaa2 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "0e9abe7ded7d4f62a99e403ba0d876ef605bd9c63e0866ccfe13f747ac7cbaa2", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.33 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling cc v1.0.54 [INFO] [stderr] Compiling pkg-config v0.3.17 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Compiling serde v1.0.114 [INFO] [stderr] Checking fnv v1.0.6 [INFO] [stderr] Checking futures-core v0.3.5 [INFO] [stderr] Checking bytes v0.5.6 [INFO] [stderr] Checking arc-swap v0.4.4 [INFO] [stderr] Compiling pin-project-internal v0.4.22 [INFO] [stderr] Checking pin-project-lite v0.1.4 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking matches v0.1.8 [INFO] [stderr] Checking tinyvec v0.3.3 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling httparse v1.3.4 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling openssl v0.10.29 [INFO] [stderr] Checking once_cell v1.4.0 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking futures-io v0.3.5 [INFO] [stderr] Compiling native-tls v0.2.4 [INFO] [stderr] Checking futures-sink v0.3.5 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking openssl-probe v0.1.2 [INFO] [stderr] Compiling serde_json v1.0.56 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking try-lock v0.2.2 [INFO] [stderr] Compiling proc-macro-hack v0.5.16 [INFO] [stderr] Checking tower-service v0.3.0 [INFO] [stderr] Checking ppv-lite86 v0.2.8 [INFO] [stderr] Checking dtoa v0.4.6 [INFO] [stderr] Compiling gcc v0.3.55 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling encoding_rs v0.8.23 [INFO] [stderr] Checking mime v0.3.16 [INFO] [stderr] Checking regex-syntax v0.6.18 [INFO] [stderr] Compiling serde_derive v1.0.114 [INFO] [stderr] Checking rustc-serialize v0.3.24 [INFO] [stderr] Checking base64 v0.12.2 [INFO] [stderr] Checking difference v2.0.0 [INFO] [stderr] Checking bencodex v0.1.3 [INFO] [stderr] Checking hex v0.4.2 [INFO] [stderr] Checking sha1 v0.6.0 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking futures-channel v0.3.5 [INFO] [stderr] Checking unicode-bidi v0.3.4 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking http v0.2.1 [INFO] [stderr] Checking unicode-normalization v0.1.13 [INFO] [stderr] Checking futures-task v0.3.5 [INFO] [stderr] Compiling indexmap v1.4.0 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.3 [INFO] [stderr] Compiling standback v0.2.9 [INFO] [stderr] Compiling proc-macro-error v1.0.3 [INFO] [stderr] Compiling time v0.2.16 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking aho-corasick v0.7.13 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Checking signal-hook-registry v1.2.0 [INFO] [stderr] Checking num_cpus v1.12.0 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking socket2 v0.3.11 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Compiling openssl-sys v0.9.58 [INFO] [stderr] Compiling mime_guess v2.0.3 [INFO] [stderr] Checking http-body v0.3.1 [INFO] [stderr] Checking mio v0.6.21 [INFO] [stderr] Checking url v2.1.1 [INFO] [stderr] Checking colored v1.9.3 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking regex v1.3.9 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Checking bencode v0.1.16 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking serde_urlencoded v0.6.1 [INFO] [stderr] Checking serde_bytes v0.10.5 [INFO] [stderr] Checking serde_bytes v0.11.5 [INFO] [stderr] Checking serde_bencode v0.2.1 [INFO] [stderr] Compiling syn-mid v0.5.0 [INFO] [stderr] Compiling tokio-macros v0.2.4 [INFO] [stderr] Compiling time-macros-impl v0.1.1 [INFO] [stderr] Checking tokio v0.2.11 [INFO] [stderr] Checking time-macros v0.1.0 [INFO] [stderr] Compiling extend v0.1.2 [INFO] [stderr] Checking assert-json-diff v1.0.3 [INFO] [stderr] Checking pin-project v0.4.22 [INFO] [stderr] Checking futures-util v0.3.5 [INFO] [stderr] Checking mockito v0.26.0 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Checking tokio-tls v0.3.1 [INFO] [stderr] Checking h2 v0.2.5 [INFO] [stderr] Checking hyper v0.13.6 [INFO] [stderr] Checking hyper-tls v0.4.1 [INFO] [stderr] Checking reqwest v0.10.6 [INFO] [stderr] Checking rust-torrent v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `new_handshake` [INFO] [stdout] --> src/client.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::handshake::{new_handshake, read_handshake, serialize_handshake, Handshake}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/client.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4` [INFO] [stdout] --> src/client.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/client.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/handshake.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor` [INFO] [stdout] --> src/handshake.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr`, `TcpListener` [INFO] [stdout] --> src/handshake.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/handshake.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/handshake.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/handshake.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut` [INFO] [stdout] --> src/handshake.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/message.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader` [INFO] [stdout] --> src/message.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr`, `TcpListener` [INFO] [stdout] --> src/message.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/message.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `messageID` should have an upper camel case name [INFO] [stdout] --> src/message.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type messageID = u8; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `MessageId` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/p2p.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync_channel` [INFO] [stdout] --> src/p2p.rs:9:53 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{Receiver, Sender, SyncSender, sync_channel}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/peers.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read` [INFO] [stdout] --> src/peers.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/peers.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/peers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::tracker::*` [INFO] [stdout] --> src/torrentfile.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::tracker::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencodex::BNode` [INFO] [stdout] --> src/torrentfile.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use bencodex::BNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/torrentfile.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::*` [INFO] [stdout] --> src/torrentfile.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use rand::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/torrentfile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor`, `str::Bytes` [INFO] [stdout] --> src/torrentfile.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{str::Bytes, io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Write}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/torrentfile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/torrentfile.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsciiSet`, `CONTROLS`, `percent_encode_byte` [INFO] [stdout] --> src/tracker.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use percent_encoding::{percent_encode_byte, AsciiSet, CONTROLS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ClientBuilder`, `Client` [INFO] [stdout] --> src/tracker.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | use reqwest::{Client, ClientBuilder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ErrorKind` [INFO] [stdout] --> src/tracker.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::BencodeEvent` [INFO] [stdout] --> src/tracker.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use bencode::streaming::BencodeEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::StreamingParser` [INFO] [stdout] --> src/tracker.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use bencode::streaming::StreamingParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bencode`, `FromBencode`, `NumFromBencodeError`, `ToBencode`, `VecFromBencodeError` [INFO] [stdout] --> src/tracker.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use bencode::{Bencode, ToBencode, FromBencode, NumFromBencodeError, VecFromBencodeError}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::util::ByteString` [INFO] [stdout] --> src/tracker.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use bencode::util::ByteString; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `encode` [INFO] [stdout] --> src/tracker.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | use bencode::{encode, Decoder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decodable`, `Encodable` [INFO] [stdout] --> src/tracker.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | use rustc_serialize::{Encodable, Decodable}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/tracker.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/tracker.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ser` [INFO] [stdout] --> src/tracker.rs:23:25 [INFO] [stdout] | [INFO] [stdout] 23 | use serde_bencode::{de, ser}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `new_handshake` [INFO] [stdout] --> src/client.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::handshake::{new_handshake, read_handshake, serialize_handshake, Handshake}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/client.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4` [INFO] [stdout] --> src/client.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/client.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, `channel` [INFO] [stdout] --> src/client.rs:169:27 [INFO] [stdout] | [INFO] [stdout] 169 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/handshake.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor` [INFO] [stdout] --> src/handshake.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/handshake.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/handshake.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut` [INFO] [stdout] --> src/handshake.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader` [INFO] [stdout] --> src/message.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/message.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `messageID` should have an upper camel case name [INFO] [stdout] --> src/message.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type messageID = u8; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `MessageId` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/p2p.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync_channel` [INFO] [stdout] --> src/p2p.rs:9:53 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{Receiver, Sender, SyncSender, sync_channel}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/peers.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read` [INFO] [stdout] --> src/peers.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/peers.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/peers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::tracker::*` [INFO] [stdout] --> src/torrentfile.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::tracker::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencodex::BNode` [INFO] [stdout] --> src/torrentfile.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use bencodex::BNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/torrentfile.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::*` [INFO] [stdout] --> src/torrentfile.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use rand::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/torrentfile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor`, `str::Bytes` [INFO] [stdout] --> src/torrentfile.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{str::Bytes, io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Write}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/torrentfile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/torrentfile.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsciiSet`, `CONTROLS`, `percent_encode_byte` [INFO] [stdout] --> src/tracker.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use percent_encoding::{percent_encode_byte, AsciiSet, CONTROLS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ClientBuilder`, `Client` [INFO] [stdout] --> src/tracker.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | use reqwest::{Client, ClientBuilder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ErrorKind` [INFO] [stdout] --> src/tracker.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::BencodeEvent` [INFO] [stdout] --> src/tracker.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use bencode::streaming::BencodeEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::StreamingParser` [INFO] [stdout] --> src/tracker.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use bencode::streaming::StreamingParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bencode`, `FromBencode`, `NumFromBencodeError`, `ToBencode`, `VecFromBencodeError` [INFO] [stdout] --> src/tracker.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use bencode::{Bencode, ToBencode, FromBencode, NumFromBencodeError, VecFromBencodeError}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::util::ByteString` [INFO] [stdout] --> src/tracker.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use bencode::util::ByteString; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `encode` [INFO] [stdout] --> src/tracker.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | use bencode::{encode, Decoder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decodable`, `Encodable` [INFO] [stdout] --> src/tracker.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | use rustc_serialize::{Encodable, Decodable}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/tracker.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/tracker.rs:21:26 [INFO] [stdout] | [INFO] [stdout] 21 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/tracker.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/tracker.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `server_address` [INFO] [stdout] --> src/tracker.rs:175:25 [INFO] [stdout] | [INFO] [stdout] 175 | use mockito::{mock, server_address, Matcher}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hs` [INFO] [stdout] --> src/client.rs:143:16 [INFO] [stdout] | [INFO] [stdout] 143 | Ok(hs) => match receive_bitfield(&mut s) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_hs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | Err(err) => return, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/p2p.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/p2p.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | let (begin, end) = self.calculate_bounds_for_piece(res.index); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/peers.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let mut offset = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `port_cursor` is never read [INFO] [stdout] --> src/peers.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut port_cursor = Cursor::new(&port_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let mut msg = format_have(index); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut id_error = Error::new(ErrorKind::InvalidData, "id Error"); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let mut received = match read_handshake(conn){ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | let mut gaurdthree = c.lock().unwrap();//.bitfield; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut workQueueCopy = Arc::clone(&workQueue); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | let mut resultsCopy = results.0.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut num_peers = peers_bin.len() / peer_size; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let mut peer_error = Error::new(ErrorKind::InvalidData, "Malformed Peers"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let mut port_vc = &port_vec[0..2].to_vec(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let mut buffer : Vec = ser::to_bytes::(self).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut result : Vec = hex::decode(h.result_str()).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer` [INFO] [stdout] --> src/client.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | peer: Peer, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `info_hash` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | info_hash: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_id` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | peer_id: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `send_not_interested` [INFO] [stdout] --> src/client.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub(crate) fn send_not_interested(&mut self) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `name` [INFO] [stdout] --> src/message.rs:163:4 [INFO] [stdout] | [INFO] [stdout] 163 | fn name(msg: &Message) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `string` [INFO] [stdout] --> src/message.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn string(msg: &Message) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | conn.set_write_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | conn.set_read_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | conn.set_write_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | conn.set_read_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:199:21 [INFO] [stdout] | [INFO] [stdout] 199 | workQueue.lock().unwrap().0.send(pw); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | workQueue.lock().unwrap().0.send(work); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 87 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hs` [INFO] [stdout] --> src/client.rs:143:16 [INFO] [stdout] | [INFO] [stdout] 143 | Ok(hs) => match receive_bitfield(&mut s) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_hs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_handshake` [INFO] [stdout] --> src/client.rs:259:21 [INFO] [stdout] | [INFO] [stdout] 259 | let mut expected_handshake : Handshake = new_handshake_with_input(expected_infohash.to_vec(), expected_peer_id.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_handshake` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/handshake.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `length_test` [INFO] [stdout] --> src/message.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | let length_test = parse_piece(input_index, &mut input_buffer, input_message); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_length_test` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 248 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/message.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | Err(e) => assert_eq!(1, 1) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:265:16 [INFO] [stdout] | [INFO] [stdout] 265 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/message.rs:266:17 [INFO] [stdout] | [INFO] [stdout] 266 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:287:16 [INFO] [stdout] | [INFO] [stdout] 287 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:330:16 [INFO] [stdout] | [INFO] [stdout] 330 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:376:13 [INFO] [stdout] | [INFO] [stdout] 376 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/message.rs:377:13 [INFO] [stdout] | [INFO] [stdout] 377 | let output = Message::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:378:13 [INFO] [stdout] | [INFO] [stdout] 378 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/message.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let output = Message::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/message.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | let mut input: Vec = vec![0, 0, 0, 0]; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | Err(err) => return, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/p2p.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/p2p.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | let (begin, end) = self.calculate_bounds_for_piece(res.index); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/peers.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let mut offset = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `port_cursor` is never read [INFO] [stdout] --> src/peers.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut port_cursor = Cursor::new(&port_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock` [INFO] [stdout] --> src/tracker.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | let mock = mock("GET", Matcher::Any).with_body(response_bencode).create(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let mut msg = format_have(index); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut id_error = Error::new(ErrorKind::InvalidData, "id Error"); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let mut received = match read_handshake(conn){ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | let mut expected_bf: [u8; 5] = [1, 2, 3, 4, 5]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:203:25 [INFO] [stdout] | [INFO] [stdout] 203 | let mut msg: [u8; 10] = [0x00, 0x00, 0x00, 0x06, 5, 1, 2, 3, 4, 5]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:259:21 [INFO] [stdout] | [INFO] [stdout] 259 | let mut expected_handshake : Handshake = new_handshake_with_input(expected_infohash.to_vec(), expected_peer_id.to_vec()); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | let mut server_handshake : [u8; 68] = [19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 0, 0, 0, 0, 0, 0, 0, 134, 212, 200, 0, 36, 164, 105, 190, 76, 80, 188, 90, 16, 44, 247, 23, 128, 49, 0, 116, 45, 83, 89, 48, 48, 49, 48, 45, 192, 125, 147, 203, 136, 32, 59, 180, 253, 168, 193, 19]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let mut input_info_hash: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut input_peer_id: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut input_info_hash: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | let mut input_peer_id: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | let mut input_pstr = String::from("BitTorrent protocol, but cooler?"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut output_info_hash: [u8; 20] = [134, 212, 200, 0, 36, 164, 105, 190, 76, 80, 188, 90, 16, 44, 247, 23, 128, 49, 0, 116]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | let mut output_peer_id: [u8; 20] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | let mut output_pstr = String::from("BitTorrent protocol"); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:376:13 [INFO] [stdout] | [INFO] [stdout] 376 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | let mut input: Vec = vec![0, 0, 0, 0]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Digest`, `Sha1` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use sha1::{Digest, Sha1}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `new_handshake` [INFO] [stdout] --> src/client.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::handshake::{new_handshake, read_handshake, serialize_handshake, Handshake}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/client.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4` [INFO] [stdout] --> src/client.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/client.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/handshake.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor` [INFO] [stdout] --> src/handshake.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr`, `TcpListener` [INFO] [stdout] --> src/handshake.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/handshake.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/handshake.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/handshake.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut` [INFO] [stdout] --> src/handshake.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/message.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader` [INFO] [stdout] --> src/message.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr`, `TcpListener` [INFO] [stdout] --> src/message.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/message.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `messageID` should have an upper camel case name [INFO] [stdout] --> src/message.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type messageID = u8; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `MessageId` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/p2p.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync_channel` [INFO] [stdout] --> src/p2p.rs:9:53 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{Receiver, Sender, SyncSender, sync_channel}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/peers.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read` [INFO] [stdout] --> src/peers.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/peers.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/peers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::tracker::*` [INFO] [stdout] --> src/torrentfile.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::tracker::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencodex::BNode` [INFO] [stdout] --> src/torrentfile.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use bencodex::BNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/torrentfile.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::*` [INFO] [stdout] --> src/torrentfile.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use rand::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/torrentfile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor`, `str::Bytes` [INFO] [stdout] --> src/torrentfile.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{str::Bytes, io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Write}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/torrentfile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/torrentfile.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsciiSet`, `CONTROLS`, `percent_encode_byte` [INFO] [stdout] --> src/tracker.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use percent_encoding::{percent_encode_byte, AsciiSet, CONTROLS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ClientBuilder`, `Client` [INFO] [stdout] --> src/tracker.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | use reqwest::{Client, ClientBuilder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ErrorKind` [INFO] [stdout] --> src/tracker.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::BencodeEvent` [INFO] [stdout] --> src/tracker.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use bencode::streaming::BencodeEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::StreamingParser` [INFO] [stdout] --> src/tracker.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use bencode::streaming::StreamingParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bencode`, `FromBencode`, `NumFromBencodeError`, `ToBencode`, `VecFromBencodeError` [INFO] [stdout] --> src/tracker.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use bencode::{Bencode, ToBencode, FromBencode, NumFromBencodeError, VecFromBencodeError}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::util::ByteString` [INFO] [stdout] --> src/tracker.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use bencode::util::ByteString; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `encode` [INFO] [stdout] --> src/tracker.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | use bencode::{encode, Decoder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decodable`, `Encodable` [INFO] [stdout] --> src/tracker.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | use rustc_serialize::{Encodable, Decodable}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/tracker.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/tracker.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ser` [INFO] [stdout] --> src/tracker.rs:23:25 [INFO] [stdout] | [INFO] [stdout] 23 | use serde_bencode::{de, ser}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bitfield::Bitfield` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::bitfield::Bitfield; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MESSAGE_BITFIELD`, `Message`, `read_message` [INFO] [stdout] --> src/main.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::message::{read_message, Message, MESSAGE_BITFIELD}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Read`, `Write` [INFO] [stdout] --> src/main.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::{Error, ErrorKind, Read, Write}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Shutdown`, `TcpListener`, `TcpStream` [INFO] [stdout] --> src/main.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::net::{Shutdown, TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | let mut gaurdthree = c.lock().unwrap();//.bitfield; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut workQueueCopy = Arc::clone(&workQueue); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | let mut resultsCopy = results.0.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut num_peers = peers_bin.len() / peer_size; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let mut peer_error = Error::new(ErrorKind::InvalidData, "Malformed Peers"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let mut port_vc = &port_vec[0..2].to_vec(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let mut buffer : Vec = ser::to_bytes::(self).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut result : Vec = hex::decode(h.result_str()).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Digest`, `Sha1` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use sha1::{Digest, Sha1}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `new_handshake` [INFO] [stdout] --> src/client.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::handshake::{new_handshake, read_handshake, serialize_handshake, Handshake}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/client.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4` [INFO] [stdout] --> src/client.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/client.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, `channel` [INFO] [stdout] --> src/client.rs:169:27 [INFO] [stdout] | [INFO] [stdout] 169 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/handshake.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor` [INFO] [stdout] --> src/handshake.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/handshake.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/handshake.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut` [INFO] [stdout] --> src/handshake.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader` [INFO] [stdout] --> src/message.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/message.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `messageID` should have an upper camel case name [INFO] [stdout] --> src/message.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type messageID = u8; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `MessageId` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/p2p.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync_channel` [INFO] [stdout] --> src/p2p.rs:9:53 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc::{Receiver, Sender, SyncSender, sync_channel}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/peers.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read` [INFO] [stdout] --> src/peers.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/peers.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/peers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::tracker::*` [INFO] [stdout] --> src/torrentfile.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::tracker::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencodex::BNode` [INFO] [stdout] --> src/torrentfile.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use bencodex::BNode; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt` [INFO] [stdout] --> src/torrentfile.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::*` [INFO] [stdout] --> src/torrentfile.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use rand::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/torrentfile.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Cursor`, `str::Bytes` [INFO] [stdout] --> src/torrentfile.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{str::Bytes, io::{BufRead, BufReader, Cursor, Error, ErrorKind, Read, Write}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/torrentfile.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/torrentfile.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsciiSet`, `CONTROLS`, `percent_encode_byte` [INFO] [stdout] --> src/tracker.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | use percent_encoding::{percent_encode_byte, AsciiSet, CONTROLS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ClientBuilder`, `Client` [INFO] [stdout] --> src/tracker.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | use reqwest::{Client, ClientBuilder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ErrorKind` [INFO] [stdout] --> src/tracker.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::BencodeEvent` [INFO] [stdout] --> src/tracker.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use bencode::streaming::BencodeEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::streaming::StreamingParser` [INFO] [stdout] --> src/tracker.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use bencode::streaming::StreamingParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bencode`, `FromBencode`, `NumFromBencodeError`, `ToBencode`, `VecFromBencodeError` [INFO] [stdout] --> src/tracker.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | use bencode::{Bencode, ToBencode, FromBencode, NumFromBencodeError, VecFromBencodeError}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bencode::util::ByteString` [INFO] [stdout] --> src/tracker.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use bencode::util::ByteString; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decoder`, `encode` [INFO] [stdout] --> src/tracker.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | use bencode::{encode, Decoder}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decodable`, `Encodable` [INFO] [stdout] --> src/tracker.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | use rustc_serialize::{Encodable, Decodable}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> src/tracker.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SocketAddrV4`, `SocketAddr` [INFO] [stdout] --> src/tracker.rs:21:26 [INFO] [stdout] | [INFO] [stdout] 21 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/tracker.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/tracker.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `server_address` [INFO] [stdout] --> src/tracker.rs:175:25 [INFO] [stdout] | [INFO] [stdout] 175 | use mockito::{mock, server_address, Matcher}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bitfield::Bitfield` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::bitfield::Bitfield; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MESSAGE_BITFIELD`, `Message`, `read_message` [INFO] [stdout] --> src/main.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::message::{read_message, Message, MESSAGE_BITFIELD}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Read`, `Write` [INFO] [stdout] --> src/main.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::{Error, ErrorKind, Read, Write}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Shutdown`, `TcpListener`, `TcpStream` [INFO] [stdout] --> src/main.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::net::{Shutdown, TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer` [INFO] [stdout] --> src/client.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | peer: Peer, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `info_hash` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | info_hash: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_id` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | peer_id: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `send_not_interested` [INFO] [stdout] --> src/client.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub(crate) fn send_not_interested(&mut self) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | conn.set_write_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | conn.set_read_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | conn.set_write_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | conn.set_read_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | dummy_client_thread.join(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | dummy_client_thread.join(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/handshake.rs:226:21 [INFO] [stdout] | [INFO] [stdout] 226 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:396:21 [INFO] [stdout] | [INFO] [stdout] 396 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:430:21 [INFO] [stdout] | [INFO] [stdout] 430 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:464:21 [INFO] [stdout] | [INFO] [stdout] 464 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:199:21 [INFO] [stdout] | [INFO] [stdout] 199 | workQueue.lock().unwrap().0.send(pw); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | workQueue.lock().unwrap().0.send(work); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 130 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hs` [INFO] [stdout] --> src/client.rs:143:16 [INFO] [stdout] | [INFO] [stdout] 143 | Ok(hs) => match receive_bitfield(&mut s) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_hs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | Err(err) => return, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/p2p.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/p2p.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | let (begin, end) = self.calculate_bounds_for_piece(res.index); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/peers.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let mut offset = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `port_cursor` is never read [INFO] [stdout] --> src/peers.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut port_cursor = Cursor::new(&port_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let mut msg = format_have(index); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut id_error = Error::new(ErrorKind::InvalidData, "id Error"); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let mut received = match read_handshake(conn){ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | let mut gaurdthree = c.lock().unwrap();//.bitfield; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut workQueueCopy = Arc::clone(&workQueue); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | let mut resultsCopy = results.0.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut num_peers = peers_bin.len() / peer_size; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let mut peer_error = Error::new(ErrorKind::InvalidData, "Malformed Peers"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let mut port_vc = &port_vec[0..2].to_vec(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let mut buffer : Vec = ser::to_bytes::(self).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut result : Vec = hex::decode(h.result_str()).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer` [INFO] [stdout] --> src/client.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | peer: Peer, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `info_hash` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | info_hash: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_id` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | peer_id: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `send_not_interested` [INFO] [stdout] --> src/client.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub(crate) fn send_not_interested(&mut self) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `new_handshake` [INFO] [stdout] --> src/handshake.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new_handshake() -> Handshake { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `new_handshake_with_input` [INFO] [stdout] --> src/handshake.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new_handshake_with_input(info_hash: Vec, peer_id: Vec) -> Handshake { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `MESSAGE_CHOKE` [INFO] [stdout] --> src/message.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub static MESSAGE_CHOKE: messageID = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `MESSAGE_NOT_INTERESTED` [INFO] [stdout] --> src/message.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub static MESSAGE_NOT_INTERESTED: messageID = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `MESSAGE_CANCEL` [INFO] [stdout] --> src/message.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub static MESSAGE_CANCEL: messageID = 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `name` [INFO] [stdout] --> src/message.rs:163:4 [INFO] [stdout] | [INFO] [stdout] 163 | fn name(msg: &Message) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `string` [INFO] [stdout] --> src/message.rs:182:4 [INFO] [stdout] | [INFO] [stdout] 182 | fn string(msg: &Message) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `binary_percent_encoder` [INFO] [stdout] --> src/tracker.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn binary_percent_encoder(input: Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | conn.set_write_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | conn.set_read_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | conn.set_write_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | conn.set_read_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `ID` should have a snake case name [INFO] [stdout] --> src/message.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) ID: messageID, [INFO] [stdout] | ^^ help: convert the identifier to snake case: `id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `Payload` should have a snake case name [INFO] [stdout] --> src/message.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) Payload: Vec, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:199:21 [INFO] [stdout] | [INFO] [stdout] 199 | workQueue.lock().unwrap().0.send(pw); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | workQueue.lock().unwrap().0.send(work); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `trackerResp` should have a snake case name [INFO] [stdout] --> src/tracker.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let trackerResp : BencodeTrackerResp = de::from_bytes::(&resp).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `tracker_resp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 103 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hs` [INFO] [stdout] --> src/client.rs:143:16 [INFO] [stdout] | [INFO] [stdout] 143 | Ok(hs) => match receive_bitfield(&mut s) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_hs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_handshake` [INFO] [stdout] --> src/client.rs:259:21 [INFO] [stdout] | [INFO] [stdout] 259 | let mut expected_handshake : Handshake = new_handshake_with_input(expected_infohash.to_vec(), expected_peer_id.to_vec()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_handshake` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/handshake.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `length_test` [INFO] [stdout] --> src/message.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | let length_test = parse_piece(input_index, &mut input_buffer, input_message); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_length_test` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:248:16 [INFO] [stdout] | [INFO] [stdout] 248 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/message.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | Err(e) => assert_eq!(1, 1) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:265:16 [INFO] [stdout] | [INFO] [stdout] 265 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/message.rs:266:17 [INFO] [stdout] | [INFO] [stdout] 266 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:287:16 [INFO] [stdout] | [INFO] [stdout] 287 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_buffer` [INFO] [stdout] --> src/message.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | let output_buffer = vec![0x00, 0x00, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x00]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/message.rs:330:16 [INFO] [stdout] | [INFO] [stdout] 330 | Ok(s) => assert_eq!(1, 2), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:376:13 [INFO] [stdout] | [INFO] [stdout] 376 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/message.rs:377:13 [INFO] [stdout] | [INFO] [stdout] 377 | let output = Message::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:378:13 [INFO] [stdout] | [INFO] [stdout] 378 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/message.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let output = Message::default(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/message.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | let mut input: Vec = vec![0, 0, 0, 0]; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_payload` [INFO] [stdout] --> src/message.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock_tcp_thread` [INFO] [stdout] --> src/message.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | let mock_tcp_thread = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mock_tcp_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | Err(err) => return, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/p2p.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/p2p.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/p2p.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | let (begin, end) = self.calculate_bounds_for_piece(res.index); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/peers.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | let mut offset = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `port_cursor` is never read [INFO] [stdout] --> src/peers.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | let mut port_cursor = Cursor::new(&port_vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mock` [INFO] [stdout] --> src/tracker.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | let mock = mock("GET", Matcher::Any).with_body(response_bencode).create(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | let mut msg = format_have(index); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:87:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut id_error = Error::new(ErrorKind::InvalidData, "id Error"); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let mut received = match read_handshake(conn){ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | let mut expected_bf: [u8; 5] = [1, 2, 3, 4, 5]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:203:25 [INFO] [stdout] | [INFO] [stdout] 203 | let mut msg: [u8; 10] = [0x00, 0x00, 0x00, 0x06, 5, 1, 2, 3, 4, 5]; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:259:21 [INFO] [stdout] | [INFO] [stdout] 259 | let mut expected_handshake : Handshake = new_handshake_with_input(expected_infohash.to_vec(), expected_peer_id.to_vec()); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | let mut server_handshake : [u8; 68] = [19, 66, 105, 116, 84, 111, 114, 114, 101, 110, 116, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 0, 0, 0, 0, 0, 0, 0, 134, 212, 200, 0, 36, 164, 105, 190, 76, 80, 188, 90, 16, 44, 247, 23, 128, 49, 0, 116, 45, 83, 89, 48, 48, 49, 48, 45, 192, 125, 147, 203, 136, 32, 59, 180, 253, 168, 193, 19]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let mut input_info_hash: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut input_peer_id: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut input_info_hash: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | let mut input_peer_id: [u8; 20] = [ [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | let mut input_pstr = String::from("BitTorrent protocol, but cooler?"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | let mut output_info_hash: [u8; 20] = [134, 212, 200, 0, 36, 164, 105, 190, 76, 80, 188, 90, 16, 44, 247, 23, 128, 49, 0, 116]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | let mut output_peer_id: [u8; 20] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/handshake.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | let mut output_pstr = String::from("BitTorrent protocol"); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:376:13 [INFO] [stdout] | [INFO] [stdout] 376 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | let mut input: Vec = vec![0, 0, 0, 0]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/message.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | let mut output_payload: Vec = vec![]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut reader_error = Error::new(ErrorKind::InvalidData, "unexpected infohash"); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:174:17 [INFO] [stdout] | [INFO] [stdout] 174 | let mut gaurdthree = c.lock().unwrap();//.bitfield; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | let mut workQueueCopy = Arc::clone(&workQueue); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/p2p.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | let mut resultsCopy = results.0.clone(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut num_peers = peers_bin.len() / peer_size; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let mut peer_error = Error::new(ErrorKind::InvalidData, "Malformed Peers"); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peers.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | let mut port_vc = &port_vec[0..2].to_vec(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let mut buffer : Vec = ser::to_bytes::(self).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/torrentfile.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut result : Vec = hex::decode(h.result_str()).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer` [INFO] [stdout] --> src/client.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | peer: Peer, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `info_hash` [INFO] [stdout] --> src/client.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | info_hash: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_id` [INFO] [stdout] --> src/client.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | peer_id: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `send_not_interested` [INFO] [stdout] --> src/client.rs:53:19 [INFO] [stdout] | [INFO] [stdout] 53 | pub(crate) fn send_not_interested(&mut self) -> Result<(), Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `new_handshake` [INFO] [stdout] --> src/handshake.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new_handshake() -> Handshake { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `binary_percent_encoder` [INFO] [stdout] --> src/tracker.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn binary_percent_encoder(input: Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | conn.set_write_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | conn.set_read_timeout(Some(Duration::new(5, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | conn.set_write_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | conn.set_read_timeout(Some(Duration::new(3, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | dummy_client_thread.join(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/client.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | dummy_client_thread.join(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/handshake.rs:226:21 [INFO] [stdout] | [INFO] [stdout] 226 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `ID` should have a snake case name [INFO] [stdout] --> src/message.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) ID: messageID, [INFO] [stdout] | ^^ help: convert the identifier to snake case: `id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `Payload` should have a snake case name [INFO] [stdout] --> src/message.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) Payload: Vec, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:396:21 [INFO] [stdout] | [INFO] [stdout] 396 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:430:21 [INFO] [stdout] | [INFO] [stdout] 430 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/message.rs:464:21 [INFO] [stdout] | [INFO] [stdout] 464 | stream.write(&input); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(30, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | state.client.lock().unwrap().conn.set_write_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | state.client.lock().unwrap().conn.set_read_timeout(Some(Duration::new(1000, 0))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:199:21 [INFO] [stdout] | [INFO] [stdout] 199 | workQueue.lock().unwrap().0.send(pw); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/p2p.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | workQueue.lock().unwrap().0.send(work); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `trackerResp` should have a snake case name [INFO] [stdout] --> src/tracker.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | let trackerResp : BencodeTrackerResp = de::from_bytes::(&resp).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `tracker_resp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 142 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 33s [INFO] running `Command { std: "docker" "inspect" "0e9abe7ded7d4f62a99e403ba0d876ef605bd9c63e0866ccfe13f747ac7cbaa2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e9abe7ded7d4f62a99e403ba0d876ef605bd9c63e0866ccfe13f747ac7cbaa2", kill_on_drop: false }` [INFO] [stdout] 0e9abe7ded7d4f62a99e403ba0d876ef605bd9c63e0866ccfe13f747ac7cbaa2