[INFO] cloning repository https://github.com/WinterCore/rustbittorrent [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WinterCore/rustbittorrent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWinterCore%2Frustbittorrent", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWinterCore%2Frustbittorrent'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8c66f59be779f0baaec1910f089c327a6e2bfde2 [INFO] checking WinterCore/rustbittorrent against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWinterCore%2Frustbittorrent" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/WinterCore/rustbittorrent on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/WinterCore/rustbittorrent [INFO] finished tweaking git repo https://github.com/WinterCore/rustbittorrent [INFO] tweaked toml for git repo https://github.com/WinterCore/rustbittorrent written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/WinterCore/rustbittorrent already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e1bdcb477cd6c8857e946dda7900206821ddfe61e100de3897f4cd257eb1d539 [INFO] running `Command { std: "docker" "start" "-a" "e1bdcb477cd6c8857e946dda7900206821ddfe61e100de3897f4cd257eb1d539", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e1bdcb477cd6c8857e946dda7900206821ddfe61e100de3897f4cd257eb1d539", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e1bdcb477cd6c8857e946dda7900206821ddfe61e100de3897f4cd257eb1d539", kill_on_drop: false }` [INFO] [stdout] e1bdcb477cd6c8857e946dda7900206821ddfe61e100de3897f4cd257eb1d539 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e44b127a691adfc6267a177f9896dc8eae8a59a44e07859a61c6d75f2e680ca8 [INFO] running `Command { std: "docker" "start" "-a" "e44b127a691adfc6267a177f9896dc8eae8a59a44e07859a61c6d75f2e680ca8", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking smallvec v1.13.1 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Checking bytes v1.5.0 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling syn v2.0.50 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking socket2 v0.5.6 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking rustbittorrent v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::net::SocketAddrV4` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::SocketAddrV4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddrV4` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::SocketAddrV4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::str; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompactNodeInfo`, `DHTResponse` [INFO] [stdout] --> src/main.rs:9:29 [INFO] [stdout] | [INFO] [stdout] 9 | use dht_client::{DHTClient, DHTResponse, CompactNodeInfo}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompactNodeInfo`, `DHTResponse` [INFO] [stdout] --> src/main.rs:9:29 [INFO] [stdout] | [INFO] [stdout] 9 | use dht_client::{DHTClient, DHTResponse, CompactNodeInfo}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::sleep` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::sleep` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `utils::bencode::BencodeValue` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use utils::bencode::BencodeValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encode_hex` [INFO] [stdout] --> src/main.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | use utils::hex::{decode_hex, encode_hex}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `url::Url` [INFO] [stdout] --> src/net/udp.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use url::Url; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `utils::bencode::BencodeValue` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use utils::bencode::BencodeValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand` [INFO] [stdout] --> src/tracker.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rand; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encode_hex` [INFO] [stdout] --> src/main.rs:13:30 [INFO] [stdout] | [INFO] [stdout] 13 | use utils::hex::{decode_hex, encode_hex}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::net::udp::send_udp_packet` [INFO] [stdout] --> src/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::net::udp::send_udp_packet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `url::Url` [INFO] [stdout] --> src/net/udp.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use url::Url; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Formatter`, `borrow::Borrow` [INFO] [stdout] --> src/utils/bencode.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, collections::HashMap, fmt::{Debug, Formatter, Write}, str}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand` [INFO] [stdout] --> src/tracker.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rand; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `io`, `str` [INFO] [stdout] --> src/dht_client.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, io, net::{Ipv4Addr, SocketAddr, SocketAddrV4}, str}; [INFO] [stdout] | ^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ipv4Addr` [INFO] [stdout] --> src/peer_client.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io, net::{Ipv4Addr, SocketAddrV4}}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::net::udp::send_udp_packet` [INFO] [stdout] --> src/tracker.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::net::udp::send_udp_packet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Formatter`, `borrow::Borrow` [INFO] [stdout] --> src/utils/bencode.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, collections::HashMap, fmt::{Debug, Formatter, Write}, str}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `io`, `str` [INFO] [stdout] --> src/dht_client.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, io, net::{Ipv4Addr, SocketAddr, SocketAddrV4}, str}; [INFO] [stdout] | ^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ipv4Addr` [INFO] [stdout] --> src/peer_client.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{io, net::{Ipv4Addr, SocketAddrV4}}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/utils/bencode.rs:1:73 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, collections::HashMap, fmt::{Debug, Formatter, Write}, str}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/utils/bencode.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | fn try_from(value: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | let mut root_node = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(87,98,162,88)), 6881); [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: struct `Tracker` is never constructed [INFO] [stdout] --> src/tracker.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Tracker<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Tracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `connect` are never used [INFO] [stdout] --> src/tracker.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl<'a> Tracker<'a> { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 12 | pub fn new(url: &'a Url) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn connect(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `error` and `pos` are never read [INFO] [stdout] --> src/utils/bencode.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 159 | pub struct BencodeParserError { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 160 | error: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 161 | pos: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BencodeParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_hex` is never used [INFO] [stdout] --> src/utils/hex.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn encode_hex(bytes: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `node_id` is never read [INFO] [stdout] --> src/dht_client.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct CompactNodeInfo { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 9 | pub node_id: [u8; 20], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CompactNodeInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `node_id` is never read [INFO] [stdout] --> src/dht_client.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct DHTBaseResponse { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 59 | pub node_id: [u8; 20], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTBaseResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `token`, and `values` are never read [INFO] [stdout] --> src/dht_client.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct DHTGetPeersResponse { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 89 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub token: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub values: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTGetPeersResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base` and `nodes` are never read [INFO] [stdout] --> src/dht_client.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 151 | pub struct DHTFindNodeResponse { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 152 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] 153 | [INFO] [stdout] 154 | pub nodes: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTFindNodeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `error_code`, and `error_message` are never read [INFO] [stdout] --> src/dht_client.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct DHTErrorResponse { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 185 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] 186 | [INFO] [stdout] 187 | pub error_code: DHTErrorCode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | pub error_message: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTErrorResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/dht_client.rs:252:14 [INFO] [stdout] | [INFO] [stdout] 252 | DHTError(DHTErrorResponse), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 252 | DHTError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find_node` is never used [INFO] [stdout] --> src/dht_client.rs:341:18 [INFO] [stdout] | [INFO] [stdout] 286 | impl<'node> DHTClient<'node> { [INFO] [stdout] | ---------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 341 | pub async fn find_node(&self, target: &[u8]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `socket_addr` is never read [INFO] [stdout] --> src/peer_client.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct PeerClient<'addr> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 9 | pub socket_addr: &'addr SocketAddrV4, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerClient` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/utils/bencode.rs:1:73 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Borrow, collections::HashMap, fmt::{Debug, Formatter, Write}, str}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/utils/bencode.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | fn try_from(value: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | let mut root_node = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(87,98,162,88)), 6881); [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: struct `Tracker` is never constructed [INFO] [stdout] --> src/tracker.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Tracker<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Tracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `connect` are never used [INFO] [stdout] --> src/tracker.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl<'a> Tracker<'a> { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 12 | pub fn new(url: &'a Url) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub async fn connect(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `error` and `pos` are never read [INFO] [stdout] --> src/utils/bencode.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 159 | pub struct BencodeParserError { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 160 | error: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 161 | pos: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BencodeParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_hex` is never used [INFO] [stdout] --> src/utils/hex.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn encode_hex(bytes: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `node_id` is never read [INFO] [stdout] --> src/dht_client.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct CompactNodeInfo { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 9 | pub node_id: [u8; 20], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CompactNodeInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `node_id` is never read [INFO] [stdout] --> src/dht_client.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct DHTBaseResponse { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 59 | pub node_id: [u8; 20], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTBaseResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `token`, and `values` are never read [INFO] [stdout] --> src/dht_client.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct DHTGetPeersResponse { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 89 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub token: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub values: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTGetPeersResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base` and `nodes` are never read [INFO] [stdout] --> src/dht_client.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 151 | pub struct DHTFindNodeResponse { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 152 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] 153 | [INFO] [stdout] 154 | pub nodes: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTFindNodeResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base`, `error_code`, and `error_message` are never read [INFO] [stdout] --> src/dht_client.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct DHTErrorResponse { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 185 | pub base: DHTBaseResponse, [INFO] [stdout] | ^^^^ [INFO] [stdout] 186 | [INFO] [stdout] 187 | pub error_code: DHTErrorCode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 188 | pub error_message: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DHTErrorResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/dht_client.rs:252:14 [INFO] [stdout] | [INFO] [stdout] 252 | DHTError(DHTErrorResponse), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 252 | DHTError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find_node` is never used [INFO] [stdout] --> src/dht_client.rs:341:18 [INFO] [stdout] | [INFO] [stdout] 286 | impl<'node> DHTClient<'node> { [INFO] [stdout] | ---------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 341 | pub async fn find_node(&self, target: &[u8]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `socket_addr` is never read [INFO] [stdout] --> src/peer_client.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct PeerClient<'addr> { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 9 | pub socket_addr: &'addr SocketAddrV4, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerClient` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.64s [INFO] running `Command { std: "docker" "inspect" "e44b127a691adfc6267a177f9896dc8eae8a59a44e07859a61c6d75f2e680ca8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e44b127a691adfc6267a177f9896dc8eae8a59a44e07859a61c6d75f2e680ca8", kill_on_drop: false }` [INFO] [stdout] e44b127a691adfc6267a177f9896dc8eae8a59a44e07859a61c6d75f2e680ca8