[INFO] cloning repository https://github.com/xin-water/bittorrent-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xin-water/bittorrent-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxin-water%2Fbittorrent-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxin-water%2Fbittorrent-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 710c4e3ca184c3810a6bd3ef84f8f13768bd1cd3
[INFO] documenting xin-water/bittorrent-rs against 1.69.0 for beta-1.70-rustdoc-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxin-water%2Fbittorrent-rs" "/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/xin-water/bittorrent-rs on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/xin-water/bittorrent-rs
[INFO] finished tweaking git repo https://github.com/xin-water/bittorrent-rs
[INFO] tweaked toml for git repo https://github.com/xin-water/bittorrent-rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded umio v0.3.0
[INFO] [stderr]   Downloaded quickcheck v0.4.1
[INFO] [stderr]   Downloaded base32 v0.3.1
[INFO] [stderr]   Downloaded pendulum v0.3.1
[INFO] [stderr]   Downloaded bencode v0.1.16
[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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a23ca6f5994b7e5db699cbf59b66e39c7b39feed3d10008d8e9c2d5877c3eb36
[INFO] running `Command { std: "docker" "start" "-a" "a23ca6f5994b7e5db699cbf59b66e39c7b39feed3d10008d8e9c2d5877c3eb36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a23ca6f5994b7e5db699cbf59b66e39c7b39feed3d10008d8e9c2d5877c3eb36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a23ca6f5994b7e5db699cbf59b66e39c7b39feed3d10008d8e9c2d5877c3eb36", kill_on_drop: false }`
[INFO] [stdout] a23ca6f5994b7e5db699cbf59b66e39c7b39feed3d10008d8e9c2d5877c3eb36
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b28387e3b5a7c9e0358d4c5c86e4960ff1d3bb47b1aec5272633ec316b5d0447
[INFO] running `Command { std: "docker" "start" "-a" "b28387e3b5a7c9e0358d4c5c86e4960ff1d3bb47b1aec5272633ec316b5d0447", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]     Checking pin-project-lite v0.2.9
[INFO] [stderr]    Compiling cc v1.0.79
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling futures-task v0.3.28
[INFO] [stderr]     Checking futures-sink v0.3.28
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking rustc-serialize v0.3.24
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]     Checking bytes v1.4.0
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling parking_lot_core v0.9.7
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking iana-time-zone v0.1.56
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling slab v0.4.8
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling tokio v1.28.0
[INFO] [stderr]     Checking gimli v0.27.2
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking object v0.30.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling async-trait v0.1.68
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking mio v0.8.6
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling backtrace v0.3.67
[INFO] [stderr]     Checking net2 v0.2.38
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking memchr v1.0.2
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]    Compiling ws2_32-sys v0.2.1
[INFO] [stderr]     Checking nom v3.2.1
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking walkdir v2.3.3
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking bitflags v0.4.0
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]    Compiling build_const v0.2.2
[INFO] [stderr]     Checking itoa v1.0.6
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking nix v0.5.1
[INFO] [stderr]     Checking num-complex v0.1.43
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling openssl-sys v0.9.87
[INFO] [stderr]     Checking miow v0.1.5
[INFO] [stderr]     Checking btp-utp v0.1.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-utp)
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]     Checking tracing-core v0.1.30
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> bittorrent-protocol/btp-utp/src/error.rs:33:26
[INFO] [stdout]    |
[INFO] [stdout] 33 |         f.write_str(self.description())
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> bittorrent-protocol/btp-utp/src/error.rs:49:36
[INFO] [stdout]    |
[INFO] [stdout] 49 |         io::Error::new(kind, error.description())
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> bittorrent-protocol/btp-utp/src/error.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 |         write!(f, "{}", self.description())
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> bittorrent-protocol/btp-utp/src/error.rs:81:48
[INFO] [stdout]    |
[INFO] [stdout] 81 |         io::Error::new(ErrorKind::Other, error.description())
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking num-bigint v0.1.44
[INFO] [stderr]     Checking chrono v0.4.24
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bittorrent-protocol/btp-utp/src/packet.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) };
[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]    --> bittorrent-protocol/btp-utp/src/socket.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 |             let mut packet = &mut self.send_window[0];
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bittorrent-protocol/btp-utp/src/socket.rs:1110:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |     let mut socket = self.socket.try_clone().expect("UtpSocket clone fail");
[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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1111:9
[INFO] [stdout]      |
[INFO] [stdout] 1111 |     let mut connected_to = self.connected_to.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1112:9
[INFO] [stdout]      |
[INFO] [stdout] 1112 |     let mut sender_connection_id = self.sender_connection_id;
[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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1113:9
[INFO] [stdout]      |
[INFO] [stdout] 1113 |     let mut receiver_connection_id = self.receiver_connection_id;
[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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1114:9
[INFO] [stdout]      |
[INFO] [stdout] 1114 |     let mut seq_nr = self.seq_nr;
[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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1115:9
[INFO] [stdout]      |
[INFO] [stdout] 1115 |     let mut ack_nr = self.ack_nr;
[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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1116:9
[INFO] [stdout]      |
[INFO] [stdout] 1116 |     let mut state = self.state.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1117:9
[INFO] [stdout]      |
[INFO] [stdout] 1117 |     let mut incoming_buffer = self.incoming_buffer.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1118:9
[INFO] [stdout]      |
[INFO] [stdout] 1118 |     let mut send_window = self.send_window.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1119:9
[INFO] [stdout]      |
[INFO] [stdout] 1119 |     let mut unsent_queue = self.unsent_queue.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1120:9
[INFO] [stdout]      |
[INFO] [stdout] 1120 |     let mut duplicate_ack_count = self.duplicate_ack_count.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1121:9
[INFO] [stdout]      |
[INFO] [stdout] 1121 |     let mut last_acked = self.last_acked.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1122:9
[INFO] [stdout]      |
[INFO] [stdout] 1122 |     let mut last_acked_timestamp = self.last_acked_timestamp.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1123:9
[INFO] [stdout]      |
[INFO] [stdout] 1123 |     let mut last_dropped = self.last_dropped.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1124:9
[INFO] [stdout]      |
[INFO] [stdout] 1124 |     let mut rtt = self.rtt.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1125:9
[INFO] [stdout]      |
[INFO] [stdout] 1125 |     let mut pending_data = self.pending_data.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1126:9
[INFO] [stdout]      |
[INFO] [stdout] 1126 |     let mut rtt_variance = self.rtt_variance.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1127:9
[INFO] [stdout]      |
[INFO] [stdout] 1127 |     let mut curr_window = self.curr_window.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1128:9
[INFO] [stdout]      |
[INFO] [stdout] 1128 |     let mut remote_wnd_size= self.remote_wnd_size.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1129:9
[INFO] [stdout]      |
[INFO] [stdout] 1129 |     let mut base_delays= self.base_delays.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1130:9
[INFO] [stdout]      |
[INFO] [stdout] 1130 |     let mut current_delays= self.current_delays.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1131:9
[INFO] [stdout]      |
[INFO] [stdout] 1131 |     let mut their_delay = self.their_delay.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1132:9
[INFO] [stdout]      |
[INFO] [stdout] 1132 |     let mut last_rollover = self.last_rollover.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1133:9
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     let mut congestion_timeout = self.congestion_timeout.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1134:9
[INFO] [stdout]      |
[INFO] [stdout] 1134 |     let mut cwnd = self.cwnd.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]     --> bittorrent-protocol/btp-utp/src/socket.rs:1135:9
[INFO] [stdout]      |
[INFO] [stdout] 1135 |     let mut max_retransmission_retries = self.max_retransmission_retries.clone();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> bittorrent-protocol/btp-utp/src/socket.rs:1137:9
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     let mut utp_socket = UtpSocket {
[INFO] [stdout]      |         ----^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking slab v0.1.3
[INFO] [stderr]    Compiling openssl v0.10.52
[INFO] [stderr]     Checking bytes v0.3.0
[INFO] [stderr]     Checking addr2line v0.19.0
[INFO] [stderr]     Checking tracing v0.1.37
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking http v0.2.9
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking bit-vec v0.4.4
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]     Checking mio v0.5.1
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking bit-set v0.4.0
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking try-lock v0.2.4
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking percent-encoding v2.2.0
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]    Compiling serde v1.0.160
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking unicode-bidi v0.2.6
[INFO] [stderr]     Checking form_urlencoded v1.1.0
[INFO] [stderr]     Checking http-body v0.3.1
[INFO] [stderr]     Checking uuid v0.2.3
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking tower-service v0.3.2
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking unicode-bidi v0.3.13
[INFO] [stderr]     Checking httpdate v0.3.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking url v0.5.10
[INFO] [stderr]     Checking umio v0.3.0
[INFO] [stderr]     Checking ryu v1.0.13
[INFO] [stderr]     Checking btp-magnet v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-magnet)
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> bittorrent-protocol/btp-magnet/src/lib.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn main() {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking btp-htracker v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-htracker)
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking slab v0.2.0
[INFO] [stderr]     Checking btp-lsd v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-lsd)
[INFO] [stderr]     Checking base32 v0.3.1
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking btp-nat v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-nat)
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking encoding_rs v0.8.32
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking ipnet v2.7.2
[INFO] [stderr]     Checking btp-bencode v0.1.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-bencode)
[INFO] [stderr]     Checking sha1_smol v1.0.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking quickcheck v0.4.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stdout] warning: unused macro definition: `ben_map_self`
[INFO] [stdout]   --> bittorrent-protocol/btp-bencode/src/lib.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 | macro_rules!  ben_map_self {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ben_list_self`
[INFO] [stdout]    --> bittorrent-protocol/btp-bencode/src/lib.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 | macro_rules! ben_list_self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ben_bytes_self`
[INFO] [stdout]    --> bittorrent-protocol/btp-bencode/src/lib.rs:162:14
[INFO] [stdout]     |
[INFO] [stdout] 162 | macro_rules! ben_bytes_self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ben_int_self`
[INFO] [stdout]    --> bittorrent-protocol/btp-bencode/src/lib.rs:181:14
[INFO] [stdout]     |
[INFO] [stdout] 181 | macro_rules! ben_int_self {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking sha1 v0.6.1
[INFO] [stderr]     Checking bencode v0.1.16
[INFO] [stderr]    Compiling hex-literal v0.3.4
[INFO] [stderr]  Documenting btp-bencode v0.1.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-bencode)
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  Documenting btp-utp v0.1.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-utp)
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]  Documenting btp-lsd v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-lsd)
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]  Documenting btp-htracker v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-htracker)
[INFO] [stderr]  Documenting btp-nat v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-nat)
[INFO] [stderr]  Documenting btp-magnet v0.0.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-magnet)
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-recursion v1.0.4
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tokio-tls v0.3.1
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking h2 v0.2.7
[INFO] [stderr]     Checking futures v0.3.28
[INFO] [stderr]     Checking btp-util v0.2.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-util)
[INFO] [stderr]  Documenting btp-util v0.2.1 (/opt/rustwide/workdir/bittorrent-protocol/btp-util)
[INFO] [stderr]     Checking btp-handshake v0.3.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-handshake)
[INFO] [stderr]     Checking btp-metainfo v0.1.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-metainfo)
[INFO] [stderr]     Checking btp-utracker v0.3.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-utracker)
[INFO] [stderr]     Checking btp-dht v0.5.2 (/opt/rustwide/workdir/bittorrent-protocol/btp-dht)
[INFO] [stderr]  Documenting btp-handshake v0.3.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-handshake)
[INFO] [stderr]  Documenting btp-metainfo v0.1.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-metainfo)
[INFO] [stderr]  Documenting btp-utracker v0.3.0 (/opt/rustwide/workdir/bittorrent-protocol/btp-utracker)
[INFO] [stderr]  Documenting btp-dht v0.5.2 (/opt/rustwide/workdir/bittorrent-protocol/btp-dht)
[INFO] [stdout] error[E0583]: file not found for module `build`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub mod build;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `build`, create file "bittorrent-protocol/btp-handshake/src/manager/build.rs" or "bittorrent-protocol/btp-handshake/src/manager/build/mod.rs"
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `build`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub mod build;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `build`, create file "bittorrent-protocol/btp-handshake/src/manager/build.rs" or "bittorrent-protocol/btp-handshake/src/manager/build/mod.rs"
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::manager::build::HandshakerManagerBuilder`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use crate::manager::build::HandshakerManagerBuilder;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `HandshakerManagerBuilder` in `manager::build`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ipv4Addr`, `SocketAddrV4`, `SocketAddr`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
[INFO] [stdout]   |                ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rng`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{self, Rng};
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `btp_util::convert`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use btp_util::convert;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::message::extensions::Extensions`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::message::extensions::Extensions;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::handler`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::handler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::config::HandshakerConfig`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use self::config::HandshakerConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/handler/mod.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/handler/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LocalAddr`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/handler/mod.rs:11:75
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{CompleteMessage, Extensions, FilterDecision, InitiateMessage, LocalAddr, Protocol, Transport};
[INFO] [stdout]    |                                                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/handler/handshaker.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, Write};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/handler/handshaker.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/transport.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::io::{ AsyncRead, AsyncWrite, Error, ErrorKind};
[INFO] [stdout]   |                                         ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Incoming`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/transport.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::net::{SocketAddr, Incoming};
[INFO] [stdout]   |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UtpStream`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/socket/transport.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | use btp_utp::{UtpSocket, UtpListener, UtpStream};
[INFO] [stdout]    |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cursor`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/framed.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, Cursor, Write, Read};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/framed.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/option.rs:157:1
[INFO] [stdout]     |
[INFO] [stdout] 157 | /// Parse an end of buffer or the end of option byte.
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/option.rs:191:1
[INFO] [stdout]     |
[INFO] [stdout] 191 | /// Parse a single byte as an unsigned pointer size.
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::{self};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientResult`
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:27:74
[INFO] [stdout]    |
[INFO] [stdout] 27 |     request, ClientError, ClientMetadata, ClientRequest, ClientResponse, ClientResult, ClientToken
[INFO] [stdout]    |                                                                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> bittorrent-protocol/btp-utracker/src/server/dispatcher.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::{self};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/message/extensions.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | /     do_parse!(
[INFO] [stdout] 97 | |         bytes,
[INFO] [stdout] 98 | |         bytes: count_fixed!(u8, be_u8, NUM_EXTENSION_BYTES) >> (Extensions::with_bytes(bytes))
[INFO] [stdout] 99 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `count_fixed` which comes from the expansion of the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/lib.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSocketAddrs`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/mainlinedht.rs:3:52
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4, ToSocketAddrs};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `btp_util::net`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/mainlinedht.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use btp_util::net;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpectedResponse`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/message/mod.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::message::response::{ExpectedResponse, ResponseType};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BRefAccess`, `BencodeMut`, `BencodeRef`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/message/compact_info.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use btp_bencode::{BencodeMut, BencodeRef, BListAccess, BRefAccess};
[INFO] [stdout]   |                   ^^^^^^^^^^  ^^^^^^^^^^               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::message::RESPONSE_TYPE_KEY`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/message/response.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::message::RESPONSE_TYPE_KEY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/message/get_peers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::BTreeMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::message::request`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/message/acting.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::request;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_recursion::async_recursion`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/worker/bootstrap.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use async_recursion::async_recursion;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/worker/handler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stream`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Stream,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `oneshot`, `task`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/handler.rs:13:34
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::{select, sync::{mpsc, oneshot}, task};
[INFO] [stdout]    |                                  ^^^^^^^   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Timeout`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/handler.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | use btp_util::timer::{Timer,Timeout};
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DhtError`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/handler.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::error::{DhtError, DhtResult};
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oneshot`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/worker/lookup.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::{mpsc, oneshot};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `btp_util::net`
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/worker/lookup.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use btp_util::net;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `announceFailed` should have an upper camel case name
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/lookup.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     announceFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AnnounceFailed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Timeout`
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/refresh.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 | use btp_util::timer::{Timeout, Timer};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/announce.rs:479:1
[INFO] [stdout]     |
[INFO] [stdout] 479 | / named!(parse_ipv4<&[u8], Ipv4Addr>,
[INFO] [stdout] 480 | |     map!(count_fixed!(u8, be_u8, 4), |b| convert::bytes_be_to_ipv4(b))
[INFO] [stdout] 481 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `count_fixed` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/announce.rs:490:1
[INFO] [stdout]     |
[INFO] [stdout] 490 | / named!(parse_ipv6<&[u8], Ipv6Addr>,
[INFO] [stdout] 491 | |     map!(count_fixed!(u8, be_u8, 16), |b| convert::bytes_be_to_ipv6(b))
[INFO] [stdout] 492 | | );
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `count_fixed` which comes from the expansion of the macro `named` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::manager::build::HandshakerManagerBuilder`
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/manager/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use crate::manager::build::HandshakerManagerBuilder;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `HandshakerManagerBuilder` in `manager::build`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `announceFailed` should have an upper camel case name
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/lookup.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     announceFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AnnounceFailed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0583.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not document `btp-handshake`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `rustdoc --edition=2021 --crate-type lib --crate-name btp_handshake bittorrent-protocol/btp-handshake/src/lib.rs -o /opt/rustwide/target/doc --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --document-private-items -C metadata=d3d152b92479dbe4 -L dependency=/opt/rustwide/target/debug/deps --extern async_trait=/opt/rustwide/target/debug/deps/libasync_trait-aa6eea4426c29787.so --extern btp_util=/opt/rustwide/target/debug/deps/libbtp_util-381baee0d6d3117c.rmeta --extern btp_utp=/opt/rustwide/target/debug/deps/libbtp_utp-03eda223494fe738.rmeta --extern bytes=/opt/rustwide/target/debug/deps/libbytes-44110cc5349c62a2.rmeta --extern futures=/opt/rustwide/target/debug/deps/libfutures-75a5f863052094f1.rmeta --extern log=/opt/rustwide/target/debug/deps/liblog-83c76fb4ff61e17e.rmeta --extern nom=/opt/rustwide/target/debug/deps/libnom-9bbaee17c4c7c531.rmeta --extern rand=/opt/rustwide/target/debug/deps/librand-46b7b6ad3004fe43.rmeta --extern tokio=/opt/rustwide/target/debug/deps/libtokio-14f2c887ad4fd9db.rmeta --cap-lints=warn --crate-version 0.3.0` (exit status: 1)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> bittorrent-protocol/btp-handshake/src/handler/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut handler = HandshakeHandler::new(pid,ext,transport,listener,command,sock_send,filters);
[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]   --> bittorrent-protocol/btp-utracker/src/server/dispatcher.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let mut dispatch = ServerDispatcher::new(command_rx,socket_arc,message_tx);
[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: unused import: `Read`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/framed.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, Cursor, Write, Read};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/handler/handshaker.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> bittorrent-protocol/btp-handshake/src/socket/framed.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{self, Cursor, Write, Read};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_piece_buffer` is never read
[INFO] [stdout]    --> bittorrent-protocol/btp-metainfo/src/builder/worker.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 let mut curr_piece_buffer = PieceBuffer::new(1);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 24 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0583.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `btp-handshake` due to 3 previous errors; 24 warnings emitted
[INFO] [stdout] warning: unused variable: `msg_capacity`
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     msg_capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_capacity`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:292:43
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 (&ClientRequest::Announce(hash, _), &ResponseType::Announce(ref res)) => {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `write_success` is never read
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:383:17
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let mut write_success = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `local_addr` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/socket.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn local_addr(&self) -> SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ip_version` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/socket.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn ip_version(&self) -> IpVersion {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXPECTED_PACKET_LENGTH` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const EXPECTED_PACKET_LENGTH: usize = 1500;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Shutdown` is never constructed
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum DispatchMessage {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DispatchMessage` 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 `limiter` is never read
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 95  | struct ClientDispatcher {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |     limiter: RequestLimiter,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `timeout_id` is never used
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:451:12
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn timeout_id(&self) -> Option<Timeout> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXPECTED_PACKET_LENGTH` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/server/dispatcher.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const EXPECTED_PACKET_LENGTH: usize = 1500;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Announce_port` should have a snake case name
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/mod.rs:107:59
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub async fn new(bind: SocketAddr, peer_id: InfoHash, Announce_port: u16) -> io::Result<TrackerClient>
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^ help: convert the identifier to snake case: `announce_port`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Announce_port` should have a snake case name
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/mod.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Announce_port:u16,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `announce_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Announce_port` should have a snake case name
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     Announce_port: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `announce_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             send_socket.send(&buffer,addr).await;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Announce_port` should have a snake case name
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     Announce_port: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `announce_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Announce_port` should have a snake case name
[INFO] [stdout]    --> bittorrent-protocol/btp-utracker/src/client/dispatcher.rs:115:16
[INFO] [stdout]     |
[INFO] [stdout] 115 |                Announce_port:u16,
[INFO] [stdout]     |                ^^^^^^^^^^^^^ help: convert the identifier to snake case: `announce_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> bittorrent-protocol/btp-utracker/src/server/dispatcher.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |             send_socket.send(&buffer,addr).await;
[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: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> bittorrent-protocol/btp-dht/src/mainlinedht.rs:281:25
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn set_run_port(mut self, port: u16) -> DhtBuilder {
[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: constant `BOOTSTRAP_PINGS_PER_BUCKET` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/bootstrap.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const BOOTSTRAP_PINGS_PER_BUCKET: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Socket` is never constructed
[INFO] [stdout]  --> bittorrent-protocol/btp-dht/src/worker/socket.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Socket( Box<dyn SocketTrait + Send + Sync + 'static>, SocketAddr);
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/socket.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn new<S: SocketTrait + Send + Sync + 'static>(inner: S) -> io::Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/socket.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub(crate) async fn send(&self, bytes: &[u8], addr: SocketAddr) -> io::Result<()> {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `recv` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/socket.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) async fn recv(&mut self) -> io::Result<(Vec<u8>, SocketAddr)> {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `local_addr` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/socket.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn local_addr(&self) -> SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ip_version` is never used
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/worker/socket.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn ip_version(&self) -> IpVersion {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getValues` should have a snake case name
[INFO] [stdout]   --> bittorrent-protocol/btp-dht/src/mainlinedht.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub async fn getValues(&self) -> Option<DhtValues> {
[INFO] [stdout]    |                  ^^^^^^^^^ help: convert the identifier to snake case: `get_values`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> bittorrent-protocol/btp-dht/src/worker/mod.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |                 socket.send(&buffer,addr).await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 28 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b28387e3b5a7c9e0358d4c5c86e4960ff1d3bb47b1aec5272633ec316b5d0447", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b28387e3b5a7c9e0358d4c5c86e4960ff1d3bb47b1aec5272633ec316b5d0447", kill_on_drop: false }`
[INFO] [stdout] b28387e3b5a7c9e0358d4c5c86e4960ff1d3bb47b1aec5272633ec316b5d0447
