[INFO] cloning repository https://github.com/sithcom255/rust_consensus
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sithcom255/rust_consensus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsithcom255%2Frust_consensus", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsithcom255%2Frust_consensus'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] be9a9023c0fa5255e891f4a61bfd4ded4a157c06
[INFO] checking sithcom255/rust_consensus against 011c518242557d21690f7936b5812318dc2fec47 for pr-159877
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsithcom255%2Frust_consensus" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sithcom255/rust_consensus
[INFO] finished tweaking git repo https://github.com/sithcom255/rust_consensus
[INFO] tweaked toml for git repo https://github.com/sithcom255/rust_consensus written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sithcom255/rust_consensus on toolchain 011c518242557d21690f7936b5812318dc2fec47
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sithcom255/rust_consensus already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af
[INFO] running `Command { std: "docker" "start" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af" "/opt/rustwide/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af" "/opt/rustwide/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking jan_small_concensus v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/paxos/impl.rs:111:20
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 if (state.remaining_promise == 0) {
[INFO] [stdout]     |                    ^                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 111 -                 if (state.remaining_promise == 0) {
[INFO] [stdout] 111 +                 if state.remaining_promise == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/paxos/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/paxos/net.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Message, Messages};
[INFO] [stdout]   |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut` and `Bytes`
[INFO] [stdout]  --> src/main.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Buf, BufMut, Bytes, BytesMut};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TcpListener` and `TcpStream`
[INFO] [stdout]  --> src/main.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use mio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/paxos/impl.rs:111:20
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 if (state.remaining_promise == 0) {
[INFO] [stdout]     |                    ^                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 111 -                 if (state.remaining_promise == 0) {
[INFO] [stdout] 111 +                 if state.remaining_promise == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Events`, `Interest`, `Poll`, and `Token`
[INFO] [stdout]  --> src/main.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use mio::{Events, Interest, Poll, Token};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/paxos/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/paxos/net.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Message, Messages};
[INFO] [stdout]   |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bytes`
[INFO] [stdout]  --> src/main.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Buf, BufMut, Bytes, BytesMut};
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::FromBytesUntilNulError`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::FromBytesUntilNulError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Formatter`
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fmt::{Display, Formatter};
[INFO] [stdout]    |                ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TcpListener` and `TcpStream`
[INFO] [stdout]  --> src/main.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use mio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Events`, `Interest`, `Poll`, and `Token`
[INFO] [stdout]  --> src/main.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use mio::{Events, Interest, Poll, Token};
[INFO] [stdout]   |           ^^^^^^  ^^^^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `Read`, and `Write`
[INFO] [stdout]   --> src/main.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{BufRead, Read, Write};
[INFO] [stdout]    |               ^^^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddrParseError`, `Shutdown`, and `SocketAddr`
[INFO] [stdout]   --> src/main.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::net::{AddrParseError, Shutdown, SocketAddr};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::fd::IntoRawFd`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::fd::IntoRawFd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::FromBytesUntilNulError`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::FromBytesUntilNulError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Formatter`
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::fmt::{Display, Formatter};
[INFO] [stdout]    |                ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `Read`, and `Write`
[INFO] [stdout]   --> src/main.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{BufRead, Read, Write};
[INFO] [stdout]    |               ^^^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddrParseError`, `Shutdown`, and `SocketAddr`
[INFO] [stdout]   --> src/main.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::net::{AddrParseError, Shutdown, SocketAddr};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::fd::IntoRawFd`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::fd::IntoRawFd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/paxos/impl.rs:79:27
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn process(&mut self, source: u32, promise: Message) -> Option<Messages> {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/paxos/impl.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |             t,
[INFO] [stdout]    |             ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ballot`
[INFO] [stdout]    --> src/paxos/impl.rs:115:33
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     if let Some(ballot) = max_ballot {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_ballot`
[INFO] [stdout]    --> src/paxos/impl.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let max_ballot = self.states.remove(&ballot);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/paxos/impl.rs:136:42
[INFO] [stdout]     |
[INFO] [stdout] 136 |         } else if let Message::Confirm { t, ballot, value } = promise {
[INFO] [stdout]     |                                          ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/paxos/impl.rs:180:35
[INFO] [stdout]     |
[INFO] [stdout] 180 |         if let Message::Prepare { t, ballot } = message {
[INFO] [stdout]     |                                   ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/paxos/net.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ballot`
[INFO] [stdout]   --> src/paxos/net.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/paxos/net.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/paxos/impl.rs:79:27
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn process(&mut self, source: u32, promise: Message) -> Option<Messages> {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/paxos/impl.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |             t,
[INFO] [stdout]    |             ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ballot`
[INFO] [stdout]    --> src/paxos/impl.rs:115:33
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     if let Some(ballot) = max_ballot {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_ballot`
[INFO] [stdout]    --> src/paxos/impl.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let max_ballot = self.states.remove(&ballot);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/paxos/impl.rs:136:42
[INFO] [stdout]     |
[INFO] [stdout] 136 |         } else if let Message::Confirm { t, ballot, value } = promise {
[INFO] [stdout]     |                                          ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/paxos/impl.rs:180:35
[INFO] [stdout]     |
[INFO] [stdout] 180 |         if let Message::Prepare { t, ballot } = message {
[INFO] [stdout]     |                                   ^ help: try ignoring the field: `t: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/paxos/net.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ballot`
[INFO] [stdout]   --> src/paxos/net.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ballot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/paxos/net.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let x: [u8; 2] = [1, 2];
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Connect::t`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Connect::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Ack::t`
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Ack::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Connect::t`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Connect::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Prepare::t`
[INFO] [stdout]   --> src/main.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Prepare::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Ack::t`
[INFO] [stdout]   --> src/main.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Ack::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Promise::t`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Promise::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Prepare::t`
[INFO] [stdout]   --> src/main.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Prepare::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Accept::t`
[INFO] [stdout]   --> src/main.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Accept::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Promise::t`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Promise::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Confirm::t`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Confirm::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Accept::t`
[INFO] [stdout]   --> src/main.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Accept::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MessageType` is more private than the item `Message::Confirm::t`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         t: MessageType,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ field `Message::Confirm::t` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `MessageType` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/main.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Promise` and `Accept` are never constructed
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    |      ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Promise = 4,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 28 |     Accept = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Messages` is never constructed
[INFO] [stdout]   --> src/main.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct Messages {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtocolMessage` is never constructed
[INFO] [stdout]    --> src/main.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct ProtocolMessage {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Proposer` is never constructed
[INFO] [stdout]  --> src/paxos/impl.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Proposer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BallotState` is never constructed
[INFO] [stdout]   --> src/paxos/impl.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct BallotState {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Promise` and `Accept` are never constructed
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | enum MessageType {
[INFO] [stdout]    |      ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Promise = 4,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 28 |     Accept = 5,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Messages` is never constructed
[INFO] [stdout]   --> src/main.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct Messages {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/main.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl Message {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 96 |     fn from_bytes(bytes: &mut BytesMut, messages: &mut Vec<Message>) -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `propose`, `select_quorum`, and `process` are never used
[INFO] [stdout]   --> src/paxos/impl.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Proposer {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 23 |     fn new(
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn propose(&mut self, id: u64, value: u32) -> Option<Messages> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn select_quorum(&self) -> HashSet<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn process(&mut self, source: u32, promise: Message) -> Option<Messages> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtocolMessage` is never constructed
[INFO] [stdout]    --> src/main.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct ProtocolMessage {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Acceptor` is never constructed
[INFO] [stdout]    --> src/paxos/impl.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct Acceptor {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Proposer` is never constructed
[INFO] [stdout]  --> src/paxos/impl.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Proposer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BallotState` is never constructed
[INFO] [stdout]   --> src/paxos/impl.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct BallotState {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/paxos/impl.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl Acceptor {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn process(&mut self, message: Message) -> Option<Message> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Learner` is never constructed
[INFO] [stdout]    --> src/paxos/impl.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Learner {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/paxos/impl.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl Learner {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 220 |     fn process(&mut self, message: Message) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `propose`, `select_quorum`, and `process` are never used
[INFO] [stdout]   --> src/paxos/impl.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Proposer {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 23 |     fn new(
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn propose(&mut self, id: u64, value: u32) -> Option<Messages> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn select_quorum(&self) -> HashSet<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn process(&mut self, source: u32, promise: Message) -> Option<Messages> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Network` is never constructed
[INFO] [stdout]  --> src/paxos/net.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Network {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Acceptor` is never constructed
[INFO] [stdout]    --> src/paxos/impl.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct Acceptor {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `propose` and `process` are never used
[INFO] [stdout]   --> src/paxos/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Network {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn process(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/paxos/impl.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl Acceptor {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn process(&mut self, message: Message) -> Option<Message> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Learner` is never constructed
[INFO] [stdout]    --> src/paxos/impl.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Learner {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/paxos/impl.rs:220:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl Learner {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 220 |     fn process(&mut self, message: Message) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Network` is never constructed
[INFO] [stdout]  --> src/paxos/net.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Network {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `propose` and `process` are never used
[INFO] [stdout]   --> src/paxos/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Network {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     pub fn propose(&mut self, i: usize, ballot:u64, values: u32) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn process(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.63s
[INFO] running `Command { std: "docker" "inspect" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af", kill_on_drop: false }`
[INFO] [stdout] f1e8247a4f843e31d3c21e21d50e8eec3abbb033b499edb1b6f238ecf159f1af
