[INFO] fetching crate merklebtree 0.1.5...
[INFO] testing merklebtree-0.1.5 against beta-2023-04-20 for beta-1.70-1
[INFO] extracting crate merklebtree 0.1.5 into /workspace/builds/worker-1-tc2/source
[INFO] validating manifest of crates.io crate merklebtree 0.1.5 on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate merklebtree 0.1.5
[INFO] finished tweaking crates.io crate merklebtree 0.1.5
[INFO] tweaked toml for crates.io crate merklebtree 0.1.5 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate crates.io crate merklebtree 0.1.5 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" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.52
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.52
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.52
[INFO] [stderr]   Downloaded js-sys v0.3.29
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.52
[INFO] [stderr]   Downloaded unicode-segmentation v1.3.0
[INFO] [stderr]   Downloaded web-sys v0.3.29
[INFO] [stderr]   Downloaded wasm-bindgen-webidl v0.2.52
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.52
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3db22711cf8e1b069a55753c45270b32051b02ab933edd77db41efdbf65e71c2
[INFO] running `Command { std: "docker" "start" "-a" "3db22711cf8e1b069a55753c45270b32051b02ab933edd77db41efdbf65e71c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3db22711cf8e1b069a55753c45270b32051b02ab933edd77db41efdbf65e71c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3db22711cf8e1b069a55753c45270b32051b02ab933edd77db41efdbf65e71c2", kill_on_drop: false }`
[INFO] [stdout] 3db22711cf8e1b069a55753c45270b32051b02ab933edd77db41efdbf65e71c2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 444befcc61e90f86161dcb70d91c30cd35ba567af3c04198a362a0bfbb5e52ac
[INFO] running `Command { std: "docker" "start" "-a" "444befcc61e90f86161dcb70d91c30cd35ba567af3c04198a362a0bfbb5e52ac", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.7
[INFO] [stderr]    Compiling serde v1.0.102
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling cc v1.0.46
[INFO] [stderr]    Compiling libc v0.2.65
[INFO] [stderr]    Compiling itoa v0.4.4
[INFO] [stderr]    Compiling untrusted v0.7.0
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling hex v0.4.0
[INFO] [stderr]    Compiling ring v0.16.9
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling serde_derive v1.0.102
[INFO] [stderr]    Compiling serde_json v1.0.41
[INFO] [stderr]    Compiling merklebtree v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stdout]  --> src/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/node.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_leaf`
[INFO] [stdout]  --> src/merklebtree.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::node::{calculate_hash, is_leaf};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`
[INFO] [stdout]  --> src/merklebtree.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/iterator.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `position` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum position {
[INFO] [stdout]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `Position`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `begin` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     begin,
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to upper camel case: `Begin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `between` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     between,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `Between`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `end` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     end,
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case: `End`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `btree_iterator` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct btree_iterator<'a, T>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BtreeIterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/sgxdb.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:478:13
[INFO] [stdout]     |
[INFO] [stdout] 478 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:507:13
[INFO] [stdout]     |
[INFO] [stdout] 507 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/merklebtree.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |         for (i, j) in self.nodes_map.iter() {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_in_clone`
[INFO] [stdout]    --> src/merklebtree.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let node_in_clone = nodes_clone.nodes_map.get(&node.node_id).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_in_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:280:29
[INFO] [stdout]     |
[INFO] [stdout] 280 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:297:29
[INFO] [stdout]     |
[INFO] [stdout] 297 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:579:13
[INFO] [stdout]     |
[INFO] [stdout] 579 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:622:13
[INFO] [stdout]     |
[INFO] [stdout] 622 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verify_result`
[INFO] [stdout]    --> src/sgxdb.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/node.rs:594:16
[INFO] [stdout]     |
[INFO] [stdout] 594 |             Ok(mut t) => {
[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/merklebtree.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let mut pre_not_existed = node::insert(a, value, nodes.m, nodes);
[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/merklebtree.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |             let mut pre_not_existed = clone_insert(a, value, nodes.m, nodes, &mut clone_nodes);
[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/merklebtree.rs:429:31
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:437:17
[INFO] [stdout]     |
[INFO] [stdout] 437 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/merklebtree.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:470:17
[INFO] [stdout]     |
[INFO] [stdout] 470 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/iterator.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     mut btree_iterator: &mut btree_iterator<T>,
[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/iterator.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub fn item<T>(mut btree_iterator: &mut btree_iterator<T>) -> T
[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/iterator.rs:370:20
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub fn contents<T>(mut btree_iterator: &mut btree_iterator<T>) -> Vec<T>
[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/sgxdb.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/sgxdb.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/sgxdb.rs:773:16
[INFO] [stdout]     |
[INFO] [stdout] 773 |             Ok(mut t) => {
[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/sgxdb.rs:822:9
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[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/sgxdb.rs:826:9
[INFO] [stdout]     |
[INFO] [stdout] 826 |     let mut compute_hash;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `leftItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:429:12
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^ help: convert the identifier to snake case: `left_item`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rightItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to snake case: `right_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:258:16
[INFO] [stdout]     |
[INFO] [stdout] 258 |             if index - 1 >= 0 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:302:28
[INFO] [stdout]     |
[INFO] [stdout] 302 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 49 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 17.28s
[INFO] running `Command { std: "docker" "inspect" "444befcc61e90f86161dcb70d91c30cd35ba567af3c04198a362a0bfbb5e52ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "444befcc61e90f86161dcb70d91c30cd35ba567af3c04198a362a0bfbb5e52ac", kill_on_drop: false }`
[INFO] [stdout] 444befcc61e90f86161dcb70d91c30cd35ba567af3c04198a362a0bfbb5e52ac
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eb429c6874d16ec7d65c71aa089c0146176eb99e2c73714e1a054c8ef27e0c2e
[INFO] running `Command { std: "docker" "start" "-a" "eb429c6874d16ec7d65c71aa089c0146176eb99e2c73714e1a054c8ef27e0c2e", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stdout]  --> src/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/node.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_leaf`
[INFO] [stdout]  --> src/merklebtree.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::node::{calculate_hash, is_leaf};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`
[INFO] [stdout]  --> src/merklebtree.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/iterator.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `position` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum position {
[INFO] [stdout]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `Position`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `begin` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     begin,
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to upper camel case: `Begin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `between` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     between,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `Between`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `end` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     end,
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case: `End`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `btree_iterator` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct btree_iterator<'a, T>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BtreeIterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/sgxdb.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:478:13
[INFO] [stdout]     |
[INFO] [stdout] 478 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:507:13
[INFO] [stdout]     |
[INFO] [stdout] 507 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/merklebtree.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |         for (i, j) in self.nodes_map.iter() {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_in_clone`
[INFO] [stdout]    --> src/merklebtree.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let node_in_clone = nodes_clone.nodes_map.get(&node.node_id).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_in_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:280:29
[INFO] [stdout]     |
[INFO] [stdout] 280 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:297:29
[INFO] [stdout]     |
[INFO] [stdout] 297 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:579:13
[INFO] [stdout]     |
[INFO] [stdout] 579 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling merklebtree v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:622:13
[INFO] [stdout]     |
[INFO] [stdout] 622 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verify_result`
[INFO] [stdout]    --> src/sgxdb.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/node.rs:594:16
[INFO] [stdout]     |
[INFO] [stdout] 594 |             Ok(mut t) => {
[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/merklebtree.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let mut pre_not_existed = node::insert(a, value, nodes.m, nodes);
[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/merklebtree.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |             let mut pre_not_existed = clone_insert(a, value, nodes.m, nodes, &mut clone_nodes);
[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/merklebtree.rs:429:31
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:437:17
[INFO] [stdout]     |
[INFO] [stdout] 437 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/merklebtree.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:470:17
[INFO] [stdout]     |
[INFO] [stdout] 470 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/iterator.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     mut btree_iterator: &mut btree_iterator<T>,
[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/iterator.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub fn item<T>(mut btree_iterator: &mut btree_iterator<T>) -> T
[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/iterator.rs:370:20
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub fn contents<T>(mut btree_iterator: &mut btree_iterator<T>) -> Vec<T>
[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/sgxdb.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/sgxdb.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/sgxdb.rs:773:16
[INFO] [stdout]     |
[INFO] [stdout] 773 |             Ok(mut t) => {
[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/sgxdb.rs:822:9
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[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/sgxdb.rs:826:9
[INFO] [stdout]     |
[INFO] [stdout] 826 |     let mut compute_hash;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `leftItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:429:12
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^ help: convert the identifier to snake case: `left_item`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rightItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to snake case: `right_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:258:16
[INFO] [stdout]     |
[INFO] [stdout] 258 |             if index - 1 >= 0 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:302:28
[INFO] [stdout]     |
[INFO] [stdout] 302 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 49 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> tests/test_branch_clone.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> tests/test_branch_clone.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest`
[INFO] [stdout]   --> tests/test_branch_clone.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ring::digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::traits::CalculateHash`
[INFO] [stdout]  --> tests/test_persistence.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use merklebtree::traits::CalculateHash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde`
[INFO] [stdout]  --> tests/test_persistence.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> tests/test_persistence.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> tests/test_branch_clone.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> tests/test_branch_clone.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]   --> tests/test_branch_clone.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> tests/test_branch_clone.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let (value, found) = subtree.get(Item3 { key: -4 }, &mut subnodes);
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> tests/test_branch_clone.rs:222:14
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> tests/test_branch_clone.rs:222:23
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]    --> tests/test_branch_clone.rs:222:30
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> tests/test_branch_clone.rs:227:14
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> tests/test_branch_clone.rs:227:23
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> tests/test_branch_clone.rs:253:14
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> tests/test_branch_clone.rs:253:23
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]    --> tests/test_branch_clone.rs:253:30
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]    --> tests/test_branch_clone.rs:258:14
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> tests/test_branch_clone.rs:258:23
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]  --> examples/test_merkle.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ring::digest::Digest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_branch_clone.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_branch_clone.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:304:9
[INFO] [stdout]     |
[INFO] [stdout] 304 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[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]    --> tests/test_branch_clone.rs:335:9
[INFO] [stdout]     |
[INFO] [stdout] 335 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node` is never used
[INFO] [stdout]    --> tests/utils.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn assert_valid_tree_node(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stdout]  --> src/node.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/node.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> examples/test_btree.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let mut count = 0;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/node.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_leaf`
[INFO] [stdout]  --> src/merklebtree.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::node::{calculate_hash, is_leaf};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`
[INFO] [stdout]  --> src/merklebtree.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use core::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/iterator.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `position` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum position {
[INFO] [stdout]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `Position`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `begin` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     begin,
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to upper camel case: `Begin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `between` should have an upper camel case name
[INFO] [stdout]  --> src/iterator.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     between,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `Between`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `end` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     end,
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case: `End`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `btree_iterator` should have an upper camel case name
[INFO] [stdout]   --> src/iterator.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct btree_iterator<'a, T>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BtreeIterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/sgxdb.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 |     if (node_id == -1) {
[INFO] [stdout]     |        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -     if (node_id == -1) {
[INFO] [stdout] 352 +     if node_id == -1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/test_btree.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/test_btree.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let mut count = 0;
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/test_persistence.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     for i in 0..vec.len() {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> tests/test_iterator.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> tests/test_iterator.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> examples/test_sgxdb.rs:66:14
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> examples/test_sgxdb.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]   --> examples/test_sgxdb.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> examples/test_sgxdb.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> examples/test_sgxdb.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verify_result`
[INFO] [stdout]    --> examples/test_sgxdb.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut verify_result = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> tests/test_persistence.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         for j in 0..sub_vec.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/test_sgxdb.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/test_sgxdb.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut verify_result = false;
[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]    --> examples/test_sgxdb.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut compute_hash;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_subnodes_nodemap` is never used
[INFO] [stdout]    --> examples/test_sgxdb.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn print_subnodes_nodemap<T>(subnodes: &mut Nodes<T>)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_persistence.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/test_persistence.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut fin = BufReader::new(file);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node_item3` is never used
[INFO] [stdout]    --> tests/utils.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn assert_valid_tree_node_item3(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node_item4` is never used
[INFO] [stdout]    --> tests/utils.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub fn assert_valid_tree_node_item4(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test_persistence.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     f.write_all(message.as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let _ = f.write_all(message.as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test_persistence.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     f.write_all(String::from("\n").as_bytes());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let _ = f.write_all(String::from("\n").as_bytes());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 413 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 516 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 579 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 586 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:654:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 654 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:710:13
[INFO] [stdout]     |
[INFO] [stdout] 703 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 710 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:764:13
[INFO] [stdout]     |
[INFO] [stdout] 757 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 764 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:824:13
[INFO] [stdout]     |
[INFO] [stdout] 817 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 824 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> tests/test_iterator.rs:882:13
[INFO] [stdout]     |
[INFO] [stdout] 875 |             count => {
[INFO] [stdout]     |             ----- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 882 |             _ => {
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `actual_value` is never read
[INFO] [stdout]   --> tests/test_iterator.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let mut actual_value = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expect_value` is never read
[INFO] [stdout]   --> tests/test_iterator.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut expect_value = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `actual_value` is never read
[INFO] [stdout]   --> tests/test_iterator.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut actual_value = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> tests/test_iterator.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |             count => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> tests/test_iterator.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |             count => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> tests/test_iterator.rs:757:13
[INFO] [stdout]     |
[INFO] [stdout] 757 |             count => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> tests/test_iterator.rs:875:13
[INFO] [stdout]     |
[INFO] [stdout] 875 |             count => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:478:13
[INFO] [stdout]     |
[INFO] [stdout] 478 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:507:13
[INFO] [stdout]     |
[INFO] [stdout] 507 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/node.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/merklebtree.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |         for (i, j) in self.nodes_map.iter() {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_in_clone`
[INFO] [stdout]    --> src/merklebtree.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let node_in_clone = nodes_clone.nodes_map.get(&node.node_id).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_in_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:280:29
[INFO] [stdout]     |
[INFO] [stdout] 280 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_node`
[INFO] [stdout]    --> src/iterator.rs:297:29
[INFO] [stdout]     |
[INFO] [stdout] 297 |                         let current_node = btree_iterator
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:579:13
[INFO] [stdout]     |
[INFO] [stdout] 579 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:622:13
[INFO] [stdout]     |
[INFO] [stdout] 622 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/sgxdb.rs:634:13
[INFO] [stdout]     |
[INFO] [stdout] 634 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verify_result`
[INFO] [stdout]    --> src/sgxdb.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/node.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/node.rs:594:16
[INFO] [stdout]     |
[INFO] [stdout] 594 |             Ok(mut t) => {
[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/merklebtree.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut tree = MerkleBTree {
[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/merklebtree.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let mut pre_not_existed = node::insert(a, value, nodes.m, nodes);
[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/merklebtree.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |             let mut pre_not_existed = clone_insert(a, value, nodes.m, nodes, &mut clone_nodes);
[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/merklebtree.rs:429:31
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:437:17
[INFO] [stdout]     |
[INFO] [stdout] 437 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/merklebtree.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[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/merklebtree.rs:470:17
[INFO] [stdout]     |
[INFO] [stdout] 470 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/iterator.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     mut btree_iterator: &mut btree_iterator<T>,
[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/iterator.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub fn item<T>(mut btree_iterator: &mut btree_iterator<T>) -> T
[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/iterator.rs:370:20
[INFO] [stdout]     |
[INFO] [stdout] 370 | pub fn contents<T>(mut btree_iterator: &mut btree_iterator<T>) -> Vec<T>
[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/sgxdb.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[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/sgxdb.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[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/sgxdb.rs:773:16
[INFO] [stdout]     |
[INFO] [stdout] 773 |             Ok(mut t) => {
[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/sgxdb.rs:822:9
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut verify_result = false;
[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/sgxdb.rs:826:9
[INFO] [stdout]     |
[INFO] [stdout] 826 |     let mut compute_hash;
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `leftItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:429:12
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^ help: convert the identifier to snake case: `left_item`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rightItem` should have a snake case name
[INFO] [stdout]    --> src/merklebtree.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to snake case: `right_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:258:16
[INFO] [stdout]     |
[INFO] [stdout] 258 |             if index - 1 >= 0 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/iterator.rs:302:28
[INFO] [stdout]     |
[INFO] [stdout] 302 |                         if e - 1 >= 0 {
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_iterator.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_iterator.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:305:9
[INFO] [stdout]     |
[INFO] [stdout] 305 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:403:13
[INFO] [stdout]     |
[INFO] [stdout] 403 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:506:13
[INFO] [stdout]     |
[INFO] [stdout] 506 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:535:9
[INFO] [stdout]     |
[INFO] [stdout] 535 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:576:13
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:604:9
[INFO] [stdout]     |
[INFO] [stdout] 604 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:644:13
[INFO] [stdout]     |
[INFO] [stdout] 644 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:673:9
[INFO] [stdout]     |
[INFO] [stdout] 673 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:728:9
[INFO] [stdout]     |
[INFO] [stdout] 728 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:754:13
[INFO] [stdout]     |
[INFO] [stdout] 754 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/test_iterator.rs:783:9
[INFO] [stdout]     |
[INFO] [stdout] 783 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_iterator.rs:814:13
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:842:9
[INFO] [stdout]     |
[INFO] [stdout] 842 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_iterator.rs:872:13
[INFO] [stdout]     |
[INFO] [stdout] 872 |         let mut key = item(&mut btree_iterator).key;
[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]    --> tests/test_iterator.rs:901:9
[INFO] [stdout]     |
[INFO] [stdout] 901 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]    --> tests/test_iterator.rs:968:9
[INFO] [stdout]     |
[INFO] [stdout] 968 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]     --> tests/test_iterator.rs:1030:9
[INFO] [stdout]      |
[INFO] [stdout] 1030 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[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]     --> tests/test_iterator.rs:1082:9
[INFO] [stdout]      |
[INFO] [stdout] 1082 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> examples/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> examples/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> tests/test_put.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> tests/test_put.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest`
[INFO] [stdout]  --> tests/test_put.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ring::digest;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_id`
[INFO] [stdout]    --> examples/main.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let find_id = find_nodeid_by_branch(&branch, &nodes);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> examples/main.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let node = nodes.nodes_map.get(&1).unwrap();
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/main.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut branch = vec![0, 0, 0, 2];
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test2` is never used
[INFO] [stdout]    --> examples/main.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn test2() {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 49 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]    --> tests/test_put.rs:630:9
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let item = Item2 { key: 1, value: 2 };
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_put.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_put.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> tests/test_remove.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> tests/test_remove.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/test_put.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_put.rs:296:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_put.rs:378:9
[INFO] [stdout]     |
[INFO] [stdout] 378 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_put.rs:478:9
[INFO] [stdout]     |
[INFO] [stdout] 478 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node_item4` is never used
[INFO] [stdout]    --> tests/utils.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub fn assert_valid_tree_node_item4(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_remove.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_remove.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]   --> tests/test_remove.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]   --> tests/test_remove.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:340:9
[INFO] [stdout]     |
[INFO] [stdout] 340 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[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]    --> tests/test_remove.rs:396:17
[INFO] [stdout]     |
[INFO] [stdout] 396 |             let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[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]    --> tests/test_remove.rs:423:17
[INFO] [stdout]     |
[INFO] [stdout] 423 |             let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stdout]     |                 ----^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node` is never used
[INFO] [stdout]    --> tests/utils.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn assert_valid_tree_node(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_tree_node_item4` is never used
[INFO] [stdout]    --> tests/utils.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub fn assert_valid_tree_node_item4(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> tests/test_sgxdb_verification.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> tests/test_sgxdb_verification.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MerkleBTree`
[INFO] [stdout]  --> tests/utils.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merklebtree::node::Node`
[INFO] [stdout]  --> tests/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use merklebtree::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/utils.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest::Digest`
[INFO] [stdout]   --> tests/utils.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest::Digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ring::digest`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ring::digest;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:77:23
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `found`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_id`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:83:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `root_node` is never read
[INFO] [stdout]    --> tests/test_sgxdb_verification.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             root_node = Node::new_empty(0);
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_sgxdb_verification.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_subnodes_nodemap_existed` is never used
[INFO] [stdout]    --> tests/test_sgxdb_verification.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn print_subnodes_nodemap_existed<T>(subnodes: &mut Nodes<T>)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_subnodes_nodemap` is never used
[INFO] [stdout]    --> tests/test_sgxdb_verification.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn print_subnodes_nodemap<T>(subnodes: &mut Nodes<T>)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 46 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 4.63s
[INFO] [stdout] warning: 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "eb429c6874d16ec7d65c71aa089c0146176eb99e2c73714e1a054c8ef27e0c2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eb429c6874d16ec7d65c71aa089c0146176eb99e2c73714e1a054c8ef27e0c2e", kill_on_drop: false }`
[INFO] [stdout] eb429c6874d16ec7d65c71aa089c0146176eb99e2c73714e1a054c8ef27e0c2e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] de273619f52a4c3e6046ff2e38fdb3ca9eabd87f3e5dfa81d94036749f6f6ca9
[INFO] running `Command { std: "docker" "start" "-a" "de273619f52a4c3e6046ff2e38fdb3ca9eabd87f3e5dfa81d94036749f6f6ca9", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `core::borrow::BorrowMut`
[INFO] [stderr]  --> src/node.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use core::borrow::BorrowMut;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufRead`
[INFO] [stderr]  --> src/node.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::io::BufRead;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/node.rs:352:8
[INFO] [stderr]     |
[INFO] [stderr] 352 |     if (node_id == -1) {
[INFO] [stderr]     |        ^             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 352 -     if (node_id == -1) {
[INFO] [stderr] 352 +     if node_id == -1 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `is_leaf`
[INFO] [stderr]  --> src/merklebtree.rs:3:35
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::node::{calculate_hash, is_leaf};
[INFO] [stderr]   |                                   ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BorrowMut`, `Borrow`
[INFO] [stderr]  --> src/merklebtree.rs:6:20
[INFO] [stderr]   |
[INFO] [stderr] 6 | use core::borrow::{Borrow, BorrowMut};
[INFO] [stderr]   |                    ^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stderr]  --> src/iterator.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `position` should have an upper camel case name
[INFO] [stderr]  --> src/iterator.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum position {
[INFO] [stderr]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `Position`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `begin` should have an upper camel case name
[INFO] [stderr]  --> src/iterator.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     begin,
[INFO] [stderr]   |     ^^^^^ help: convert the identifier to upper camel case: `Begin`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `between` should have an upper camel case name
[INFO] [stderr]  --> src/iterator.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     between,
[INFO] [stderr]   |     ^^^^^^^ help: convert the identifier to upper camel case: `Between`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `end` should have an upper camel case name
[INFO] [stderr]   --> src/iterator.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     end,
[INFO] [stderr]    |     ^^^ help: convert the identifier to upper camel case: `End`
[INFO] [stderr] 
[INFO] [stderr] warning: type `btree_iterator` should have an upper camel case name
[INFO] [stderr]   --> src/iterator.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct btree_iterator<'a, T>
[INFO] [stderr]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BtreeIterator`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/sgxdb.rs:352:8
[INFO] [stderr]     |
[INFO] [stderr] 352 |     if (node_id == -1) {
[INFO] [stderr]     |        ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 352 -     if (node_id == -1) {
[INFO] [stderr] 352 +     if node_id == -1 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/node.rs:472:13
[INFO] [stderr]     |
[INFO] [stderr] 472 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/node.rs:478:13
[INFO] [stderr]     |
[INFO] [stderr] 478 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/node.rs:507:13
[INFO] [stderr]     |
[INFO] [stderr] 507 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/node.rs:514:13
[INFO] [stderr]     |
[INFO] [stderr] 514 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/merklebtree.rs:107:17
[INFO] [stderr]     |
[INFO] [stderr] 107 |         for (i, j) in self.nodes_map.iter() {
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_in_clone`
[INFO] [stderr]    --> src/merklebtree.rs:149:21
[INFO] [stderr]     |
[INFO] [stderr] 149 |                 let node_in_clone = nodes_clone.nodes_map.get(&node.node_id).unwrap();
[INFO] [stderr]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_in_clone`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `current_node`
[INFO] [stderr]    --> src/iterator.rs:280:29
[INFO] [stderr]     |
[INFO] [stderr] 280 |                         let current_node = btree_iterator
[INFO] [stderr]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `current_node`
[INFO] [stderr]    --> src/iterator.rs:297:29
[INFO] [stderr]     |
[INFO] [stderr] 297 |                         let current_node = btree_iterator
[INFO] [stderr]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_node`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/sgxdb.rs:568:13
[INFO] [stderr]     |
[INFO] [stderr] 568 |         for i in 0..right_sibling_node.content.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/sgxdb.rs:579:13
[INFO] [stderr]     |
[INFO] [stderr] 579 |         for i in 0..right_sibling_node.children_id.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/sgxdb.rs:622:13
[INFO] [stderr]     |
[INFO] [stderr] 622 |         for i in 0..left_sibling_node.content.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/sgxdb.rs:634:13
[INFO] [stderr]     |
[INFO] [stderr] 634 |         for i in 0..left_sibling_node.children_id.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `verify_result`
[INFO] [stderr]    --> src/sgxdb.rs:822:13
[INFO] [stderr]     |
[INFO] [stderr] 822 |     let mut verify_result = false;
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/node.rs:100:9
[INFO] [stderr]     |
[INFO] [stderr] 100 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/node.rs:356:9
[INFO] [stderr]     |
[INFO] [stderr] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/node.rs:594:16
[INFO] [stderr]     |
[INFO] [stderr] 594 |             Ok(mut t) => {
[INFO] [stderr]     |                ----^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:168:13
[INFO] [stderr]     |
[INFO] [stderr] 168 |         let mut tree = MerkleBTree {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |         let mut tree = MerkleBTree {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:211:17
[INFO] [stderr]     |
[INFO] [stderr] 211 |             let mut pre_not_existed = node::insert(a, value, nodes.m, nodes);
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:242:17
[INFO] [stderr]     |
[INFO] [stderr] 242 |             let mut pre_not_existed = clone_insert(a, value, nodes.m, nodes, &mut clone_nodes);
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:429:31
[INFO] [stderr]     |
[INFO] [stderr] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stderr]     |                               ----^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:437:17
[INFO] [stderr]     |
[INFO] [stderr] 437 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:462:32
[INFO] [stderr]     |
[INFO] [stderr] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stderr]     |                                ----^^^^^^^
[INFO] [stderr]     |                                |
[INFO] [stderr]     |                                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/merklebtree.rs:470:17
[INFO] [stderr]     |
[INFO] [stderr] 470 |             let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/iterator.rs:321:5
[INFO] [stderr]     |
[INFO] [stderr] 321 |     mut btree_iterator: &mut btree_iterator<T>,
[INFO] [stderr]     |     ----^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/iterator.rs:363:16
[INFO] [stderr]     |
[INFO] [stderr] 363 | pub fn item<T>(mut btree_iterator: &mut btree_iterator<T>) -> T
[INFO] [stderr]     |                ----^^^^^^^^^^^^^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/iterator.rs:370:20
[INFO] [stderr]     |
[INFO] [stderr] 370 | pub fn contents<T>(mut btree_iterator: &mut btree_iterator<T>) -> Vec<T>
[INFO] [stderr]     |                    ----^^^^^^^^^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/sgxdb.rs:282:9
[INFO] [stderr]     |
[INFO] [stderr] 282 |     let mut node = nodes.nodes_map.remove(&node_id).unwrap();
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/sgxdb.rs:356:9
[INFO] [stderr]     |
[INFO] [stderr] 356 |     let mut node = nodes.nodes_map.get(&node_id).unwrap();
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/sgxdb.rs:773:16
[INFO] [stderr]     |
[INFO] [stderr] 773 |             Ok(mut t) => {
[INFO] [stderr]     |                ----^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/sgxdb.rs:822:9
[INFO] [stderr]     |
[INFO] [stderr] 822 |     let mut verify_result = false;
[INFO] [stderr]     |         ----^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/sgxdb.rs:826:9
[INFO] [stderr]     |
[INFO] [stderr] 826 |     let mut compute_hash;
[INFO] [stderr]     |         ----^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method `leftItem` should have a snake case name
[INFO] [stderr]    --> src/merklebtree.rs:429:12
[INFO] [stderr]     |
[INFO] [stderr] 429 |     pub fn leftItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stderr]     |            ^^^^^^^^ help: convert the identifier to snake case: `left_item`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `rightItem` should have a snake case name
[INFO] [stderr]    --> src/merklebtree.rs:462:12
[INFO] [stderr]     |
[INFO] [stderr] 462 |     pub fn rightItem<T>(&self, mut node_id: i32, nodes: &mut Nodes<T>) -> Option<T>
[INFO] [stderr]     |            ^^^^^^^^^ help: convert the identifier to snake case: `right_item`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/iterator.rs:258:16
[INFO] [stderr]     |
[INFO] [stderr] 258 |             if index - 1 >= 0 {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/iterator.rs:285:28
[INFO] [stderr]     |
[INFO] [stderr] 285 |                         if e - 1 >= 0 {
[INFO] [stderr]     |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/iterator.rs:302:28
[INFO] [stderr]     |
[INFO] [stderr] 302 |                         if e - 1 >= 0 {
[INFO] [stderr]     |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `merklebtree` (lib) generated 49 warnings (run `cargo fix --lib -p merklebtree` to apply 39 suggestions)
[INFO] [stderr] warning: `merklebtree` (lib test) generated 49 warnings (49 duplicates)
[INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stderr]  --> tests/test_branch_clone.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> tests/test_branch_clone.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MerkleBTree`
[INFO] [stderr]  --> tests/utils.rs:1:32
[INFO] [stderr]   |
[INFO] [stderr] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stderr]   |                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `merklebtree::node::Node`
[INFO] [stderr]  --> tests/utils.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use merklebtree::node::Node;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> tests/utils.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ring::digest::Digest`
[INFO] [stderr]   --> tests/utils.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use ring::digest::Digest;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ring::digest`
[INFO] [stderr]   --> tests/test_branch_clone.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use ring::digest;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> tests/test_branch_clone.rs:50:10
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> tests/test_branch_clone.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `found`
[INFO] [stderr]   --> tests/test_branch_clone.rs:50:26
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> tests/test_branch_clone.rs:58:10
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let (value, found) = subtree.get(Item3 { key: -4 }, &mut subnodes);
[INFO] [stderr]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> tests/test_branch_clone.rs:222:14
[INFO] [stderr]     |
[INFO] [stderr] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> tests/test_branch_clone.rs:222:23
[INFO] [stderr]     |
[INFO] [stderr] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `found`
[INFO] [stderr]    --> tests/test_branch_clone.rs:222:30
[INFO] [stderr]     |
[INFO] [stderr] 222 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> tests/test_branch_clone.rs:227:14
[INFO] [stderr]     |
[INFO] [stderr] 227 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> tests/test_branch_clone.rs:227:23
[INFO] [stderr]     |
[INFO] [stderr] 227 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> tests/test_branch_clone.rs:253:14
[INFO] [stderr]     |
[INFO] [stderr] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> tests/test_branch_clone.rs:253:23
[INFO] [stderr]     |
[INFO] [stderr] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `found`
[INFO] [stderr]    --> tests/test_branch_clone.rs:253:30
[INFO] [stderr]     |
[INFO] [stderr] 253 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]    --> tests/test_branch_clone.rs:258:14
[INFO] [stderr]     |
[INFO] [stderr] 258 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]     |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]    --> tests/test_branch_clone.rs:258:23
[INFO] [stderr]     |
[INFO] [stderr] 258 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_branch_clone.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_branch_clone.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:236:9
[INFO] [stderr]     |
[INFO] [stderr] 236 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:265:9
[INFO] [stderr]     |
[INFO] [stderr] 265 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:304:9
[INFO] [stderr]     |
[INFO] [stderr] 304 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_branch_clone.rs:335:9
[INFO] [stderr]     |
[INFO] [stderr] 335 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_valid_tree_node` is never used
[INFO] [stderr]    --> tests/utils.rs:159:8
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub fn assert_valid_tree_node(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> tests/test_iterator.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Debug`
[INFO] [stderr]  --> tests/test_iterator.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::fmt::Debug;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:413:13
[INFO] [stderr]     |
[INFO] [stderr] 406 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 413 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:516:13
[INFO] [stderr]     |
[INFO] [stderr] 509 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 516 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:586:13
[INFO] [stderr]     |
[INFO] [stderr] 579 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 586 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:654:13
[INFO] [stderr]     |
[INFO] [stderr] 647 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 654 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:710:13
[INFO] [stderr]     |
[INFO] [stderr] 703 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 710 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:764:13
[INFO] [stderr]     |
[INFO] [stderr] 757 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 764 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:824:13
[INFO] [stderr]     |
[INFO] [stderr] 817 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 824 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> tests/test_iterator.rs:882:13
[INFO] [stderr]     |
[INFO] [stderr] 875 |             count => {
[INFO] [stderr]     |             ----- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 882 |             _ => {
[INFO] [stderr]     |             ^ unreachable pattern
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `actual_value` is never read
[INFO] [stderr]   --> tests/test_iterator.rs:24:13
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let mut actual_value = 0;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `expect_value` is never read
[INFO] [stderr]   --> tests/test_iterator.rs:25:13
[INFO] [stderr]    |
[INFO] [stderr] 25 |     let mut expect_value = 0;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `actual_value` is never read
[INFO] [stderr]   --> tests/test_iterator.rs:90:13
[INFO] [stderr]    |
[INFO] [stderr] 90 |     let mut actual_value = 0;
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> tests/test_iterator.rs:509:13
[INFO] [stderr]     |
[INFO] [stderr] 509 |             count => {
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> tests/test_iterator.rs:647:13
[INFO] [stderr]     |
[INFO] [stderr] 647 |             count => {
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> tests/test_iterator.rs:757:13
[INFO] [stderr]     |
[INFO] [stderr] 757 |             count => {
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> tests/test_iterator.rs:875:13
[INFO] [stderr]     |
[INFO] [stderr] 875 |             count => {
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_iterator.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_iterator.rs:80:9
[INFO] [stderr]    |
[INFO] [stderr] 80 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:181:9
[INFO] [stderr]     |
[INFO] [stderr] 181 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:283:9
[INFO] [stderr]     |
[INFO] [stderr] 283 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:305:9
[INFO] [stderr]     |
[INFO] [stderr] 305 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:327:9
[INFO] [stderr]     |
[INFO] [stderr] 327 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:403:13
[INFO] [stderr]     |
[INFO] [stderr] 403 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:431:9
[INFO] [stderr]     |
[INFO] [stderr] 431 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:506:13
[INFO] [stderr]     |
[INFO] [stderr] 506 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:535:9
[INFO] [stderr]     |
[INFO] [stderr] 535 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:576:13
[INFO] [stderr]     |
[INFO] [stderr] 576 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:604:9
[INFO] [stderr]     |
[INFO] [stderr] 604 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:644:13
[INFO] [stderr]     |
[INFO] [stderr] 644 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:673:9
[INFO] [stderr]     |
[INFO] [stderr] 673 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:700:13
[INFO] [stderr]     |
[INFO] [stderr] 700 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:728:9
[INFO] [stderr]     |
[INFO] [stderr] 728 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:754:13
[INFO] [stderr]     |
[INFO] [stderr] 754 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:783:9
[INFO] [stderr]     |
[INFO] [stderr] 783 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:814:13
[INFO] [stderr]     |
[INFO] [stderr] 814 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:842:9
[INFO] [stderr]     |
[INFO] [stderr] 842 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:872:13
[INFO] [stderr]     |
[INFO] [stderr] 872 |         let mut key = item(&mut btree_iterator).key;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:901:9
[INFO] [stderr]     |
[INFO] [stderr] 901 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_iterator.rs:968:9
[INFO] [stderr]     |
[INFO] [stderr] 968 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> tests/test_iterator.rs:1030:9
[INFO] [stderr]      |
[INFO] [stderr] 1030 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]      |         ----^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> tests/test_iterator.rs:1082:9
[INFO] [stderr]      |
[INFO] [stderr] 1082 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]      |         ----^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> examples/test_sgxdb.rs:66:14
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> examples/test_sgxdb.rs:66:23
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `found`
[INFO] [stderr]   --> examples/test_sgxdb.rs:66:30
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> examples/test_sgxdb.rs:75:14
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> examples/test_sgxdb.rs:75:23
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `verify_result`
[INFO] [stderr]    --> examples/test_sgxdb.rs:155:13
[INFO] [stderr]     |
[INFO] [stderr] 155 |     let mut verify_result = false;
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify_result`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/test_sgxdb.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/test_sgxdb.rs:155:9
[INFO] [stderr]     |
[INFO] [stderr] 155 |     let mut verify_result = false;
[INFO] [stderr]     |         ----^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/test_sgxdb.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 159 |     let mut compute_hash;
[INFO] [stderr]     |         ----^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_subnodes_nodemap` is never used
[INFO] [stderr]    --> examples/test_sgxdb.rs:186:4
[INFO] [stderr]     |
[INFO] [stderr] 186 | fn print_subnodes_nodemap<T>(subnodes: &mut Nodes<T>)
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MerkleBTree`
[INFO] [stderr]  --> tests/utils.rs:1:32
[INFO] [stderr]   |
[INFO] [stderr] 1 | use merklebtree::merklebtree::{MerkleBTree, Nodes};
[INFO] [stderr]   |                                ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> examples/test_btree.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |     let mut count = 0;
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/test_btree.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/test_btree.rs:181:9
[INFO] [stderr]     |
[INFO] [stderr] 181 |     let mut count = 0;
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> tests/test_put.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Debug`
[INFO] [stderr]  --> tests/test_put.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::fmt::Debug;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ring::digest`
[INFO] [stderr]  --> tests/test_put.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ring::digest;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `item`
[INFO] [stderr]    --> tests/test_put.rs:630:9
[INFO] [stderr]     |
[INFO] [stderr] 630 |     let item = Item2 { key: 1, value: 2 };
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_put.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_put.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 77 |     let mut nodes_map: HashMap<i32, Node<Item>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_put.rs:205:9
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_put.rs:296:9
[INFO] [stderr]     |
[INFO] [stderr] 296 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_put.rs:378:9
[INFO] [stderr]     |
[INFO] [stderr] 378 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_put.rs:478:9
[INFO] [stderr]     |
[INFO] [stderr] 478 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_valid_tree_node_item4` is never used
[INFO] [stderr]    --> tests/utils.rs:264:8
[INFO] [stderr]     |
[INFO] [stderr] 264 | pub fn assert_valid_tree_node_item4(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stderr]  --> tests/test_sgxdb_verification.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> tests/test_sgxdb_verification.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ring::digest`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use ring::digest;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:77:14
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:77:23
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `found`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:77:30
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let (node_id, index, found, mut subnodes) =
[INFO] [stderr]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_found`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node_id`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:83:14
[INFO] [stderr]    |
[INFO] [stderr] 83 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:83:23
[INFO] [stderr]    |
[INFO] [stderr] 83 |         let (node_id, index, found) = tree.search_recursively(0, &item, &mut subnodes);
[INFO] [stderr]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `root_node` is never read
[INFO] [stderr]    --> tests/test_sgxdb_verification.rs:107:13
[INFO] [stderr]     |
[INFO] [stderr] 107 |             root_node = Node::new_empty(0);
[INFO] [stderr]     |             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_sgxdb_verification.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     let mut nodes_map: HashMap<i32, Node<Item4>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_subnodes_nodemap_existed` is never used
[INFO] [stderr]    --> tests/test_sgxdb_verification.rs:114:4
[INFO] [stderr]     |
[INFO] [stderr] 114 | fn print_subnodes_nodemap_existed<T>(subnodes: &mut Nodes<T>)
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_subnodes_nodemap` is never used
[INFO] [stderr]    --> tests/test_sgxdb_verification.rs:178:4
[INFO] [stderr]     |
[INFO] [stderr] 178 | fn print_subnodes_nodemap<T>(subnodes: &mut Nodes<T>)
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `merklebtree` (test "test_branch_clone") generated 31 warnings (run `cargo fix --test "test_branch_clone"` to apply 30 suggestions)
[INFO] [stderr] warning: `merklebtree` (test "test_iterator") generated 46 warnings (4 duplicates) (run `cargo fix --test "test_iterator"` to apply 31 suggestions)
[INFO] [stderr] warning: `merklebtree` (example "test_sgxdb") generated 10 warnings (run `cargo fix --example "test_sgxdb"` to apply 9 suggestions)
[INFO] [stderr] warning: `merklebtree` (test "utils") generated 4 warnings (3 duplicates) (run `cargo fix --test "utils"` to apply 1 suggestion)
[INFO] [stderr] warning: `merklebtree` (example "test_btree") generated 3 warnings (run `cargo fix --example "test_btree"` to apply 3 suggestions)
[INFO] [stderr] warning: `merklebtree` (test "test_put") generated 15 warnings (4 duplicates) (run `cargo fix --test "test_put"` to apply 10 suggestions)
[INFO] [stderr] warning: `merklebtree` (test "test_sgxdb_verification") generated 16 warnings (4 duplicates) (run `cargo fix --test "test_sgxdb_verification"` to apply 9 suggestions)
[INFO] [stderr] warning: unused import: `merklebtree::traits::CalculateHash`
[INFO] [stderr]  --> tests/test_persistence.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use merklebtree::traits::CalculateHash;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde`
[INFO] [stderr]  --> tests/test_persistence.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use serde;
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Debug`
[INFO] [stderr]  --> tests/test_persistence.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::fmt::Debug;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/test_persistence.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |     for i in 0..vec.len() {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> tests/test_persistence.rs:120:13
[INFO] [stderr]     |
[INFO] [stderr] 120 |         for j in 0..sub_vec.len() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_persistence.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_persistence.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |     let mut fin = BufReader::new(file);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_valid_tree_node_item3` is never used
[INFO] [stderr]    --> tests/utils.rs:202:8
[INFO] [stderr]     |
[INFO] [stderr] 202 | pub fn assert_valid_tree_node_item3(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_valid_tree_node_item4` is never used
[INFO] [stderr]    --> tests/utils.rs:264:8
[INFO] [stderr]     |
[INFO] [stderr] 264 | pub fn assert_valid_tree_node_item4(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test_persistence.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     f.write_all(message.as_bytes());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 75 |     let _ = f.write_all(message.as_bytes());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test_persistence.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     f.write_all(String::from("\n").as_bytes());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 76 |     let _ = f.write_all(String::from("\n").as_bytes());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> tests/test_remove.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Debug`
[INFO] [stderr]  --> tests/test_remove.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::fmt::Debug;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_remove.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_remove.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_remove.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |         let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/test_remove.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:156:9
[INFO] [stderr]     |
[INFO] [stderr] 156 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:240:9
[INFO] [stderr]     |
[INFO] [stderr] 240 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:340:9
[INFO] [stderr]     |
[INFO] [stderr] 340 |     let mut nodes_map: HashMap<i32, Node<Item3>> = HashMap::new();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:396:17
[INFO] [stderr]     |
[INFO] [stderr] 396 |             let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |                 ----^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/test_remove.rs:423:17
[INFO] [stderr]     |
[INFO] [stderr] 423 |             let mut nodes_map: HashMap<i32, Node<Item2>> = HashMap::new();
[INFO] [stderr]     |                 ----^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `merklebtree::node::Node`
[INFO] [stderr]  --> examples/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use merklebtree::node::Node;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> examples/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `find_id`
[INFO] [stderr]    --> examples/main.rs:111:9
[INFO] [stderr]     |
[INFO] [stderr] 111 |     let find_id = find_nodeid_by_branch(&branch, &nodes);
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_id`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node`
[INFO] [stderr]    --> examples/main.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |     let node = nodes.nodes_map.get(&1).unwrap();
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> examples/main.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut branch = vec![0, 0, 0, 2];
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `test2` is never used
[INFO] [stderr]    --> examples/main.rs:114:4
[INFO] [stderr]     |
[INFO] [stderr] 114 | fn test2() {
[INFO] [stderr]     |    ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ring::digest::Digest`
[INFO] [stderr]  --> examples/test_merkle.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ring::digest::Digest;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `merklebtree` (test "test_persistence") generated 15 warnings (4 duplicates) (run `cargo fix --test "test_persistence"` to apply 7 suggestions)
[INFO] [stderr] warning: `merklebtree` (test "test_remove") generated 19 warnings (6 duplicates) (run `cargo fix --test "test_remove"` to apply 13 suggestions)
[INFO] [stderr] warning: `merklebtree` (example "main") generated 6 warnings (run `cargo fix --example "main"` to apply 5 suggestions)
[INFO] [stderr] warning: `merklebtree` (example "test_merkle") generated 1 warning (run `cargo fix --example "test_merkle"` to apply 1 suggestion)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/merklebtree-57efb4cfa15ccd7b)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_branch_clone.rs (/opt/rustwide/target/debug/deps/test_branch_clone-4eb72da191723e8e)
[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] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_sgxdb_put_clone_from_root ... ok
[INFO] [stdout] test test_clone_search_subnode_from_root ... ok
[INFO] [stdout] test test_sgxdb_remove_clone_from_root ... ok
[INFO] [stdout] test test_sgxdb_insert_clone_from_root ... ok
[INFO] [stdout] test test_verify_subnodes_of_get ... ok
[INFO] [stdout] test test_batch_remove_clone_subnode_from_root ... ok
[INFO] [stdout] test test_batch_get_clone_subnode_from_root ... ok
[INFO] [stdout] test test_batch_put_clone_subnode_from_root ... ok
[INFO] [stdout] test test_batch_insert_clone_subnode_from_root ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_iterator.rs (/opt/rustwide/target/debug/deps/test_iterator-1a18a82609f9e683)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_btree_height ... ok
[INFO] [stdout] test test_btree_iterator_4_prev ... ok
[INFO] [stdout] test test_btree_iterator_3_next ... ok
[INFO] [stdout] test test_btree_iterator_2_next ... ok
[INFO] [stdout] test test_btree_iterator_4_next ... ok
[INFO] [stdout] test test_btree_iterator_first ... ok
[INFO] [stdout] test test_btree_iterator_last ... ok
[INFO] [stdout] test test_btree_iterator_end ... ok
[INFO] [stdout] test test_btree_iterator_next_on_empty ... ok
[INFO] [stdout] test test_btree_left_and_right ... ok
[INFO] [stdout] test test_btree_iterator_1_next ... ok
[INFO] [stderr]      Running tests/test_persistence.rs (/opt/rustwide/target/debug/deps/test_persistence-9dbf9ebca9177240)
[INFO] [stdout] test test_btree_iterator_2_prev ... ok
[INFO] [stdout] test test_btree_iterator_1_prev ... ok
[INFO] [stdout] test test_btree_iterator_3_prev ... ok
[INFO] [stdout] test test_btree_iterator_begin ... ok
[INFO] [stdout] test test_btree_iterator_values_and_keys ... ok
[INFO] [stdout] test test_btree_iterator_prev_on_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_btree_persistence_1 ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_btree_persistence_1 stdout ----
[INFO] [stdout] Item2 { key: 4, value: 2 }
[INFO] [stdout] Item2 { key: 2, value: 1 }
[INFO] [stdout] Item2 { key: 6, value: 2 }
[INFO] [stdout] Item2 { key: 1, value: 0 }
[INFO] [stdout] Item2 { key: 3, value: 2 }
[INFO] [stdout] Item2 { key: 5, value: 2 }
[INFO] [stdout] Item2 { key: 7, value: 2 }
[INFO] [stdout] thread 'test_btree_persistence_1' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }', tests/test_persistence.rs:73:10
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x561fc8a6ecea - std::backtrace_rs::backtrace::libunwind::trace::h2f05d0192276a8f6
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
[INFO] [stdout]    1:     0x561fc8a6ecea - std::backtrace_rs::backtrace::trace_unsynchronized::hedc23dff7a1af150
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x561fc8a6ecea - std::sys_common::backtrace::_print_fmt::h17541ef7592f3ce2
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:65:5
[INFO] [stdout]    3:     0x561fc8a6ecea - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h20f75df5ab0c0792
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x561fc8a92a1f - core::fmt::write::h78109e6f466b3af6
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/fmt/mod.rs:1254:17
[INFO] [stdout]    5:     0x561fc8a6c035 - std::io::Write::write_fmt::hd24bfb68a1b35a25
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/io/mod.rs:1698:15
[INFO] [stdout]    6:     0x561fc8a6eab5 - std::sys_common::backtrace::_print::h8dac57a9f8fbf9a5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    7:     0x561fc8a6eab5 - std::sys_common::backtrace::print::hf9ecbf41d1aa712f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    8:     0x561fc8a7076e - std::panicking::default_hook::{{closure}}::h04c07acfc84ca028
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:269:22
[INFO] [stdout]    9:     0x561fc8a704a1 - std::panicking::default_hook::h01f6bb23e1eceb2c
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:285:9
[INFO] [stdout]   10:     0x561fc8a2c25b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h87fe9f7b2fd49e4c
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   11:     0x561fc8a2c25b - test::test_main::{{closure}}::he94d679243a7531b
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x561fc8a70e54 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3f2d6d8b14c4769f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   13:     0x561fc8a70e54 - std::panicking::rust_panic_with_hook::h2bb3722bbaf2f6df
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:695:13
[INFO] [stdout]   14:     0x561fc8a70bc9 - std::panicking::begin_panic_handler::{{closure}}::h91bc7f36a4be011b
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:582:13
[INFO] [stdout]   15:     0x561fc8a6f156 - std::sys_common::backtrace::__rust_end_short_backtrace::h8b3d3717114f9e59
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:150:18
[INFO] [stdout]   16:     0x561fc8a70922 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:578:5
[INFO] [stdout]   17:     0x561fc89cbd53 - core::panicking::panic_fmt::hfd368e3fbdabea26
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panicking.rs:67:14
[INFO] [stdout]   18:     0x561fc89cc293 - core::result::unwrap_failed::he54eb4b2f125b26f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/result.rs:1687:5
[INFO] [stdout]   19:     0x561fc89e031b - core::result::Result<T,E>::unwrap::h1a1db0de7e6f0b0b
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/result.rs:1089:23
[INFO] [stdout]   20:     0x561fc89d9347 - test_persistence::write_msg::hdba223415e139a6d
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_persistence.rs:69:17
[INFO] [stdout]   21:     0x561fc89dba02 - test_persistence::test_btree_persistence_1::hd4781fcc74814b82
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_persistence.rs:52:5
[INFO] [stdout]   22:     0x561fc89dab37 - test_persistence::test_btree_persistence_1::{{closure}}::hbb571587d6f10c1c
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_persistence.rs:15:31
[INFO] [stdout]   23:     0x561fc89df415 - core::ops::function::FnOnce::call_once::h1e3dace040b51e75
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x561fc8a3112f - core::ops::function::FnOnce::call_once::ha6a70e79f7481a7e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x561fc8a3112f - test::__rust_begin_short_backtrace::hce33033019b61e69
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:655:18
[INFO] [stdout]   26:     0x561fc89fe91c - test::run_test::{{closure}}::h858d3528838ae3e5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:646:30
[INFO] [stdout]   27:     0x561fc89fe91c - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8ac2b00f01ae79e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   28:     0x561fc8a30206 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h8093d25b522725ef
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   29:     0x561fc8a30206 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5c334c204e4a3913
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   30:     0x561fc8a30206 - std::panicking::try::do_call::ha8b740c7b9478074
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:485:40
[INFO] [stdout]   31:     0x561fc8a30206 - std::panicking::try::h5d34f63d0e41b64e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:449:19
[INFO] [stdout]   32:     0x561fc8a30206 - std::panic::catch_unwind::hcfbb511e1aa7fc67
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panic.rs:140:14
[INFO] [stdout]   33:     0x561fc8a30206 - test::run_test_in_process::h9abda90f802eaf21
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:678:27
[INFO] [stdout]   34:     0x561fc8a30206 - test::run_test::run_test_inner::{{closure}}::h0f058de91f6c6edf
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:572:39
[INFO] [stdout]   35:     0x561fc89f9125 - test::run_test::run_test_inner::{{closure}}::h5ca48a4c59c6c1fb
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:599:37
[INFO] [stdout]   36:     0x561fc89f9125 - std::sys_common::backtrace::__rust_begin_short_backtrace::h32bd51e1495d4a33
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:134:18
[INFO] [stdout]   37:     0x561fc89fe661 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc086fae9b128b2db
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/thread/mod.rs:526:17
[INFO] [stdout]   38:     0x561fc89fe661 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb66571888d270d43
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   39:     0x561fc89fe661 - std::panicking::try::do_call::h4fa2ef4f6e51fecf
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:485:40
[INFO] [stdout]   40:     0x561fc89fe661 - std::panicking::try::h1e9e22b8584489b5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:449:19
[INFO] [stdout]   41:     0x561fc89fe661 - std::panic::catch_unwind::h44698a3de0e0769e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panic.rs:140:14
[INFO] [stdout]   42:     0x561fc89fe661 - std::thread::Builder::spawn_unchecked_::{{closure}}::h50153abde3fe239e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/thread/mod.rs:525:30
[INFO] [stdout]   43:     0x561fc89fe661 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hbe5bbf6f38394364
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x561fc8a75405 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h0d83cb2920a49046
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   45:     0x561fc8a75405 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hbe0a008aa7d9ef59
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   46:     0x561fc8a75405 - std::sys::unix::thread::Thread::new::thread_start::h3a466996bdf6b1f9
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   47:     0x7f2ff3f5bb43 - <unknown>
[INFO] [stdout]   48:     0x7f2ff3fecbb4 - __clone
[INFO] [stdout]   49:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_btree_persistence_1
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test test_persistence`
[INFO] running `Command { std: "docker" "inspect" "de273619f52a4c3e6046ff2e38fdb3ca9eabd87f3e5dfa81d94036749f6f6ca9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de273619f52a4c3e6046ff2e38fdb3ca9eabd87f3e5dfa81d94036749f6f6ca9", kill_on_drop: false }`
[INFO] [stdout] de273619f52a4c3e6046ff2e38fdb3ca9eabd87f3e5dfa81d94036749f6f6ca9
