[INFO] cloning repository https://github.com/tosichain/multithread-merkle-tree
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tosichain/multithread-merkle-tree" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ab2fdca5873b78ff9ce22cb58fcb488d2ca237d9
[INFO] checking tosichain/multithread-merkle-tree against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tosichain/multithread-merkle-tree
[INFO] finished tweaking git repo https://github.com/tosichain/multithread-merkle-tree
[INFO] tweaked toml for git repo https://github.com/tosichain/multithread-merkle-tree written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tosichain/multithread-merkle-tree on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tosichain/multithread-merkle-tree 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded borsh v0.10.2
[INFO] [stderr]   Downloaded rust_decimal_macros v1.28.1
[INFO] [stderr]   Downloaded borsh-schema-derive-internal v0.10.2
[INFO] [stderr]   Downloaded clap_lex v0.3.3
[INFO] [stderr]   Downloaded rkyv_derive v0.7.40
[INFO] [stderr]   Downloaded sscanf_macro v0.4.0
[INFO] [stderr]   Downloaded is-terminal v0.4.5
[INFO] [stderr]   Downloaded parse-display v0.6.0
[INFO] [stderr]   Downloaded sscanf v0.4.0
[INFO] [stderr]   Downloaded structmeta-derive v0.1.6
[INFO] [stderr]   Downloaded borsh-derive-internal v0.10.2
[INFO] [stderr]   Downloaded os_str_bytes v6.5.0
[INFO] [stderr]   Downloaded enum_dispatch v0.3.11
[INFO] [stderr]   Downloaded borsh-derive v0.10.2
[INFO] [stderr]   Downloaded fs4 v0.6.3
[INFO] [stderr]   Downloaded bitflags v2.0.2
[INFO] [stderr]   Downloaded parse-display-derive v0.6.0
[INFO] [stderr]   Downloaded io-lifetimes v0.7.5
[INFO] [stderr]   Downloaded fmmap v0.3.2
[INFO] [stderr]   Downloaded memmapix v0.6.3
[INFO] [stderr]   Downloaded rkyv v0.7.40
[INFO] [stderr]   Downloaded rust_decimal v1.28.1
[INFO] [stderr]   Downloaded structmeta v0.1.6
[INFO] [stderr]   Downloaded clap v4.1.11
[INFO] [stderr]   Downloaded rustix v0.35.13
[INFO] [stderr]   Downloaded linux-raw-sys v0.0.46
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 88c3622b311d24c2d177761ba2bf869df3e4a7a8bf70c385746ac7587a349401
[INFO] running `Command { std: "docker" "start" "-a" "88c3622b311d24c2d177761ba2bf869df3e4a7a8bf70c385746ac7587a349401", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "88c3622b311d24c2d177761ba2bf869df3e4a7a8bf70c385746ac7587a349401", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88c3622b311d24c2d177761ba2bf869df3e4a7a8bf70c385746ac7587a349401", kill_on_drop: false }`
[INFO] [stdout] 88c3622b311d24c2d177761ba2bf869df3e4a7a8bf70c385746ac7587a349401
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7c40c1bfb099322dca0c6b0dc55229938c3a98867f43d85231aee01c3643d4d
[INFO] running `Command { std: "docker" "start" "-a" "f7c40c1bfb099322dca0c6b0dc55229938c3a98867f43d85231aee01c3643d4d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.52
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling io-lifetimes v0.7.5
[INFO] [stderr]    Compiling regex-syntax v0.6.28
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling rustix v0.35.13
[INFO] [stderr]    Compiling io-lifetimes v1.0.9
[INFO] [stderr]     Checking linux-raw-sys v0.0.46
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling rustix v0.36.11
[INFO] [stderr]    Compiling once_cell v1.17.1
[INFO] [stderr]     Checking regex v1.7.1
[INFO] [stderr]     Checking linux-raw-sys v0.1.4
[INFO] [stderr]    Compiling rust_decimal v1.28.1
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling arrayvec v0.7.2
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]     Checking os_str_bytes v6.5.0
[INFO] [stderr]     Checking bitflags v2.0.2
[INFO] [stderr]     Checking either v1.8.1
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]     Checking keccak v0.1.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.7
[INFO] [stderr]     Checking sha3 v0.10.6
[INFO] [stderr]     Checking clap_lex v0.3.3
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.29
[INFO] [stderr]     Checking const_format v0.2.30
[INFO] [stderr]    Compiling rust_decimal_macros v1.28.1
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking memmapix v0.6.3
[INFO] [stderr]     Checking fs4 v0.6.3
[INFO] [stderr]     Checking is-terminal v0.4.5
[INFO] [stderr]     Checking clap v4.1.11
[INFO] [stderr]    Compiling structmeta-derive v0.1.6
[INFO] [stderr]    Compiling enum_dispatch v0.3.11
[INFO] [stderr]    Compiling sscanf_macro v0.4.0
[INFO] [stderr]     Checking sscanf v0.4.0
[INFO] [stderr]    Compiling structmeta v0.1.6
[INFO] [stderr]    Compiling parse-display-derive v0.6.0
[INFO] [stderr]     Checking parse-display v0.6.0
[INFO] [stderr]     Checking fmmap v0.3.2
[INFO] [stderr]     Checking merkle-tree-hash v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]    --> src/back_merkle_tree.rs:135:19
[INFO] [stdout]     |
[INFO] [stdout] 135 |         #[cfg(not(feature = "ndebug"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `ndebug` 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: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/complete_merkle_tree.rs:76:92
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone())));
[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] 76 -                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone())));
[INFO] [stdout] 76 +                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push(Box::new(*hash.clone()) );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/full_merkle_tree.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[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::sync::Arc`
[INFO] [stdout]   --> src/full_merkle_tree.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/full_merkle_tree.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]   --> src/full_merkle_tree.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |         #[cfg(not(feature = "ndebug"))] {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `ndebug` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 |     #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/machine_merkle_tree.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{DerefMut, Deref};
[INFO] [stdout]   |                ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 67 |             #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         while true {
[INFO] [stdout]     |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 409 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:417:15
[INFO] [stdout]     |
[INFO] [stdout] 417 |         #[cfg(feature = "merkle_dump_stats")] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:425:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |         #[cfg(feature = "merkle_dump_stats")] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 541 |         #[cfg(not(feature = "ndebug"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `ndebug` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/merkle_tree_proof.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 |             if (bit) {
[INFO] [stdout]    |                ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 90 -             if (bit) {
[INFO] [stdout] 90 +             if bit  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/merkle_tree_proof.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if (bit) {
[INFO] [stdout]     |                ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 108 -             if (bit) {
[INFO] [stdout] 108 +             if bit  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::complete_merkle_tree::*`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::complete_merkle_tree::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::full_merkle_tree::*`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::full_merkle_tree::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine_merkle_tree::MachineMerkleTree`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::machine_merkle_tree::MachineMerkleTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]    --> src/back_merkle_tree.rs:135:19
[INFO] [stdout]     |
[INFO] [stdout] 135 |         #[cfg(not(feature = "ndebug"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `ndebug` 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: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/complete_merkle_tree.rs:76:92
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone())));
[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] 76 -                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone())));
[INFO] [stdout] 76 +                 self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push(Box::new(*hash.clone()) );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/full_merkle_tree.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[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::sync::Arc`
[INFO] [stdout]   --> src/full_merkle_tree.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/full_merkle_tree.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]   --> src/full_merkle_tree.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |         #[cfg(not(feature = "ndebug"))] {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `ndebug` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 |     #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/machine_merkle_tree.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{DerefMut, Deref};
[INFO] [stdout]   |                ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 67 |             #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]   --> src/machine_merkle_tree.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |         while true {
[INFO] [stdout]     |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 409 |         #[cfg(feature = "merkle_dump_stats")]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:417:15
[INFO] [stdout]     |
[INFO] [stdout] 417 |         #[cfg(feature = "merkle_dump_stats")] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:425:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |         #[cfg(feature = "merkle_dump_stats")] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `merkle_dump_stats` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 541 |         #[cfg(not(feature = "ndebug"))]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `ndebug` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/merkle_tree_proof.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 |             if (bit) {
[INFO] [stdout]    |                ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 90 -             if (bit) {
[INFO] [stdout] 90 +             if bit  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/merkle_tree_proof.rs:108:16
[INFO] [stdout]     |
[INFO] [stdout] 108 |             if (bit) {
[INFO] [stdout]     |                ^   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 108 -             if (bit) {
[INFO] [stdout] 108 +             if bit  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::complete_merkle_tree::*`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::complete_merkle_tree::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::full_merkle_tree::*`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::full_merkle_tree::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine_merkle_tree::MachineMerkleTree`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::machine_merkle_tree::MachineMerkleTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `child` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:168:53
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut child: Option<*mut Box<TreeNode>> = None;
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for i in 0..MachineMerkleTree::get_log2_root_size() - log2_size {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hash` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 hash = curr_hash;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hash` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                 let mut hash: HashType = Default::default();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/merkle_tree_hash.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut res = strl.clone();
[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: `val`
[INFO] [stdout]   --> src/merkle_tree_hash.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/merkle_tree_hash.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let end: isize = 0;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let mut leaf_hash: Box<Vec<u8>>;
[INFO] [stdout]     |                     ----^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut input_name: String = matches.get_one::<String>("input").unwrap().clone();
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut file = Arc::new(MmapFile::open(input_name.clone()).unwrap());
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]   --> src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let now = Instant::now();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type HashType = Box<Vec<u8>>;
[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 `HasherType` is never used
[INFO] [stdout]   --> src/main.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type HasherType = sha3::Keccak256;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/back_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_next_leaf_proof` is never used
[INFO] [stdout]    --> src/back_merkle_tree.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl BackMerkleTree {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_next_leaf_proof(&self) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/complete_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LevelType` is never used
[INFO] [stdout]   --> src/complete_merkle_tree.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type LevelType = Vec<HashType>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompleteMerkleTree` is never constructed
[INFO] [stdout]   --> src/complete_merkle_tree.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CompleteMerkleTree {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `child` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:168:53
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut child: Option<*mut Box<TreeNode>> = None;
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/complete_merkle_tree.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl CompleteMerkleTree {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  22 |     pub fn complete_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn get_root_hash(&mut self) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const fn get_log2_leaf_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn get_proof(&mut self, address: AddressType, log2_size: isize) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn push_back(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn get_node_hash(&mut self, address: AddressType, log2_size: isize) -> HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn bubble_up(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn get_level(&self, log2_size: isize) -> LevelType {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn get_level_mut(&mut self, log2_size: isize) -> &mut LevelType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/full_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FullMerkleTree` is never constructed
[INFO] [stdout]   --> src/full_merkle_tree.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct FullMerkleTree {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/full_merkle_tree.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl FullMerkleTree {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  25 |
[INFO] [stdout]  26 |     pub fn full_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn full_merkle_tree_with_leaves(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize, leaves: &Ve...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     const fn get_log2_leaf_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn get_root_hash(&self) -> &HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn get_node_hash(&self, address: AddressType, log2_size: isize) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     const fn left_child_index(index: isize) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     const fn right_child_index(index: isize) -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get_proof(&self, address: AddressType, log2_size: isize) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn init_pristine_subtree(&mut self, pristine: &PristineMerkleTree, index: isize, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn init_subtree(&mut self, h: &mut HasherType, index: isize, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn init_tree(&mut self, pristine: &PristineMerkleTree, leaves: &Vec<HashType>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn get_node_index(&self, address: AddressType, log2_size: isize) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type AddressType = u64;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type HasherType = sha3::Keccak256;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_ROOT_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const LOG2_ROOT_SIZE: isize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_WORD_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const LOG2_WORD_SIZE: isize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const LOG2_PAGE_SIZE: isize = 12;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_PAGE_INDEX_MASK` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const M_PAGE_INDEX_MASK: AddressType = ((!0u64) >> (64 - LOG2_ROOT_SIZE)) << LOG2_PAGE_SIZE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_PAGE_OFFSET_MASK` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const M_PAGE_OFFSET_MASK: AddressType = !M_PAGE_INDEX_MASK;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MachineMerkleTree` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MachineMerkleTree{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MRootStorage` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct  MRootStorage {
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `destroy_merkle_tree`, `destroy_merkle_tree_node`, and `destroy_node` are never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MRootStorage {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 51 |     pub fn destroy_merkle_tree(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |        fn destroy_merkle_tree_node(&self, node: Option<&*mut Box<TreeNode>>, log2_size: isize) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn destroy_node(&mut self, node: *mut Box<TreeNode>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct TreeNode{
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/machine_merkle_tree.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl <'a> MachineMerkleTree {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |     fn pristine_hashes() -> PristineMerkleTree {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     const fn get_log2_root_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     const fn get_log2_word_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn get_page_index(address: AddressType) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     const fn get_log2_page_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn get_page_node(&mut self, page_index: AddressType) -> Option<*mut Box<TreeNode>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_offset_in_page(address: AddressType) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn set_page_node_map(&mut self, page_index: AddressType, node: *mut Box<TreeNode>) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn create_node(&mut self) -> Option<*mut Box<TreeNode>>{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn new_page_node(&mut self, page_index: AddressType) -> Option<*mut Box<TreeNode>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn get_page_node_hash_start(&self, h: &mut HasherType, start: *mut u8, log2_size: isize, hash: &mut HashType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn get_page_node_hash(&self, h: &mut HasherType, page_data: *mut u8, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn get_page_node_hash_address(&mut self, page_index: AddressType, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn get_child_hash(&self, child_log2_size: isize, node: *mut Box<TreeNode>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn update_inner_node_hash(&self, h: &mut HasherType, log2_size: isize, node: *mut Box<TreeNode>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn dump_hash(hash: &HashType) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn get_pristine_hash(log2_size: isize) -> HashType{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn dump_merkle_tree(&self, node: Option<&*mut Box<TreeNode>>, address: u64, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     fn get_inside_page_sibling_hashes_h(&self, h: &mut HasherType, address: AddressType, log2_size: isize,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn get_inside_page_sibling_hashes(&self, address: AddressType, log2_size: isize, hash: &mut HashType,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn dump_merkle_tree_empty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn begin_update(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn update_page_node_hash(&mut self, page_index: AddressType, hash: &HashType) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     pub fn end_update(&mut self, h: &mut HasherType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn machine_merkle_tree_initialization(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn machine_merkle_tree(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn get_root_hash(&self, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub fn verify_tree(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn verify_tree_with_arguments(&self, h: &mut HasherType, node: *mut Box<TreeNode>, log2_size: isize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn get_proof(&self, target_address: AddressType, log2_target_size: isize,
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stringval` is never used
[INFO] [stdout]  --> src/merkle_tree_hash.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn stringval(pre: String, strl: String, val: &mut String) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intval` is never used
[INFO] [stdout]   --> src/merkle_tree_hash.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_hash` is never used
[INFO] [stdout]   --> src/merkle_tree_hash.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn read_hash(f: File) -> Option<HashType> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `help` is never used
[INFO] [stdout]    --> src/merkle_tree_hash.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn help(name: &mut str) {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MerkleTreeProof` is never constructed
[INFO] [stdout]   --> src/merkle_tree_proof.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct MerkleTreeProof{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/machine_merkle_tree.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for i in 0..MachineMerkleTree::get_log2_root_size() - log2_size {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/merkle_tree_proof.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl MerkleTreeProof{
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout]  20 |
[INFO] [stdout]  21 |     pub fn merkle_tree_proof(&mut self, log2_root_size: isize, log2_target_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub const fn get_log2_target_size(&self) -> isize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn set_target_address(&mut self, target_address: AddressType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn get_target_address(&self) -> &AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn set_target_hash(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn get_target_hash(&self) -> &HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn set_root_hash(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn get_root_hash(&self) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     fn get_sibling_hash(&self, log2_size: isize) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn set_sibling_hash(&mut self, hash: &HashType, log2_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn verify(&mut self, h: &mut HasherType) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn bubble_up(&self, h: &mut HasherType, new_target_hash: &HashType) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn bubble_up_self(&mut self, h: &mut HasherType) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn slice(&mut self, h: &mut HasherType, new_log2_root_size: isize,
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn log2_size_to_index(&self, log2_size: isize) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hash` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 hash = curr_hash;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hash` is never read
[INFO] [stdout]    --> src/machine_merkle_tree.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                 let mut hash: HashType = Default::default();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/merkle_tree_hash.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut res = strl.clone();
[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: `val`
[INFO] [stdout]   --> src/merkle_tree_hash.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/merkle_tree_hash.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let end: isize = 0;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/complete_merkle_tree.rs:109:27
[INFO] [stdout]     |
[INFO] [stdout] 109 |         if address < level.clone().len() as u64{
[INFO] [stdout]     |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[Box<Vec<u8>>]` does not implement `Clone`, so calling `clone` on `&[Box<Vec<u8>>]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/machine_merkle_tree.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |             &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap()));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |             let _ = &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap()));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let mut leaf_hash: Box<Vec<u8>>;
[INFO] [stdout]     |                     ----^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut input_name: String = matches.get_one::<String>("input").unwrap().clone();
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut file = Arc::new(MmapFile::open(input_name.clone()).unwrap());
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]   --> src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let now = Instant::now();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type HashType = Box<Vec<u8>>;
[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 `HasherType` is never used
[INFO] [stdout]   --> src/main.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type HasherType = sha3::Keccak256;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/back_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_next_leaf_proof` is never used
[INFO] [stdout]    --> src/back_merkle_tree.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl BackMerkleTree {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_next_leaf_proof(&self) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/complete_merkle_tree.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/complete_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LevelType` is never used
[INFO] [stdout]   --> src/complete_merkle_tree.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type LevelType = Vec<HashType>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompleteMerkleTree` is never constructed
[INFO] [stdout]   --> src/complete_merkle_tree.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CompleteMerkleTree {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/complete_merkle_tree.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl CompleteMerkleTree {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  22 |     pub fn complete_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub fn get_root_hash(&mut self) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const fn get_log2_leaf_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub fn get_proof(&mut self, address: AddressType, log2_size: isize) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn push_back(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn get_node_hash(&mut self, address: AddressType, log2_size: isize) -> HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn bubble_up(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn get_level(&self, log2_size: isize) -> LevelType {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn get_level_mut(&mut self, log2_size: isize) -> &mut LevelType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/full_merkle_tree.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/full_merkle_tree.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FullMerkleTree` is never constructed
[INFO] [stdout]   --> src/full_merkle_tree.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct FullMerkleTree {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/full_merkle_tree.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl FullMerkleTree {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  25 |
[INFO] [stdout]  26 |     pub fn full_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn full_merkle_tree_with_leaves(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize, leaves: &Ve...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     const fn get_log2_leaf_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn get_root_hash(&self) -> &HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn get_node_hash(&self, address: AddressType, log2_size: isize) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     const fn left_child_index(index: isize) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     const fn right_child_index(index: isize) -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get_proof(&self, address: AddressType, log2_size: isize) -> ProofType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn init_pristine_subtree(&mut self, pristine: &PristineMerkleTree, index: isize, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn init_subtree(&mut self, h: &mut HasherType, index: isize, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn init_tree(&mut self, pristine: &PristineMerkleTree, leaves: &Vec<HashType>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn get_node_index(&self, address: AddressType, log2_size: isize) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type AddressType = u64;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type HasherType = sha3::Keccak256;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProofType` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type ProofType = MerkleTreeProof;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_ROOT_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const LOG2_ROOT_SIZE: isize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_WORD_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const LOG2_WORD_SIZE: isize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOG2_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const LOG2_PAGE_SIZE: isize = 12;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_PAGE_INDEX_MASK` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const M_PAGE_INDEX_MASK: AddressType = ((!0u64) >> (64 - LOG2_ROOT_SIZE)) << LOG2_PAGE_SIZE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_PAGE_OFFSET_MASK` is never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const M_PAGE_OFFSET_MASK: AddressType = !M_PAGE_INDEX_MASK;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MachineMerkleTree` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct MachineMerkleTree{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MRootStorage` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct  MRootStorage {
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `destroy_merkle_tree`, `destroy_merkle_tree_node`, and `destroy_node` are never used
[INFO] [stdout]   --> src/machine_merkle_tree.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MRootStorage {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 51 |     pub fn destroy_merkle_tree(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |        fn destroy_merkle_tree_node(&self, node: Option<&*mut Box<TreeNode>>, log2_size: isize) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn destroy_node(&mut self, node: *mut Box<TreeNode>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeNode` is never constructed
[INFO] [stdout]   --> src/machine_merkle_tree.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct TreeNode{
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/machine_merkle_tree.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl <'a> MachineMerkleTree {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |     fn pristine_hashes() -> PristineMerkleTree {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     const fn get_log2_root_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     const fn get_log2_word_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn get_page_index(address: AddressType) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     const fn get_log2_page_size() -> isize{
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn get_page_node(&mut self, page_index: AddressType) -> Option<*mut Box<TreeNode>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_offset_in_page(address: AddressType) -> AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn set_page_node_map(&mut self, page_index: AddressType, node: *mut Box<TreeNode>) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn create_node(&mut self) -> Option<*mut Box<TreeNode>>{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn new_page_node(&mut self, page_index: AddressType) -> Option<*mut Box<TreeNode>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn get_page_node_hash_start(&self, h: &mut HasherType, start: *mut u8, log2_size: isize, hash: &mut HashType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn get_page_node_hash(&self, h: &mut HasherType, page_data: *mut u8, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn get_page_node_hash_address(&mut self, page_index: AddressType, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn get_child_hash(&self, child_log2_size: isize, node: *mut Box<TreeNode>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn update_inner_node_hash(&self, h: &mut HasherType, log2_size: isize, node: *mut Box<TreeNode>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn dump_hash(hash: &HashType) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn get_pristine_hash(log2_size: isize) -> HashType{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn dump_merkle_tree(&self, node: Option<&*mut Box<TreeNode>>, address: u64, log2_size: isize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     fn get_inside_page_sibling_hashes_h(&self, h: &mut HasherType, address: AddressType, log2_size: isize,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     fn get_inside_page_sibling_hashes(&self, address: AddressType, log2_size: isize, hash: &mut HashType,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn dump_merkle_tree_empty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn begin_update(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn update_page_node_hash(&mut self, page_index: AddressType, hash: &HashType) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     pub fn end_update(&mut self, h: &mut HasherType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn machine_merkle_tree_initialization(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn machine_merkle_tree(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn get_root_hash(&self, hash: &mut HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub fn verify_tree(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn verify_tree_with_arguments(&self, h: &mut HasherType, node: *mut Box<TreeNode>, log2_size: isize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn get_proof(&self, target_address: AddressType, log2_target_size: isize,
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stringval` is never used
[INFO] [stdout]  --> src/merkle_tree_hash.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn stringval(pre: String, strl: String, val: &mut String) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intval` is never used
[INFO] [stdout]   --> src/merkle_tree_hash.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_hash` is never used
[INFO] [stdout]   --> src/merkle_tree_hash.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn read_hash(f: File) -> Option<HashType> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `help` is never used
[INFO] [stdout]    --> src/merkle_tree_hash.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn help(name: &mut str) {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AddressType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type AddressType = u64;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HashType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type HashType = Box<Vec<u8>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HasherType` is never used
[INFO] [stdout]  --> src/merkle_tree_proof.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type HasherType = sha3::Keccak256;
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MerkleTreeProof` is never constructed
[INFO] [stdout]   --> src/merkle_tree_proof.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct MerkleTreeProof{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/merkle_tree_proof.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl MerkleTreeProof{
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout]  20 |
[INFO] [stdout]  21 |     pub fn merkle_tree_proof(&mut self, log2_root_size: isize, log2_target_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     const fn get_log2_root_size(&self) -> isize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     pub const fn get_log2_target_size(&self) -> isize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn set_target_address(&mut self, target_address: AddressType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn get_target_address(&self) -> &AddressType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn set_target_hash(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn get_target_hash(&self) -> &HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn set_root_hash(&mut self, hash: &HashType) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn get_root_hash(&self) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     fn get_sibling_hash(&self, log2_size: isize) -> &HashType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn set_sibling_hash(&mut self, hash: &HashType, log2_size: isize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn verify(&mut self, h: &mut HasherType) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn bubble_up(&self, h: &mut HasherType, new_target_hash: &HashType) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn bubble_up_self(&mut self, h: &mut HasherType) -> HashType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn slice(&mut self, h: &mut HasherType, new_log2_root_size: isize,
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn log2_size_to_index(&self, log2_size: isize) -> isize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/complete_merkle_tree.rs:109:27
[INFO] [stdout]     |
[INFO] [stdout] 109 |         if address < level.clone().len() as u64{
[INFO] [stdout]     |                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[Box<Vec<u8>>]` does not implement `Clone`, so calling `clone` on `&[Box<Vec<u8>>]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/machine_merkle_tree.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |             &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap()));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |             let _ = &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap()));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.48s
[INFO] running `Command { std: "docker" "inspect" "f7c40c1bfb099322dca0c6b0dc55229938c3a98867f43d85231aee01c3643d4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7c40c1bfb099322dca0c6b0dc55229938c3a98867f43d85231aee01c3643d4d", kill_on_drop: false }`
[INFO] [stdout] f7c40c1bfb099322dca0c6b0dc55229938c3a98867f43d85231aee01c3643d4d
