[INFO] fetching crate dmtree 0.1.0-alpha.2...
[INFO] testing dmtree-0.1.0-alpha.2 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate dmtree 0.1.0-alpha.2 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate dmtree 0.1.0-alpha.2
[INFO] finished tweaking crates.io crate dmtree 0.1.0-alpha.2
[INFO] tweaked toml for crates.io crate dmtree 0.1.0-alpha.2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate dmtree 0.1.0-alpha.2 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 89 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v2.0.1)
[INFO] [stderr]       Adding criterion v0.5.1 (available: v0.7.0)
[INFO] [stderr]       Adding rand v0.8.5 (available: v0.9.2)
[INFO] [stderr]       Adding secp256k1 v0.30.0 (available: v0.31.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rs_merkle v1.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9dd93cfa85bb03db8b5172eba0546c0c8f2b2220b893e87f2edd20741903cf3b
[INFO] running `Command { std: "docker" "start" "-a" "9dd93cfa85bb03db8b5172eba0546c0c8f2b2220b893e87f2edd20741903cf3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9dd93cfa85bb03db8b5172eba0546c0c8f2b2220b893e87f2edd20741903cf3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dd93cfa85bb03db8b5172eba0546c0c8f2b2220b893e87f2edd20741903cf3b", kill_on_drop: false }`
[INFO] [stdout] 9dd93cfa85bb03db8b5172eba0546c0c8f2b2220b893e87f2edd20741903cf3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5e8d0ede5875445c3f7a3e277e9f8d877cac173422d05d02c3ba318dc52d1fa6
[INFO] running `Command { std: "docker" "start" "-a" "5e8d0ede5875445c3f7a3e277e9f8d877cac173422d05d02c3ba318dc52d1fa6", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rs_merkle v1.5.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling secp256k1 v0.30.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling dmtree v0.1.0-alpha.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/network/node.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::Hash;
[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::fmt::Debug`
[INFO] [stdout]  --> src/augmented_node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/augmented_node.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/types/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `VecDeque`
[INFO] [stdout]  --> src/types/user.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/types/user.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use secp256k1::{Message, Secp256k1};
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Group`
[INFO] [stdout]  --> src/types/user.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::{Addressable, Group, Item};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]   --> src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use std::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sha2::Digest`
[INFO] [stdout]  --> src/augmented_node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use sha2::Digest;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:61:58
[INFO] [stdout]    |
[INFO] [stdout] 61 |             NetworkNode::Data { label, parent_group_label, proof: verification_path, object, public_key, signature } => {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:71:76
[INFO] [stdout]    |
[INFO] [stdout] 71 | ..._label, proof: verification_path, child_group_hashes: group_roots, child_data_hashes: data_roots, child_labels: child_group_label...
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]   --> src/network/hash.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hasher`
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/augmented_node.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]   --> src/augmented_node.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_group_roots`, `get_data_roots`, and `get_child_group_labels` are never used
[INFO] [stdout]    --> src/network/node.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<D: Addressable> NetworkNode<D> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn get_group_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn get_data_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub(crate) fn get_child_group_labels(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashValue` is never used
[INFO] [stdout]  --> src/network/hash.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type HashValue = [u8; 32];  // SHA256 produces a 32-byte hash
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_object` is never used
[INFO] [stdout]  --> src/network/hash.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn hash_object(data: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_hash` is never used
[INFO] [stdout]   --> src/network/hash.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn combined_hash(left: String, right: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_hashes` is never used
[INFO] [stdout]   --> src/network/hash.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_source_node` is never used
[INFO] [stdout]   --> src/augmented_node.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<D: Addressable> DistributedMerkleTree<D> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub(crate) fn get_source_node(&self) -> Option<&NetworkNode<D>> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Put` is never constructed
[INFO] [stdout]  --> src/types/request.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Put<D: Addressable> {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/request.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<D: Addressable> Put<D> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(private: Vec<u8>, public: Vec<u8>, group: Group<D>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.88s
[INFO] running `Command { std: "docker" "inspect" "5e8d0ede5875445c3f7a3e277e9f8d877cac173422d05d02c3ba318dc52d1fa6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e8d0ede5875445c3f7a3e277e9f8d877cac173422d05d02c3ba318dc52d1fa6", kill_on_drop: false }`
[INFO] [stdout] 5e8d0ede5875445c3f7a3e277e9f8d877cac173422d05d02c3ba318dc52d1fa6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ca24794a434eac1559ade9e3fa12cd782b31f22210e884bf11814fe35f4a07e4
[INFO] running `Command { std: "docker" "start" "-a" "ca24794a434eac1559ade9e3fa12cd782b31f22210e884bf11814fe35f4a07e4", kill_on_drop: false }`
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling clap_builder v4.5.51
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling secp256k1 v0.30.0
[INFO] [stderr]    Compiling dmtree v0.1.0-alpha.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/network/node.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::Hash;
[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::fmt::Debug`
[INFO] [stdout]  --> src/augmented_node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/augmented_node.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/types/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `VecDeque`
[INFO] [stdout]  --> src/types/user.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/types/user.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use secp256k1::{Message, Secp256k1};
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Group`
[INFO] [stdout]  --> src/types/user.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::{Addressable, Group, Item};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]   --> src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use std::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v4.5.51
[INFO] [stdout] warning: unused import: `sha2::Digest`
[INFO] [stdout]  --> src/augmented_node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use sha2::Digest;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:61:58
[INFO] [stdout]    |
[INFO] [stdout] 61 |             NetworkNode::Data { label, parent_group_label, proof: verification_path, object, public_key, signature } => {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:71:76
[INFO] [stdout]    |
[INFO] [stdout] 71 | ..._label, proof: verification_path, child_group_hashes: group_roots, child_data_hashes: data_roots, child_labels: child_group_label...
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]   --> src/network/hash.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hasher`
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/augmented_node.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]   --> src/augmented_node.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_group_roots`, `get_data_roots`, and `get_child_group_labels` are never used
[INFO] [stdout]    --> src/network/node.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<D: Addressable> NetworkNode<D> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn get_group_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn get_data_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub(crate) fn get_child_group_labels(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashValue` is never used
[INFO] [stdout]  --> src/network/hash.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type HashValue = [u8; 32];  // SHA256 produces a 32-byte hash
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_object` is never used
[INFO] [stdout]  --> src/network/hash.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn hash_object(data: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_hash` is never used
[INFO] [stdout]   --> src/network/hash.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn combined_hash(left: String, right: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_hashes` is never used
[INFO] [stdout]   --> src/network/hash.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_source_node` is never used
[INFO] [stdout]   --> src/augmented_node.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<D: Addressable> DistributedMerkleTree<D> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub(crate) fn get_source_node(&self) -> Option<&NetworkNode<D>> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Put` is never constructed
[INFO] [stdout]  --> src/types/request.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Put<D: Addressable> {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/request.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<D: Addressable> Put<D> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(private: Vec<u8>, public: Vec<u8>, group: Group<D>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/network/node.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::Hash;
[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::fmt::Debug`
[INFO] [stdout]  --> src/augmented_node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/augmented_node.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/types/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `VecDeque`
[INFO] [stdout]  --> src/types/user.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]  --> src/types/user.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use secp256k1::{Message, Secp256k1};
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Group`
[INFO] [stdout]  --> src/types/user.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::{Addressable, Group, Item};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]   --> src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use std::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sha2::Digest`
[INFO] [stdout]  --> src/augmented_node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use sha2::Digest;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:61:58
[INFO] [stdout]    |
[INFO] [stdout] 61 |             NetworkNode::Data { label, parent_group_label, proof: verification_path, object, public_key, signature } => {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verification_path`
[INFO] [stdout]   --> src/network/node.rs:71:76
[INFO] [stdout]    |
[INFO] [stdout] 71 | ..._label, proof: verification_path, child_group_hashes: group_roots, child_data_hashes: data_roots, child_labels: child_group_label...
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashes`
[INFO] [stdout]   --> src/network/hash.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hasher`
[INFO] [stdout]   --> src/network/hash.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut hasher = Sha256::new();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/augmented_node.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group`
[INFO] [stdout]   --> src/augmented_node.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_group_roots`, `get_data_roots`, and `get_child_group_labels` are never used
[INFO] [stdout]    --> src/network/node.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<D: Addressable> NetworkNode<D> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub(crate) fn get_group_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn get_data_roots(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub(crate) fn get_child_group_labels(&self) -> Vec<String> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashValue` is never used
[INFO] [stdout]  --> src/network/hash.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type HashValue = [u8; 32];  // SHA256 produces a 32-byte hash
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_object` is never used
[INFO] [stdout]  --> src/network/hash.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn hash_object(data: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_hash` is never used
[INFO] [stdout]   --> src/network/hash.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn combined_hash(left: String, right: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_hashes` is never used
[INFO] [stdout]   --> src/network/hash.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_source_node` is never used
[INFO] [stdout]   --> src/augmented_node.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<D: Addressable> DistributedMerkleTree<D> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub(crate) fn get_source_node(&self) -> Option<&NetworkNode<D>> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Put` is never constructed
[INFO] [stdout]  --> src/types/request.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Put<D: Addressable> {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/request.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<D: Addressable> Put<D> {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(private: Vec<u8>, public: Vec<u8>, group: Group<D>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.15s
[INFO] running `Command { std: "docker" "inspect" "ca24794a434eac1559ade9e3fa12cd782b31f22210e884bf11814fe35f4a07e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca24794a434eac1559ade9e3fa12cd782b31f22210e884bf11814fe35f4a07e4", kill_on_drop: false }`
[INFO] [stdout] ca24794a434eac1559ade9e3fa12cd782b31f22210e884bf11814fe35f4a07e4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3ebd6006c74cb1fb26732b0a3909b90699ea44448aa730107f59517e22516085
[INFO] running `Command { std: "docker" "start" "-a" "3ebd6006c74cb1fb26732b0a3909b90699ea44448aa730107f59517e22516085", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::hash::Hash`
[INFO] [stderr]  --> src/network/node.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::hash::Hash;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Debug`
[INFO] [stderr]  --> src/augmented_node.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::fmt::Debug;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::hash::Hash`
[INFO] [stderr]  --> src/augmented_node.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::hash::Hash;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::hash::Hash`
[INFO] [stderr]  --> src/types/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::hash::Hash;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BTreeMap` and `VecDeque`
[INFO] [stderr]  --> src/types/user.rs:1:24
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{BTreeMap, VecDeque};
[INFO] [stderr]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Message`
[INFO] [stderr]  --> src/types/user.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | use secp256k1::{Message, Secp256k1};
[INFO] [stderr]   |                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Group`
[INFO] [stderr]  --> src/types/user.rs:5:33
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::types::{Addressable, Group, Item};
[INFO] [stderr]   |                                 ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::hash::Hash`
[INFO] [stderr]   --> src/lib.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 40 | use std::hash::Hash;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sha2::Digest`
[INFO] [stderr]  --> src/augmented_node.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use sha2::Digest;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `verification_path`
[INFO] [stderr]   --> src/network/node.rs:61:58
[INFO] [stderr]    |
[INFO] [stderr] 61 |             NetworkNode::Data { label, parent_group_label, proof: verification_path, object, public_key, signature } => {
[INFO] [stderr]    |                                                                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `verification_path`
[INFO] [stderr]   --> src/network/node.rs:71:76
[INFO] [stderr]    |
[INFO] [stderr] 71 | ..._label, proof: verification_path, child_group_hashes: group_roots, child_data_hashes: data_roots, child_labels: child_group_label...
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verification_path`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/network/hash.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut hasher = Sha256::new();
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hashes`
[INFO] [stderr]   --> src/network/hash.rs:20:23
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stderr]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashes`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hasher`
[INFO] [stderr]   --> src/network/hash.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut hasher = Sha256::new();
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hasher`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `user`
[INFO] [stderr]   --> src/augmented_node.rs:39:27
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stderr]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `group`
[INFO] [stderr]   --> src/augmented_node.rs:39:42
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub fn update(&mut self, user: User<D>, group: Group<D>) -> Vec<NetworkNode<D>>{
[INFO] [stderr]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_group`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_group_roots`, `get_data_roots`, and `get_child_group_labels` are never used
[INFO] [stderr]    --> src/network/node.rs:120:16
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl<D: Addressable> NetworkNode<D> {
[INFO] [stderr]     | ----------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 120 |     pub(crate) fn get_group_roots(&self) -> Vec<String> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub(crate) fn get_data_roots(&self) -> Vec<String> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub(crate) fn get_child_group_labels(&self) -> Vec<String> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `HashValue` is never used
[INFO] [stderr]  --> src/network/hash.rs:3:10
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub type HashValue = [u8; 32];  // SHA256 produces a 32-byte hash
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hash_object` is never used
[INFO] [stderr]  --> src/network/hash.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn hash_object(data: &[u8]) -> String {
[INFO] [stderr]   |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `combined_hash` is never used
[INFO] [stderr]   --> src/network/hash.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn combined_hash(left: String, right: String) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `combine_hashes` is never used
[INFO] [stderr]   --> src/network/hash.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn combine_hashes(hashes: Vec<String>) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_source_node` is never used
[INFO] [stderr]   --> src/augmented_node.rs:56:16
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl<D: Addressable> DistributedMerkleTree<D> {
[INFO] [stderr]    | --------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub(crate) fn get_source_node(&self) -> Option<&NetworkNode<D>> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Put` is never constructed
[INFO] [stderr]  --> src/types/request.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct Put<D: Addressable> {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/types/request.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl<D: Addressable> Put<D> {
[INFO] [stderr]    | --------------------------- associated function in this implementation
[INFO] [stderr] 10 |     pub fn new(private: Vec<u8>, public: Vec<u8>, group: Group<D>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `dmtree` (lib) generated 24 warnings (run `cargo fix --lib -p dmtree` to apply 15 suggestions)
[INFO] [stderr] warning: `dmtree` (lib test) generated 24 warnings (24 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/dmtree-d41c7c01d39010ff)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test augmented_node::test::test_verify_merkle_proof_for_valid_item_node_in_root ... ok
[INFO] [stdout] test augmented_node::test::test_verify_origin_fails_for_wrong_key ... ok
[INFO] [stdout] test augmented_node::test::test_verify_origin ... ok
[INFO] [stdout] test augmented_node::test::test_get_group_node ... ok
[INFO] [stdout] test augmented_node::test::test_init_node ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests dmtree
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3ebd6006c74cb1fb26732b0a3909b90699ea44448aa730107f59517e22516085", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ebd6006c74cb1fb26732b0a3909b90699ea44448aa730107f59517e22516085", kill_on_drop: false }`
[INFO] [stdout] 3ebd6006c74cb1fb26732b0a3909b90699ea44448aa730107f59517e22516085
