[INFO] fetching crate rsd 0.1.0...
[INFO] checking rsd-0.1.0 against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] extracting crate rsd 0.1.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate rsd 0.1.0
[INFO] finished tweaking crates.io crate rsd 0.1.0
[INFO] tweaked toml for crates.io crate rsd 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rsd 0.1.0 on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 14 packages to latest compatible versions
[INFO] [stderr]       Adding blake2 v0.8.1 (available: v0.10.6)
[INFO] [stderr]       Adding cryptoxide v0.1.3 (available: v0.5.1)
[INFO] [stderr]       Adding hex v0.3.2 (available: v0.4.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bc918e145ce7585aca43c778ebe123261259448a2677c209500ec3ab7265daa0
[INFO] running `Command { std: "docker" "start" "-a" "bc918e145ce7585aca43c778ebe123261259448a2677c209500ec3ab7265daa0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc918e145ce7585aca43c778ebe123261259448a2677c209500ec3ab7265daa0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc918e145ce7585aca43c778ebe123261259448a2677c209500ec3ab7265daa0", kill_on_drop: false }`
[INFO] [stdout] bc918e145ce7585aca43c778ebe123261259448a2677c209500ec3ab7265daa0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e821611dc0e9a1fd4efb6a9dd18fd2e50332caf0c0574facd5e5889bd2d36941
[INFO] running `Command { std: "docker" "start" "-a" "e821611dc0e9a1fd4efb6a9dd18fd2e50332caf0c0574facd5e5889bd2d36941", kill_on_drop: false }`
[INFO] [stderr]     Checking subtle v1.0.0
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking hex v0.3.2
[INFO] [stderr]     Checking cryptoxide v0.1.3
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking tiny-keccak v1.5.0
[INFO] [stderr]     Checking sp800-185 v0.2.0
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking crypto-mac v0.7.0
[INFO] [stderr]     Checking blake2 v0.8.1
[INFO] [stderr]     Checking rsd v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/net/types.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 | const NETWORK: u64 = (1 << 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] 29 - const NETWORK: u64 = (1 << 0);
[INFO] [stdout] 29 + const NETWORK: u64 = 1 << 0 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/net/types.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 | const BLOOM: u64 = (1 << 1);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 - const BLOOM: u64 = (1 << 1);
[INFO] [stdout] 30 + const BLOOM: u64 = 1 << 1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/types/amount.rs:189:20
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 '0'...'9' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]    --> src/types/uint.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | #[cfg_attr(feature = "clippy", allow(expl_impl_clone_on_copy))] // we don't define the `struct`, we have to explicitly impl
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/types/amount.rs:79:41
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let desc = ::std::error::Error::description(self);
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/types/amount.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/net/types.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 | const NETWORK: u64 = (1 << 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] 29 - const NETWORK: u64 = (1 << 0);
[INFO] [stdout] 29 + const NETWORK: u64 = 1 << 0 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/net/types.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 | const BLOOM: u64 = (1 << 1);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 - const BLOOM: u64 = (1 << 1);
[INFO] [stdout] 30 + const BLOOM: u64 = 1 << 1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/types/amount.rs:189:20
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 '0'...'9' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `clippy`
[INFO] [stdout]    --> src/types/uint.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | #[cfg_attr(feature = "clippy", allow(expl_impl_clone_on_copy))] // we don't define the `struct`, we have to explicitly impl
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `clippy` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/types/amount.rs:274:40
[INFO] [stdout]     |
[INFO] [stdout] 274 |     pub fn fmt_value_in(&self, f: &mut fmt::Write, denom: Denomination) -> fmt::Result {
[INFO] [stdout]     |                                        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 274 |     pub fn fmt_value_in(&self, f: &mut dyn fmt::Write, denom: Denomination) -> fmt::Result {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/types/amount.rs:79:41
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let desc = ::std::error::Error::description(self);
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/types/uint.rs:610:10
[INFO] [stdout]     |
[INFO] [stdout] 610 |         <fmt::Debug>::fmt(self, f)
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 610 |         <dyn fmt::Debug>::fmt(self, f)
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/types/amount.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Chain` is never constructed
[INFO] [stdout]  --> src/blockchain/chain.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Chain {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]   = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `network` is never read
[INFO] [stdout]  --> src/blockchain/chain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Chain {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 4 |     network: Network,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Pool` is never constructed
[INFO] [stdout]  --> src/net/pool.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Pool {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `network` and `chain` are never read
[INFO] [stdout]  --> src/net/pool.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Pool {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 6 |     network: Network,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     chain: Chain,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `PeerAddr` is never constructed
[INFO] [stdout]  --> src/net/types.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PeerAddr {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `IdentityKey` is never constructed
[INFO] [stdout]   --> src/net/types.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IdentityKey([u8; 33]);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `address`, `services`, `time`, and `key` are never read
[INFO] [stdout]   --> src/net/types.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct PeerAddr {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  6 |     address: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     services: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     //TODO check type on this.
[INFO] [stdout] 11 |     time: SystemTime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     key: IdentityKey,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/net/types.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IdentityKey([u8; 33]);
[INFO] [stdout]    |            ----------- ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsd` (lib) due to 4 previous errors; 12 warnings emitted
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/types/amount.rs:274:40
[INFO] [stdout]     |
[INFO] [stdout] 274 |     pub fn fmt_value_in(&self, f: &mut fmt::Write, denom: Denomination) -> fmt::Result {
[INFO] [stdout]     |                                        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 274 |     pub fn fmt_value_in(&self, f: &mut dyn fmt::Write, denom: Denomination) -> fmt::Result {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/types/uint.rs:610:10
[INFO] [stdout]     |
[INFO] [stdout] 610 |         <fmt::Debug>::fmt(self, f)
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 610 |         <dyn fmt::Debug>::fmt(self, f)
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Chain` is never constructed
[INFO] [stdout]  --> src/blockchain/chain.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Chain {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]   = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `network` is never read
[INFO] [stdout]  --> src/blockchain/chain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Chain {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 4 |     network: Network,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Pool` is never constructed
[INFO] [stdout]  --> src/net/pool.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Pool {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `network` and `chain` are never read
[INFO] [stdout]  --> src/net/pool.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Pool {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 6 |     network: Network,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     chain: Chain,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `PeerAddr` is never constructed
[INFO] [stdout]  --> src/net/types.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PeerAddr {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `IdentityKey` is never constructed
[INFO] [stdout]   --> src/net/types.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IdentityKey([u8; 33]);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `address`, `services`, `time`, and `key` are never read
[INFO] [stdout]   --> src/net/types.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct PeerAddr {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  6 |     address: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     services: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     //TODO check type on this.
[INFO] [stdout] 11 |     time: SystemTime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     key: IdentityKey,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/net/types.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IdentityKey([u8; 33]);
[INFO] [stdout]    |            ----------- ^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rsd` (lib test) due to 4 previous errors; 12 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "e821611dc0e9a1fd4efb6a9dd18fd2e50332caf0c0574facd5e5889bd2d36941", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e821611dc0e9a1fd4efb6a9dd18fd2e50332caf0c0574facd5e5889bd2d36941", kill_on_drop: false }`
[INFO] [stdout] e821611dc0e9a1fd4efb6a9dd18fd2e50332caf0c0574facd5e5889bd2d36941
