[INFO] cloning repository https://github.com/bool-rus/media-service
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bool-rus/media-service" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbool-rus%2Fmedia-service", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbool-rus%2Fmedia-service'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] efa2362add63fbb0862f0d11d9da77bf118013f8
[INFO] testing bool-rus/media-service against beta-2020-10-09 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbool-rus%2Fmedia-service" "/workspace/builds/worker-7/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/bool-rus/media-service on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/bool-rus/media-service
[INFO] finished tweaking git repo https://github.com/bool-rus/media-service
[INFO] tweaked toml for git repo https://github.com/bool-rus/media-service written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate git repo https://github.com/bool-rus/media-service already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded error-chain v0.9.0
[INFO] [stderr]   Downloaded error-chain v0.7.2
[INFO] [stderr]   Downloaded smallvec v0.6.12
[INFO] [stderr]   Downloaded nom v0.3.11
[INFO] [stderr]   Downloaded futures-fs v0.0.5
[INFO] [stderr]   Downloaded display_derive v0.0.0
[INFO] [stderr]   Downloaded bip_bencode v0.3.1
[INFO] [stderr]   Downloaded bencoders v0.1.0
[INFO] [stderr]   Downloaded bip_metainfo v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 83c490965dca01d1a157dbf4dd4f32b32c04eef00a9180b222b5a56f3d0cfc0d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "83c490965dca01d1a157dbf4dd4f32b32c04eef00a9180b222b5a56f3d0cfc0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "83c490965dca01d1a157dbf4dd4f32b32c04eef00a9180b222b5a56f3d0cfc0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83c490965dca01d1a157dbf4dd4f32b32c04eef00a9180b222b5a56f3d0cfc0d", kill_on_drop: false }`
[INFO] [stdout] 83c490965dca01d1a157dbf4dd4f32b32c04eef00a9180b222b5a56f3d0cfc0d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 06f6df8ffb5d1088ac4be022012b03520a5cc7133f49c382488322e7bcc9a2e9
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "06f6df8ffb5d1088ac4be022012b03520a5cc7133f49c382488322e7bcc9a2e9", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.0.46
[INFO] [stderr]    Compiling smallvec v0.6.12
[INFO] [stderr]    Compiling syn v1.0.7
[INFO] [stderr]    Compiling arc-swap v0.4.3
[INFO] [stderr]    Compiling nom v0.3.11
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling tower-service v0.1.0
[INFO] [stderr]    Compiling actix-web v0.7.19
[INFO] [stderr]    Compiling memoffset v0.5.2
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling socket2 v0.3.11
[INFO] [stderr]    Compiling rand v0.5.6
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]    Compiling base64 v0.9.3
[INFO] [stderr]    Compiling futures-cpupool v0.1.8
[INFO] [stderr]    Compiling synstructure v0.6.1
[INFO] [stderr]    Compiling serde_json v1.0.41
[INFO] [stderr]    Compiling num-complex v0.1.43
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling walkdir v0.1.8
[INFO] [stderr]    Compiling http v0.1.19
[INFO] [stderr]    Compiling futures-fs v0.0.5
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.8
[INFO] [stderr]    Compiling actix_derive v0.3.2
[INFO] [stderr]    Compiling signal-hook-registry v1.1.1
[INFO] [stderr]    Compiling bencoders v0.1.0
[INFO] [stderr]    Compiling nom v5.0.1
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling signal-hook v0.1.11
[INFO] [stderr]    Compiling display_derive v0.0.0
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling crossbeam-epoch v0.7.2
[INFO] [stderr]    Compiling tokio-reactor v0.1.10
[INFO] [stderr]    Compiling num-bigint v0.1.44
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]    Compiling uuid v0.7.4
[INFO] [stderr]    Compiling crossbeam-deque v0.7.1
[INFO] [stderr]    Compiling tokio-udp v0.1.5
[INFO] [stderr]    Compiling tokio-tcp v0.1.3
[INFO] [stderr]    Compiling tokio-uds v0.2.5
[INFO] [stderr]    Compiling tokio-signal v0.2.7
[INFO] [stderr]    Compiling idna v0.1.5
[INFO] [stderr]    Compiling parking_lot v0.7.1
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]    Compiling ring v0.13.5
[INFO] [stderr]    Compiling brotli-sys v0.3.2
[INFO] [stderr]    Compiling miniz-sys v0.1.12
[INFO] [stderr]    Compiling tokio-threadpool v0.1.16
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling h2 v0.1.26
[INFO] [stderr]    Compiling url v1.7.2
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling flate2 v1.0.12
[INFO] [stderr]    Compiling chrono v0.2.25
[INFO] [stderr]    Compiling tokio-fs v0.1.6
[INFO] [stderr]    Compiling backtrace v0.3.40
[INFO] [stderr]    Compiling tokio v0.1.22
[INFO] [stderr]    Compiling error-chain v0.9.0
[INFO] [stderr]    Compiling error-chain v0.7.2
[INFO] [stderr]    Compiling serde_urlencoded v0.5.5
[INFO] [stderr]    Compiling bip_bencode v0.3.1
[INFO] [stderr]    Compiling tokio-core v0.1.17
[INFO] [stderr]    Compiling synstructure v0.12.1
[INFO] [stderr]    Compiling bip_util v0.5.0
[INFO] [stderr]    Compiling bip_metainfo v0.10.0
[INFO] [stderr]    Compiling v_escape_derive v0.5.6
[INFO] [stderr]    Compiling serde_derive v1.0.102
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]    Compiling cookie v0.11.1
[INFO] [stderr]    Compiling v_escape v0.7.4
[INFO] [stderr]    Compiling v_htmlescape v0.4.5
[INFO] [stderr]    Compiling failure v0.1.6
[INFO] [stderr]    Compiling brotli2 v0.3.2
[INFO] [stderr]    Compiling trust-dns-proto v0.6.3
[INFO] [stderr]    Compiling trust-dns-proto v0.5.0
[INFO] [stderr]    Compiling trust-dns-resolver v0.10.3
[INFO] [stderr]    Compiling actix v0.7.9
[INFO] [stderr]    Compiling actix-net v0.2.6
[INFO] [stderr]    Compiling media-service v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/faces.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     stream: Box<Stream<Item=Bytes,Error=failure::Error>>
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Stream<Item=Bytes,Error=failure::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::tokio_core::net::TcpStream`
[INFO] [stdout]   --> src/torrent/implement.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::tokio_core::net::TcpStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/torrent/implement.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::tracker::*`
[INFO] [stdout]   --> src/torrent/implement.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         use self::tracker::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]  --> src/torrent/message.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use self::byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/torrent/message.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut bytes = BytesMut::with_capacity( HANDSHAKE_DEFAULT_SIZE - 1 + buf[0] as usize);
[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: `futures::sink::Sink`
[INFO] [stdout]   --> src/torrent/implement.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::sink::Sink;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buf`
[INFO] [stdout]  --> src/torrent/message.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Bytes, BytesMut, BufMut, Buf};
[INFO] [stdout]   |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]   --> src/torrent/implement.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let sender = sender.clone();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/torrent/implement.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stdout]    |                             ^^^^ help: try ignoring the field: `meta: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/torrent/implement.rs:42:44
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `service`
[INFO] [stdout]   --> src/torrent/implement.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let service = RefCell::new(TorrentService::new());
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]    --> src/torrent/implement.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn new(meta: MetainfoFile) -> Self {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/torrent/implement.rs:168:33
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn download_file(&mut self, num: usize) -> SizedStream {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/torrent/message.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         for i in 1..capacity { //все, кроме последнего
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol_size`
[INFO] [stdout]    --> src/torrent/message.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let protocol_size = buf[0];
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `size`
[INFO] [stdout]   --> src/torrent/faces.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/torrent/faces.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Block`
[INFO] [stdout]   --> src/torrent/implement.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Block;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentService`
[INFO] [stdout]   --> src/torrent/implement.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct TorrentService {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `new_service`
[INFO] [stdout]   --> src/torrent/implement.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn new_service() -> Sender<TorrentRequest> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/torrent/implement.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_torrent`
[INFO] [stdout]   --> src/torrent/implement.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn new_torrent(&mut self, req: &TorrentRequest) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentRequest`
[INFO] [stdout]   --> src/torrent/implement.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct TorrentRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentConnection`
[INFO] [stdout]    --> src/torrent/implement.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct TorrentConnection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `update_torrent_info`
[INFO] [stdout]    --> src/torrent/implement.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn update_torrent_info(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `process_peer`
[INFO] [stdout]    --> src/torrent/implement.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn process_peer(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `process_download`
[INFO] [stdout]    --> src/torrent/implement.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn process_download(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Started`
[INFO] [stdout]   --> src/torrent/tracker.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Started,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Stopped`
[INFO] [stdout]   --> src/torrent/tracker.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Stopped,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Completed`
[INFO] [stdout]   --> src/torrent/tracker.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Completed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `AnnounceRequest`
[INFO] [stdout]   --> src/torrent/tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AnnounceRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `parse`
[INFO] [stdout]    --> src/torrent/message.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn parse<T: io::AsyncRead>(reader: T ) -> impl Future<Item=(Self,T), Error=io::Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `validate`
[INFO] [stdout]    --> src/torrent/message.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn validate(&self, another: &Handshake) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `KeepAlive`
[INFO] [stdout]    --> src/torrent/message.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     KeepAlive,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Choke`
[INFO] [stdout]    --> src/torrent/message.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     Choke,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Unchoke`
[INFO] [stdout]    --> src/torrent/message.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Unchoke,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Interested`
[INFO] [stdout]    --> src/torrent/message.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     Interested,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `NotInterested`
[INFO] [stdout]    --> src/torrent/message.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     NotInterested,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Have`
[INFO] [stdout]    --> src/torrent/message.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     Have(u32),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Bitfield`
[INFO] [stdout]    --> src/torrent/message.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     Bitfield(Vec<u8>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Request`
[INFO] [stdout]    --> src/torrent/message.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | /     Request {
[INFO] [stdout] 153 | |         block: u32,
[INFO] [stdout] 154 | |         offset: u32,
[INFO] [stdout] 155 | |         length: u32,
[INFO] [stdout] 156 | |     },
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Piece`
[INFO] [stdout]    --> src/torrent/message.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | /     Piece {
[INFO] [stdout] 158 | |         block: u32,
[INFO] [stdout] 159 | |         offset: u32,
[INFO] [stdout] 160 | |         data: Bytes,
[INFO] [stdout] 161 | |     },
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Cancel`
[INFO] [stdout]    --> src/torrent/message.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | /     Cancel {
[INFO] [stdout] 163 | |         block: u32,
[INFO] [stdout] 164 | |         offset: u32,
[INFO] [stdout] 165 | |         length: u32,
[INFO] [stdout] 166 | |     },
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Port`
[INFO] [stdout]    --> src/torrent/message.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     Port(u16), //unimplemented
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse_hash_string`
[INFO] [stdout]    --> src/torrent/message.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn parse_hash_string(i: &[u8]) -> IResult<&[u8], HashString> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse_torrent_extentions`
[INFO] [stdout]    --> src/torrent/message.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 |     fn parse_torrent_extentions(i: &[u8]) -> IResult<&[u8], TorrentExtentions> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse_handshake`
[INFO] [stdout]    --> src/torrent/message.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub fn parse_handshake(i: &[u8]) -> IResult<&[u8], Handshake> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse_message`
[INFO] [stdout]    --> src/torrent/message.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn parse_message(i: &[u8]) -> IResult<&[u8],PeerMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Simple`
[INFO] [stdout]   --> src/torrent/peer.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Simple(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Handshake`
[INFO] [stdout]   --> src/torrent/peer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Handshake,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum is never used: `PeerState`
[INFO] [stdout]   --> src/torrent/peer.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum PeerState {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Peer`
[INFO] [stdout]   --> src/torrent/peer.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Peer {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/torrent/peer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(addr: SocketAddr, handshake: Handshake) -> impl Future<Item=Self,Error=PeerError> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `have`
[INFO] [stdout]   --> src/torrent/peer.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn have(&self, piece: u32) -> bool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 55 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 28s
[INFO] running `Command { std: "docker" "inspect" "06f6df8ffb5d1088ac4be022012b03520a5cc7133f49c382488322e7bcc9a2e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "06f6df8ffb5d1088ac4be022012b03520a5cc7133f49c382488322e7bcc9a2e9", kill_on_drop: false }`
[INFO] [stdout] 06f6df8ffb5d1088ac4be022012b03520a5cc7133f49c382488322e7bcc9a2e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ccd8421161ae56d2a299e56100e5eefe81493d82a0739b061b7d3545ca113b7
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "7ccd8421161ae56d2a299e56100e5eefe81493d82a0739b061b7d3545ca113b7", kill_on_drop: false }`
[INFO] [stderr]    Compiling media-service v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `failure::Fail`
[INFO] [stdout]    --> src/storage.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     use failure::Fail;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::Error`
[INFO] [stdout]    --> src/storage.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     use failure::Error;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/faces.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     stream: Box<Stream<Item=Bytes,Error=failure::Error>>
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Stream<Item=Bytes,Error=failure::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::tokio_core::net::TcpStream`
[INFO] [stdout]   --> src/torrent/implement.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::tokio_core::net::TcpStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/torrent/implement.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::tracker::*`
[INFO] [stdout]   --> src/torrent/implement.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         use self::tracker::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::actix`
[INFO] [stdout]    --> src/torrent/implement.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     use actix_web::actix;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::client`
[INFO] [stdout]    --> src/torrent/implement.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |     use actix_web::client;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::future::Future`
[INFO] [stdout]    --> src/torrent/implement.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     use futures::future::Future;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]  --> src/torrent/message.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use self::byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/torrent/message.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 |             let mut bytes = BytesMut::with_capacity( HANDSHAKE_DEFAULT_SIZE - 1 + buf[0] as usize);
[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: `futures::sink::Sink`
[INFO] [stdout]   --> src/torrent/implement.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::sink::Sink;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Buf`
[INFO] [stdout]  --> src/torrent/message.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Bytes, BytesMut, BufMut, Buf};
[INFO] [stdout]   |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err1`
[INFO] [stdout]    --> src/storage.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let err1 = failure::Error::from(err1);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_err1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender`
[INFO] [stdout]   --> src/torrent/implement.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let sender = sender.clone();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/torrent/implement.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stdout]    |                             ^^^^ help: try ignoring the field: `meta: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]   --> src/torrent/implement.rs:42:44
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `service`
[INFO] [stdout]   --> src/torrent/implement.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let service = RefCell::new(TorrentService::new());
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]    --> src/torrent/implement.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn new(meta: MetainfoFile) -> Self {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/torrent/implement.rs:168:33
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn download_file(&mut self, num: usize) -> SizedStream {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/torrent/message.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         for i in 1..capacity { //все, кроме последнего
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol_size`
[INFO] [stdout]    --> src/torrent/message.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let protocol_size = buf[0];
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/torrent/message.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let (buf, handshake) = parseRes.unwrap();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handshake`
[INFO] [stdout]    --> src/torrent/message.rs:299:19
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let (buf, handshake) = parseRes.unwrap();
[INFO] [stdout]     |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handshake`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `make_failure_err`
[INFO] [stdout]    --> src/storage.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn make_failure_err(err: io::Error) -> failure::Error {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `size`
[INFO] [stdout]   --> src/torrent/faces.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `size`
[INFO] [stdout]   --> src/torrent/faces.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Block`
[INFO] [stdout]   --> src/torrent/implement.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Block;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentService`
[INFO] [stdout]   --> src/torrent/implement.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct TorrentService {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `new_service`
[INFO] [stdout]   --> src/torrent/implement.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn new_service() -> Sender<TorrentRequest> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/torrent/implement.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_torrent`
[INFO] [stdout]   --> src/torrent/implement.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn new_torrent(&mut self, req: &TorrentRequest) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentRequest`
[INFO] [stdout]   --> src/torrent/implement.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct TorrentRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `TorrentConnection`
[INFO] [stdout]    --> src/torrent/implement.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | struct TorrentConnection {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `update_torrent_info`
[INFO] [stdout]    --> src/torrent/implement.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn update_torrent_info(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `process_peer`
[INFO] [stdout]    --> src/torrent/implement.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn process_peer(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `process_download`
[INFO] [stdout]    --> src/torrent/implement.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn process_download(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Started`
[INFO] [stdout]   --> src/torrent/tracker.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Started,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Stopped`
[INFO] [stdout]   --> src/torrent/tracker.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Stopped,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Completed`
[INFO] [stdout]   --> src/torrent/tracker.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Completed,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `AnnounceRequest`
[INFO] [stdout]   --> src/torrent/tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct AnnounceRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `parse`
[INFO] [stdout]    --> src/torrent/message.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn parse<T: io::AsyncRead>(reader: T ) -> impl Future<Item=(Self,T), Error=io::Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `validate`
[INFO] [stdout]    --> src/torrent/message.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn validate(&self, another: &Handshake) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Simple`
[INFO] [stdout]   --> src/torrent/peer.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Simple(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Handshake`
[INFO] [stdout]   --> src/torrent/peer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Handshake,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum is never used: `PeerState`
[INFO] [stdout]   --> src/torrent/peer.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum PeerState {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Peer`
[INFO] [stdout]   --> src/torrent/peer.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Peer {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/torrent/peer.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(addr: SocketAddr, handshake: Handshake) -> impl Future<Item=Self,Error=PeerError> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `have`
[INFO] [stdout]   --> src/torrent/peer.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn have(&self, piece: u32) -> bool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `parseRes` should have a snake case name
[INFO] [stdout]    --> src/torrent/message.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let parseRes = parse_handshake(bytes.as_ref());
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `parse_res`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/torrent/message.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |         bitfield.remove_bit(10); //помним, что нумерация с нуля
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/torrent/message.rs:444:9
[INFO] [stdout]     |
[INFO] [stdout] 444 |         bitfield.add_bit(15);
[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: 52 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 8.46s
[INFO] running `Command { std: "docker" "inspect" "7ccd8421161ae56d2a299e56100e5eefe81493d82a0739b061b7d3545ca113b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ccd8421161ae56d2a299e56100e5eefe81493d82a0739b061b7d3545ca113b7", kill_on_drop: false }`
[INFO] [stdout] 7ccd8421161ae56d2a299e56100e5eefe81493d82a0739b061b7d3545ca113b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ac54b6d53c771037b1c6aa8828d36214f093e61542fba56101b63c53e9070a26
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "ac54b6d53c771037b1c6aa8828d36214f093e61542fba56101b63c53e9070a26", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `failure::Fail`
[INFO] [stderr]    --> src/storage.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 122 |     use failure::Fail;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::Error`
[INFO] [stderr]    --> src/storage.rs:123:9
[INFO] [stderr]     |
[INFO] [stderr] 123 |     use failure::Error;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/torrent/faces.rs:18:17
[INFO] [stderr]    |
[INFO] [stderr] 18 |     stream: Box<Stream<Item=Bytes,Error=failure::Error>>
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Stream<Item=Bytes,Error=failure::Error>`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self::tokio_core::net::TcpStream`
[INFO] [stderr]   --> src/torrent/implement.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use self::tokio_core::net::TcpStream;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]   --> src/torrent/implement.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use std::mem;
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self::tracker::*`
[INFO] [stderr]   --> src/torrent/implement.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |         use self::tracker::*;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `actix_web::actix`
[INFO] [stderr]    --> src/torrent/implement.rs:176:9
[INFO] [stderr]     |
[INFO] [stderr] 176 |     use actix_web::actix;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `actix_web::client`
[INFO] [stderr]    --> src/torrent/implement.rs:177:9
[INFO] [stderr]     |
[INFO] [stderr] 177 |     use actix_web::client;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::future::Future`
[INFO] [stderr]    --> src/torrent/implement.rs:178:9
[INFO] [stderr]     |
[INFO] [stderr] 178 |     use futures::future::Future;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stderr]  --> src/torrent/message.rs:6:23
[INFO] [stderr]   |
[INFO] [stderr] 6 | use self::byteorder::{BigEndian, ReadBytesExt};
[INFO] [stderr]   |                       ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/torrent/message.rs:113:17
[INFO] [stderr]     |
[INFO] [stderr] 113 |             let mut bytes = BytesMut::with_capacity( HANDSHAKE_DEFAULT_SIZE - 1 + buf[0] as usize);
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::sink::Sink`
[INFO] [stderr]   --> src/torrent/implement.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use futures::sink::Sink;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Buf`
[INFO] [stderr]  --> src/torrent/message.rs:3:38
[INFO] [stderr]   |
[INFO] [stderr] 3 | use bytes::{Bytes, BytesMut, BufMut, Buf};
[INFO] [stderr]   |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err1`
[INFO] [stderr]    --> src/storage.rs:136:13
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let err1 = failure::Error::from(err1);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_err1`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sender`
[INFO] [stderr]   --> src/torrent/implement.rs:45:17
[INFO] [stderr]    |
[INFO] [stderr] 45 |             let sender = sender.clone();
[INFO] [stderr]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `meta`
[INFO] [stderr]   --> src/torrent/implement.rs:42:29
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stderr]    |                             ^^^^ help: try ignoring the field: `meta: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file`
[INFO] [stderr]   --> src/torrent/implement.rs:42:44
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let TorrentRequest{ meta, filenum: file, sender, receiver} = req;
[INFO] [stderr]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `service`
[INFO] [stderr]   --> src/torrent/implement.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let service = RefCell::new(TorrentService::new());
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `meta`
[INFO] [stderr]    --> src/torrent/implement.rs:155:16
[INFO] [stderr]     |
[INFO] [stderr] 155 |     pub fn new(meta: MetainfoFile) -> Self {
[INFO] [stderr]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num`
[INFO] [stderr]    --> src/torrent/implement.rs:168:33
[INFO] [stderr]     |
[INFO] [stderr] 168 |     fn download_file(&mut self, num: usize) -> SizedStream {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/torrent/message.rs:53:13
[INFO] [stderr]    |
[INFO] [stderr] 53 |         for i in 1..capacity { //все, кроме последнего
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol_size`
[INFO] [stderr]    --> src/torrent/message.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |             let protocol_size = buf[0];
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `buf`
[INFO] [stderr]    --> src/torrent/message.rs:299:14
[INFO] [stderr]     |
[INFO] [stderr] 299 |         let (buf, handshake) = parseRes.unwrap();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `handshake`
[INFO] [stderr]    --> src/torrent/message.rs:299:19
[INFO] [stderr]     |
[INFO] [stderr] 299 |         let (buf, handshake) = parseRes.unwrap();
[INFO] [stderr]     |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handshake`
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `make_failure_err`
[INFO] [stderr]    --> src/storage.rs:129:8
[INFO] [stderr]     |
[INFO] [stderr] 129 |     fn make_failure_err(err: io::Error) -> failure::Error {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `size`
[INFO] [stderr]   --> src/torrent/faces.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     size: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `size`
[INFO] [stderr]   --> src/torrent/faces.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn size(&self) -> usize {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `Block`
[INFO] [stderr]   --> src/torrent/implement.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | struct Block;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `TorrentService`
[INFO] [stderr]   --> src/torrent/implement.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | struct TorrentService {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `new_service`
[INFO] [stderr]   --> src/torrent/implement.rs:34:4
[INFO] [stderr]    |
[INFO] [stderr] 34 | fn new_service() -> Sender<TorrentRequest> {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `new`
[INFO] [stderr]   --> src/torrent/implement.rs:57:8
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn new() -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `new_torrent`
[INFO] [stderr]   --> src/torrent/implement.rs:60:8
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn new_torrent(&mut self, req: &TorrentRequest) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `TorrentRequest`
[INFO] [stderr]   --> src/torrent/implement.rs:96:8
[INFO] [stderr]    |
[INFO] [stderr] 96 | struct TorrentRequest {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `TorrentConnection`
[INFO] [stderr]    --> src/torrent/implement.rs:103:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | struct TorrentConnection {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `update_torrent_info`
[INFO] [stderr]    --> src/torrent/implement.rs:116:8
[INFO] [stderr]     |
[INFO] [stderr] 116 |     fn update_torrent_info(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `process_peer`
[INFO] [stderr]    --> src/torrent/implement.rs:119:8
[INFO] [stderr]     |
[INFO] [stderr] 119 |     fn process_peer(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `process_download`
[INFO] [stderr]    --> src/torrent/implement.rs:122:8
[INFO] [stderr]     |
[INFO] [stderr] 122 |     fn process_download(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Started`
[INFO] [stderr]   --> src/torrent/tracker.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     Started,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Stopped`
[INFO] [stderr]   --> src/torrent/tracker.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 25 |     Stopped,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Completed`
[INFO] [stderr]   --> src/torrent/tracker.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     Completed,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `AnnounceRequest`
[INFO] [stderr]   --> src/torrent/tracker.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct AnnounceRequest {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `parse`
[INFO] [stderr]    --> src/torrent/message.rs:110:12
[INFO] [stderr]     |
[INFO] [stderr] 110 |     pub fn parse<T: io::AsyncRead>(reader: T ) -> impl Future<Item=(Self,T), Error=io::Error> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `validate`
[INFO] [stderr]    --> src/torrent/message.rs:123:12
[INFO] [stderr]     |
[INFO] [stderr] 123 |     pub fn validate(&self, another: &Handshake) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Simple`
[INFO] [stderr]   --> src/torrent/peer.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     Simple(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Handshake`
[INFO] [stderr]   --> src/torrent/peer.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     Handshake,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum is never used: `PeerState`
[INFO] [stderr]   --> src/torrent/peer.rs:28:6
[INFO] [stderr]    |
[INFO] [stderr] 28 | enum PeerState {
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `Peer`
[INFO] [stderr]   --> src/torrent/peer.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Peer {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `new`
[INFO] [stderr]   --> src/torrent/peer.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub fn new(addr: SocketAddr, handshake: Handshake) -> impl Future<Item=Self,Error=PeerError> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `have`
[INFO] [stderr]   --> src/torrent/peer.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 |     pub fn have(&self, piece: u32) -> bool {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `parseRes` should have a snake case name
[INFO] [stderr]    --> src/torrent/message.rs:297:13
[INFO] [stderr]     |
[INFO] [stderr] 297 |         let parseRes = parse_handshake(bytes.as_ref());
[INFO] [stderr]     |             ^^^^^^^^ help: convert the identifier to snake case: `parse_res`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/torrent/message.rs:440:9
[INFO] [stderr]     |
[INFO] [stderr] 440 |         bitfield.remove_bit(10); //помним, что нумерация с нуля
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/torrent/message.rs:444:9
[INFO] [stderr]     |
[INFO] [stderr] 444 |         bitfield.add_bit(15);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: 52 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.88s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/media_service-8e63e76af7557088
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test torrent::implement::tests::test_client ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_bitfield ... ok
[INFO] [stdout] test storage::test::from_io_to_failure ... ok
[INFO] [stdout] test storage::test::from_cached_to_atix ... ok
[INFO] [stdout] test torrent::message::test::test_simple_messages ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_port ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_piece ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_keep_alive ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_interested ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_have ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_handshake ... ok
[INFO] [stdout] test torrent::message::test::test_bitfield ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_request ... ok
[INFO] [stdout] test torrent::tracker::test_slice ... ok
[INFO] [stdout] test torrent::message::parser::test_parse_cancel ... ok
[INFO] [stdout] test torrent::message::test::test_empty_messages ... ok
[INFO] [stdout] test torrent::message::test::test_bit_ops ... ok
[INFO] [stdout] test torrent::tracker::test_parse ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ac54b6d53c771037b1c6aa8828d36214f093e61542fba56101b63c53e9070a26", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac54b6d53c771037b1c6aa8828d36214f093e61542fba56101b63c53e9070a26", kill_on_drop: false }`
[INFO] [stdout] ac54b6d53c771037b1c6aa8828d36214f093e61542fba56101b63c53e9070a26
