[INFO] cloning repository https://github.com/sjwjames/secure_rf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sjwjames/secure_rf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsjwjames%2Fsecure_rf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsjwjames%2Fsecure_rf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6c38eb87887aef0461925306fc70d978e681dd77
[INFO] checking sjwjames/secure_rf against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsjwjames%2Fsecure_rf" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sjwjames/secure_rf on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sjwjames/secure_rf
[INFO] finished tweaking git repo https://github.com/sjwjames/secure_rf
[INFO] tweaked toml for git repo https://github.com/sjwjames/secure_rf written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/sjwjames/secure_rf 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded config v0.9.3
[INFO] [stderr]   Downloaded num_cpus v1.11.0
[INFO] [stderr]   Downloaded serde-hjson v0.8.2
[INFO] [stderr]   Downloaded rust-ini v0.13.0
[INFO] [stderr]   Downloaded serde_test v0.8.23
[INFO] [stderr]   Downloaded serde v0.8.23
[INFO] [stderr]   Downloaded syn v1.0.7
[INFO] [stderr]   Downloaded num-bigint v0.2.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 31615ecb912d731e6d3eb97caf20e9ad6e1f3187f0ee7d3c202c64538c6fa848
[INFO] running `Command { std: "docker" "start" "-a" "31615ecb912d731e6d3eb97caf20e9ad6e1f3187f0ee7d3c202c64538c6fa848", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "31615ecb912d731e6d3eb97caf20e9ad6e1f3187f0ee7d3c202c64538c6fa848", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31615ecb912d731e6d3eb97caf20e9ad6e1f3187f0ee7d3c202c64538c6fa848", kill_on_drop: false }`
[INFO] [stdout] 31615ecb912d731e6d3eb97caf20e9ad6e1f3187f0ee7d3c202c64538c6fa848
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6c08d17ecd417c3e99ccead4d51cdee4502170d703be29cf1461f9fb7e7cf2c6
[INFO] running `Command { std: "docker" "start" "-a" "6c08d17ecd417c3e99ccead4d51cdee4502170d703be29cf1461f9fb7e7cf2c6", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling libc v0.2.65
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling syn v1.0.7
[INFO] [stderr]    Compiling serde v1.0.102
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking serde v0.8.23
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking regex-syntax v0.6.12
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking linked-hash-map v0.5.2
[INFO] [stderr]     Checking rust-ini v0.13.0
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking yaml-rust v0.4.3
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling nom v4.2.3
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking num_cpus v1.11.0
[INFO] [stderr]     Checking threadpool v1.7.1
[INFO] [stderr]     Checking aho-corasick v0.7.6
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking serde_test v0.8.23
[INFO] [stderr]     Checking linked-hash-map v0.3.0
[INFO] [stderr]     Checking regex v1.3.1
[INFO] [stderr]    Compiling serde_derive v1.0.102
[INFO] [stderr]     Checking serde-hjson v0.8.2
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking bstr v0.2.8
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]     Checking serde_json v1.0.41
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stderr]     Checking config v0.9.3
[INFO] [stderr]     Checking random_forest_rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::string::ToString`
[INFO] [stdout]  --> src/computing_party.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::string::ToString;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TI_BATCH_SIZE`
[INFO] [stdout]  --> src/computing_party.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use crate::constants::constants::{TI_BATCH_SIZE, U64S_PER_TX, U8S_PER_TX};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `ToBigUint`
[INFO] [stdout]   --> src/computing_party.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, BigInt, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]   --> src/ti.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 |     use std::net::{TcpStream, TcpListener, SocketAddr, Shutdown};
[INFO] [stdout]    |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]   --> src/ti.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use std::io::{Read, Write, BufWriter};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Barrier`
[INFO] [stdout]   --> src/ti.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::sync::{Arc, Mutex, Barrier};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Sub`
[INFO] [stdout]   --> src/ti.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     use std::ops::{Add, Sub};
[INFO] [stdout]    |                    ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/ti.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `initialize_party_context`
[INFO] [stdout]  --> src/random_forest.rs:2:108
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use crate::computing_party::computing_party::{ComputingParty, get_formatted_address, try_setup_socket, initialize_party_context, ti_r...
[INFO] [stdout]   |                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/random_forest.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                     ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> src/random_forest.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::thread::current;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::message::message::MessageManager`
[INFO] [stdout]  --> src/random_forest.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use crate::message::message::MessageManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/random_forest.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Bytes`
[INFO] [stdout]  --> src/decision_tree.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Bytes, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^^         ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/decision_tree.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]   --> src/decision_tree.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use std::thread::sleep;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/decision_tree.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::time::{Duration, SystemTime};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_product`
[INFO] [stdout]   --> src/decision_tree.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use crate::dot_product::dot_product::{dot_product, dot_product_integer};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/decision_tree.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         pub equality_shares: Vec<(BigUint)>,
[INFO] [stdout]    |                                  ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         pub equality_shares: Vec<(BigUint)>,
[INFO] [stdout] 54 +         pub equality_shares: Vec<BigUint>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/decision_tree.rs:217:44
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 (*dp_result_map).insert(i, (dp_result.0));
[INFO] [stdout]     |                                            ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -                 (*dp_result_map).insert(i, (dp_result.0));
[INFO] [stdout] 217 +                 (*dp_result_map).insert(i, dp_result.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::Wrapping`
[INFO] [stdout]  --> src/protocol.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::num::Wrapping;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/protocol.rs:7:39
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/protocol.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string::ToString`
[INFO] [stdout]  --> src/computing_party.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::string::ToString;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `min`
[INFO] [stdout]   --> src/protocol.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use std::cmp::{min, max};
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TI_BATCH_SIZE`
[INFO] [stdout]  --> src/computing_party.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use crate::constants::constants::{TI_BATCH_SIZE, U64S_PER_TX, U8S_PER_TX};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/protocol.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `ToBigUint`
[INFO] [stdout]   --> src/computing_party.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, BigInt, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `Zero`, `abs`
[INFO] [stdout]   --> src/protocol.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |               ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]   --> src/ti.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 |     use std::net::{TcpStream, TcpListener, SocketAddr, Shutdown};
[INFO] [stdout]    |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/protocol.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/protocol.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]   --> src/ti.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use std::io::{Read, Write, BufWriter};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `batch_multiplication_byte`, `multi_thread_batch_mul_byte`
[INFO] [stdout]   --> src/protocol.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use crate::multiplication::multiplication::{batch_multiplication_byte, parallel_multiplication, multi_thread_batch_mul_byte};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/protocol.rs:44:54
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout]    |                                                      ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout] 44 +             let mut output_map = Arc::new(Mutex::new(HashMap::new()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Barrier`
[INFO] [stdout]   --> src/ti.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::sync::{Arc, Mutex, Barrier};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/protocol.rs:70:54
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout]    |                                                      ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout] 70 +             let mut output_map = Arc::new(Mutex::new(HashMap::new()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Sub`
[INFO] [stdout]   --> src/ti.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     use std::ops::{Add, Sub};
[INFO] [stdout]    |                    ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RandBigInt`
[INFO] [stdout]  --> src/utils.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]   |                                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::integer::*`
[INFO] [stdout]  --> src/field_change.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use num::integer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/ti.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigInt`
[INFO] [stdout]  --> src/field_change.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]   |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `One`, `abs`
[INFO] [stdout]  --> src/field_change.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]   |                     ^^^                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/or_xor.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, `Write`
[INFO] [stdout]  --> src/or_xor.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `initialize_party_context`
[INFO] [stdout]  --> src/random_forest.rs:2:108
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use crate::computing_party::computing_party::{ComputingParty, get_formatted_address, try_setup_socket, initialize_party_context, ti_r...
[INFO] [stdout]   |                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/or_xor.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/or_xor.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/random_forest.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                     ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `abs`
[INFO] [stdout]   --> src/or_xor.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                     ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/or_xor.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/or_xor.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch_multiply`
[INFO] [stdout]   --> src/or_xor.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use crate::multiplication::multiplication::{batch_multiply, batch_multiply_bigint, batch_multiplication_integer};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/multiplication.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abs`
[INFO] [stdout]   --> src/multiplication.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/multiplication.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/multiplication.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::current`
[INFO] [stdout]  --> src/random_forest.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::thread::current;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/multiplication.rs:387:25
[INFO] [stdout]     |
[INFO] [stdout] 387 |             d_list[i] = (d_list[i] + received_list[i][0]);
[INFO] [stdout]     |                         ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 387 -             d_list[i] = (d_list[i] + received_list[i][0]);
[INFO] [stdout] 387 +             d_list[i] = d_list[i] + received_list[i][0];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/multiplication.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |             e_list[i] = (e_list[i] + received_list[i][1]);
[INFO] [stdout]     |                         ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 388 -             e_list[i] = (e_list[i] + received_list[i][1]);
[INFO] [stdout] 388 +             e_list[i] = e_list[i] + received_list[i][1];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::message::message::MessageManager`
[INFO] [stdout]  --> src/random_forest.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use crate::message::message::MessageManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/dot_product.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, `Write`
[INFO] [stdout]  --> src/dot_product.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/dot_product.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/dot_product.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `abs`
[INFO] [stdout]   --> src/dot_product.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                     ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/dot_product.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/dot_product.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/dot_product.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use std::ops::{Add, Mul};
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/random_forest.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch_multiply`
[INFO] [stdout]   --> src/dot_product.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use crate::multiplication::multiplication::{batch_multiply, batch_multiply_bigint, batch_multiplication_integer};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/message.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Bytes`
[INFO] [stdout]  --> src/decision_tree.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Bytes, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^^         ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/message.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                     ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stdout]  --> src/message.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::net::{TcpStream, TcpListener};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`
[INFO] [stdout]  --> src/message.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::io::{BufReader, BufRead, Read};
[INFO] [stdout]   |                   ^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/decision_tree.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::SystemTime`
[INFO] [stdout]  --> src/message.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::time::SystemTime;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threadpool::ThreadPool`
[INFO] [stdout]  --> src/message.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use threadpool::ThreadPool;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]   --> src/decision_tree.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use std::thread::sleep;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/message.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::thread;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/decision_tree.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::time::{Duration, SystemTime};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot_product`
[INFO] [stdout]   --> src/decision_tree.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use crate::dot_product::dot_product::{dot_product, dot_product_integer};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/decision_tree.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         pub equality_shares: Vec<(BigUint)>,
[INFO] [stdout]    |                                  ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         pub equality_shares: Vec<(BigUint)>,
[INFO] [stdout] 54 +         pub equality_shares: Vec<BigUint>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/decision_tree.rs:217:44
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 (*dp_result_map).insert(i, (dp_result.0));
[INFO] [stdout]     |                                            ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -                 (*dp_result_map).insert(i, (dp_result.0));
[INFO] [stdout] 217 +                 (*dp_result_map).insert(i, dp_result.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::Wrapping`
[INFO] [stdout]  --> src/protocol.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::num::Wrapping;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/protocol.rs:7:39
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/protocol.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `min`
[INFO] [stdout]   --> src/protocol.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use std::cmp::{min, max};
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/protocol.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `Zero`, `abs`
[INFO] [stdout]   --> src/protocol.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |               ^^^^  ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/protocol.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/protocol.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `batch_multiplication_byte`, `multi_thread_batch_mul_byte`
[INFO] [stdout]   --> src/protocol.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use crate::multiplication::multiplication::{batch_multiplication_byte, parallel_multiplication, multi_thread_batch_mul_byte};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/protocol.rs:44:54
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout]    |                                                      ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout] 44 +             let mut output_map = Arc::new(Mutex::new(HashMap::new()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/protocol.rs:70:54
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout]    |                                                      ^              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -             let mut output_map = Arc::new(Mutex::new((HashMap::new())));
[INFO] [stdout] 70 +             let mut output_map = Arc::new(Mutex::new(HashMap::new()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RandBigInt`
[INFO] [stdout]  --> src/utils.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]   |                                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::integer::*`
[INFO] [stdout]  --> src/field_change.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use num::integer::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigInt`
[INFO] [stdout]  --> src/field_change.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]   |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `One`, `abs`
[INFO] [stdout]  --> src/field_change.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]   |                     ^^^                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/or_xor.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, `Write`
[INFO] [stdout]  --> src/or_xor.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/or_xor.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/or_xor.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `abs`
[INFO] [stdout]   --> src/or_xor.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                     ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/or_xor.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/or_xor.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch_multiply`
[INFO] [stdout]   --> src/or_xor.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use crate::multiplication::multiplication::{batch_multiply, batch_multiply_bigint, batch_multiplication_integer};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/multiplication.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `abs`
[INFO] [stdout]   --> src/multiplication.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/multiplication.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/multiplication.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/multiplication.rs:387:25
[INFO] [stdout]     |
[INFO] [stdout] 387 |             d_list[i] = (d_list[i] + received_list[i][0]);
[INFO] [stdout]     |                         ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 387 -             d_list[i] = (d_list[i] + received_list[i][0]);
[INFO] [stdout] 387 +             d_list[i] = d_list[i] + received_list[i][0];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/multiplication.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |             e_list[i] = (e_list[i] + received_list[i][1]);
[INFO] [stdout]     |                         ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 388 -             e_list[i] = (e_list[i] + received_list[i][1]);
[INFO] [stdout] 388 +             e_list[i] = e_list[i] + received_list[i][1];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BATCH_SIZE`, `BINARY_PRIME`, `BUF_SIZE`, `U64S_PER_TX`, `U8S_PER_TX`
[INFO] [stdout]  --> src/dot_product.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::constants::constants::{BATCH_SIZE, U8S_PER_TX, BUF_SIZE, U64S_PER_TX, BINARY_PRIME};
[INFO] [stdout]   |                                       ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, `Write`
[INFO] [stdout]  --> src/dot_product.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::io::{Read, Write, BufReader, BufRead};
[INFO] [stdout]   |                   ^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/dot_product.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::cmp::{min, max};
[INFO] [stdout]   |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToBigInt`, `ToBigUint`
[INFO] [stdout]   --> src/dot_product.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `FromPrimitive`, `One`, `abs`
[INFO] [stdout]   --> src/dot_product.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use num::{Zero, One, FromPrimitive, abs, BigInt};
[INFO] [stdout]    |                     ^^^  ^^^^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/dot_product.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpStream`
[INFO] [stdout]   --> src/dot_product.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     use std::net::TcpStream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/dot_product.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use std::ops::{Add, Mul};
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch_multiply`
[INFO] [stdout]   --> src/dot_product.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use crate::multiplication::multiplication::{batch_multiply, batch_multiply_bigint, batch_multiplication_integer};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/message.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`
[INFO] [stdout]  --> src/message.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                     ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stdout]  --> src/message.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use std::net::{TcpStream, TcpListener};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`
[INFO] [stdout]  --> src/message.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::io::{BufReader, BufRead, Read};
[INFO] [stdout]   |                   ^^^^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::SystemTime`
[INFO] [stdout]  --> src/message.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use std::time::SystemTime;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threadpool::ThreadPool`
[INFO] [stdout]  --> src/message.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use threadpool::ThreadPool;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/message.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::thread;
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/message.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         return Ok(message.unwrap());
[INFO] [stdout]    |         --------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 89 |         Err("asd")
[INFO] [stdout]    |         ^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]   --> src/ti.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]  --> src/utils.rs:2:32
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]   --> src/multiplication.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]    --> src/computing_party.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn try_connect(socket: &SocketAddr, prefix: &str) -> TcpStream {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asymmetric_bit`
[INFO] [stdout]    --> src/computing_party.rs:171:159
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...stance_count: usize, asymmetric_bit: u8) -> DecisionTreeData {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asymmetric_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_input_path`
[INFO] [stdout]    --> src/computing_party.rs:282:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let y_input_path = match settings.get_str("y_input_path") {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_precision`
[INFO] [stdout]    --> src/computing_party.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let integer_precision = match settings.get_int("integer_precision") {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_stream_copied`
[INFO] [stdout]    --> src/computing_party.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut in_stream_copied = in_stream.try_clone().unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_stream_copied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/message.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         return Ok(message.unwrap());
[INFO] [stdout]    |         --------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 89 |         Err("asd")
[INFO] [stdout]    |         ^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]   --> src/ti.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]  --> src/utils.rs:2:32
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use num::bigint::{BigUint, ToBigUint, ToBigInt, RandBigInt};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToBigUint`
[INFO] [stdout]   --> src/multiplication.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use num::bigint::{BigUint, ToBigUint, ToBigInt};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/computing_party.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let mut internal_addr; //= String::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]    --> src/computing_party.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let mut external_addr; //= String::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]    --> src/computing_party.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let mut ti_addr;       //= String::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]    --> src/computing_party.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut in_stream_copied = in_stream.try_clone().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/computing_party.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let mut internal_addr; //= String::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]    --> src/computing_party.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let mut external_addr; //= String::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]    --> src/computing_party.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut message_manager = Arc::clone(&ctx.message_manager);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]    --> src/computing_party.rs:160:41
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn try_connect(socket: &SocketAddr, prefix: &str) -> TcpStream {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asymmetric_bit`
[INFO] [stdout]    --> src/computing_party.rs:171:159
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...stance_count: usize, asymmetric_bit: u8) -> DecisionTreeData {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asymmetric_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_input_path`
[INFO] [stdout]    --> src/computing_party.rs:282:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let y_input_path = match settings.get_str("y_input_path") {
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer_precision`
[INFO] [stdout]    --> src/computing_party.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let integer_precision = match settings.get_int("integer_precision") {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_stream_copied`
[INFO] [stdout]    --> src/computing_party.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut in_stream_copied = in_stream.try_clone().unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_in_stream_copied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/computing_party.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let mut internal_addr; //= String::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]    --> src/computing_party.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let mut external_addr; //= String::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]    --> src/computing_party.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let mut ti_addr;       //= String::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]    --> src/computing_party.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut in_stream_copied = in_stream.try_clone().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/ti.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |                 let mut share0 = DecisionTreeShares {
[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/ti.rs:307:21
[INFO] [stdout]     |
[INFO] [stdout] 307 |                 let mut share1 = DecisionTreeShares {
[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/computing_party.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let mut internal_addr; //= String::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]    --> src/computing_party.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let mut external_addr; //= String::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]    --> src/computing_party.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut message_manager = Arc::clone(&ctx.message_manager);
[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/ti.rs:358:46
[INFO] [stdout]     |
[INFO] [stdout] 358 |     fn send_dt_shares(mut stream: TcpStream, mut shares: DecisionTreeShares) -> io::Result<()> {
[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/ti.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut additive_shares = shares.additive_triples;
[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/ti.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |         let mut binary_triples = shares.binary_triples;
[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/ti.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let mut additive_bigint_triples = shares.additive_bigint_triples;
[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/ti.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut equality_bigint_triples = shares.equality_shares;
[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/ti.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let mut message_str = serde_json::to_string(&dt_share_message).unwrap() + "\n";
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/ti.rs:417:21
[INFO] [stdout]     |
[INFO] [stdout] 417 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share1_map`
[INFO] [stdout]    --> src/ti.rs:431:17
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share1_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:415:17
[INFO] [stdout]     |
[INFO] [stdout] 415 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:416:17
[INFO] [stdout]     |
[INFO] [stdout] 416 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:417:17
[INFO] [stdout]     |
[INFO] [stdout] 417 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:430:13
[INFO] [stdout]     |
[INFO] [stdout] 430 |         let mut share0_map = &(*(share0_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share1_map`
[INFO] [stdout]    --> src/ti.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share1_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:449:17
[INFO] [stdout]     |
[INFO] [stdout] 449 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:450:17
[INFO] [stdout]     |
[INFO] [stdout] 450 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let mut share0_map = &(*(share0_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:464:13
[INFO] [stdout]     |
[INFO] [stdout] 464 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:478:13
[INFO] [stdout]     |
[INFO] [stdout] 478 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:482:17
[INFO] [stdout]     |
[INFO] [stdout] 482 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:484:17
[INFO] [stdout]     |
[INFO] [stdout] 484 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             let mut share0_item = share0_map.get(&i).unwrap().clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let mut share1_item = share1_map.get(&i).unwrap().clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:513:13
[INFO] [stdout]     |
[INFO] [stdout] 513 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:516:17
[INFO] [stdout]     |
[INFO] [stdout] 516 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:518:17
[INFO] [stdout]     |
[INFO] [stdout] 518 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |                 let mut share0 = DecisionTreeShares {
[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/ti.rs:307:21
[INFO] [stdout]     |
[INFO] [stdout] 307 |                 let mut share1 = DecisionTreeShares {
[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/ti.rs:358:46
[INFO] [stdout]     |
[INFO] [stdout] 358 |     fn send_dt_shares(mut stream: TcpStream, mut shares: DecisionTreeShares) -> io::Result<()> {
[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/ti.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let mut additive_shares = shares.additive_triples;
[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/ti.rs:372:13
[INFO] [stdout]     |
[INFO] [stdout] 372 |         let mut binary_triples = shares.binary_triples;
[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/ti.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let mut additive_bigint_triples = shares.additive_bigint_triples;
[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/ti.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut equality_bigint_triples = shares.equality_shares;
[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/ti.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let mut message_str = serde_json::to_string(&dt_share_message).unwrap() + "\n";
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/ti.rs:417:21
[INFO] [stdout]     |
[INFO] [stdout] 417 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share1_map`
[INFO] [stdout]    --> src/ti.rs:431:17
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share1_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:415:17
[INFO] [stdout]     |
[INFO] [stdout] 415 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:416:17
[INFO] [stdout]     |
[INFO] [stdout] 416 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:417:17
[INFO] [stdout]     |
[INFO] [stdout] 417 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:430:13
[INFO] [stdout]     |
[INFO] [stdout] 430 |         let mut share0_map = &(*(share0_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `share1_map`
[INFO] [stdout]    --> src/ti.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_share1_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt_training`
[INFO] [stdout]    --> src/random_forest.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let dt_training = decision_tree::train(&mut dt_ctx);
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dt_training`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:446:13
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:449:17
[INFO] [stdout]     |
[INFO] [stdout] 449 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:450:17
[INFO] [stdout]     |
[INFO] [stdout] 450 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let mut share0_map = &(*(share0_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:464:13
[INFO] [stdout]     |
[INFO] [stdout] 464 |         let mut share1_map = &(*(share1_arc.lock().unwrap())).clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:478:13
[INFO] [stdout]     |
[INFO] [stdout] 478 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:482:17
[INFO] [stdout]     |
[INFO] [stdout] 482 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:484:17
[INFO] [stdout]     |
[INFO] [stdout] 484 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             let mut share0_item = share0_map.get(&i).unwrap().clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let mut share1_item = share1_map.get(&i).unwrap().clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/random_forest.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut remainder = ctx.tree_count;
[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/random_forest.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let mut attr_values_bytes = dt_ctx.dt_data.attr_values_bytes.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/random_forest.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let mut class_value_bytes = dt_ctx.dt_data.class_values_bytes.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ti.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut share0_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:513:13
[INFO] [stdout]     |
[INFO] [stdout] 513 |         let mut share1_arc = Arc::new(Mutex::new(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]    --> src/ti.rs:516:17
[INFO] [stdout]     |
[INFO] [stdout] 516 |             let mut share0_arc_copy = Arc::clone(&share0_arc);
[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/ti.rs:517:17
[INFO] [stdout]     |
[INFO] [stdout] 517 |             let mut share1_arc_copy = Arc::clone(&share1_arc);
[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/ti.rs:518:17
[INFO] [stdout]     |
[INFO] [stdout] 518 |             let mut ctx = ctx.clone();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt_training`
[INFO] [stdout]    --> src/random_forest.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let dt_training = decision_tree::train(&mut dt_ctx);
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dt_training`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `major_class_index_receive` is never read
[INFO] [stdout]    --> src/decision_tree.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut major_class_index_receive: Vec<u8> = Vec::new();
[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]   --> src/random_forest.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut remainder = ctx.tree_count;
[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/random_forest.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let mut attr_values_bytes = dt_ctx.dt_data.attr_values_bytes.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/random_forest.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let mut class_value_bytes = dt_ctx.dt_data.class_values_bytes.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut message = RFMessage {
[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/decision_tree.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).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/decision_tree.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]    --> src/decision_tree.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 let precision = ctx.decimal_precision;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut now = SystemTime::now();
[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/decision_tree.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut subset_transaction_bit_vector = ctx.dt_training.subset_transaction_bit_vector.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 |         let mut subset_decimal = change_binary_to_decimal_field(&subset_transaction_bit_vector, ctx);
[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/decision_tree.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut dp_result_map = Arc::new(Mutex::new(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]    --> src/decision_tree.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut dp_result_map = Arc::clone(&dp_result_map);
[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/decision_tree.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |             let mut subset_decimal_cloned = subset_decimal.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let mut class_value_transaction = ctx.dt_data.class_values.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut dp_result_map = &*(dp_result_map.lock().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/decision_tree.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let mut bd_result_map = Arc::new(Mutex::new(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]    --> src/decision_tree.rs:234:17
[INFO] [stdout]     |
[INFO] [stdout] 234 |             let mut bd_result_map = Arc::clone(&bd_result_map);
[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/decision_tree.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut bd_result_map = &*(bd_result_map.lock().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/decision_tree.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let mut arg_max = arg_max(&bit_shares, ctx);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_count`
[INFO] [stdout]   --> src/protocol.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let ti_count = 2 * bit_length + (bit_length * (bit_length - 1) / 2);
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `major_class_index_receive` is never read
[INFO] [stdout]    --> src/decision_tree.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut major_class_index_receive: Vec<u8> = Vec::new();
[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 captured by `key` is never read
[INFO] [stdout]   --> src/protocol.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | ...                   key = i * number_count + j;
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut message = RFMessage {
[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/decision_tree.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).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/decision_tree.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]    --> src/decision_tree.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 let precision = ctx.decimal_precision;
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/protocol.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 let mut list = Vec::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]   --> src/protocol.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut output_map = Arc::new(Mutex::new((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]   --> src/protocol.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         let mut output_map = Arc::clone(&output_map);
[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/protocol.rs:52:29
[INFO] [stdout]    |
[INFO] [stdout] 52 |                         let mut bit_shares = bit_shares.clone();
[INFO] [stdout]    |                             ----^^^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/protocol.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let mut comparison = *output_map.get(&i).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/protocol.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let mut output_map = Arc::new(Mutex::new((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]   --> src/protocol.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut output_map = Arc::clone(&output_map);
[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/decision_tree.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut now = SystemTime::now();
[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/decision_tree.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut subset_transaction_bit_vector = ctx.dt_training.subset_transaction_bit_vector.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 |         let mut subset_decimal = change_binary_to_decimal_field(&subset_transaction_bit_vector, ctx);
[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/decision_tree.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let mut dp_result_map = Arc::new(Mutex::new(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]    --> src/decision_tree.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut dp_result_map = Arc::clone(&dp_result_map);
[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/decision_tree.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |             let mut subset_decimal_cloned = subset_decimal.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut in_stream = ctx.in_stream.try_clone()
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut message = serialize_biguint_vec(diff_list);
[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/protocol.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut diff_list = deserialize_biguint_vec(diff_list_message);
[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/utils.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut result = BigUint::from_bytes_le(&(x.to_bytes_le().clone()));
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:210:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let mut class_value_transaction = ctx.dt_data.class_values.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decision_tree.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let mut dp_result_map = &*(dp_result_map.lock().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/decision_tree.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let mut bd_result_map = Arc::new(Mutex::new(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]    --> src/decision_tree.rs:234:17
[INFO] [stdout]     |
[INFO] [stdout] 234 |             let mut bd_result_map = Arc::clone(&bd_result_map);
[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/decision_tree.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut bd_result_map = &*(bd_result_map.lock().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/decision_tree.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let mut arg_max = arg_max(&bit_shares, ctx);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_count`
[INFO] [stdout]   --> src/protocol.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let ti_count = 2 * bit_length + (bit_length * (bit_length - 1) / 2);
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `key` is never read
[INFO] [stdout]   --> src/protocol.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | ...                   key = i * number_count + j;
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/field_change.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut output = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/field_change.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let mut dummy_list = vec![Wrapping(0u64); binary_numbers.len()];
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/field_change.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut output = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/field_change.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut dummy_list = vec![BigUint::zero(); binary_numbers.len()];
[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/protocol.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 let mut list = Vec::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]   --> src/protocol.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let mut output_map = Arc::new(Mutex::new((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]   --> src/protocol.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 |                         let mut output_map = Arc::clone(&output_map);
[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/protocol.rs:52:29
[INFO] [stdout]    |
[INFO] [stdout] 52 |                         let mut bit_shares = bit_shares.clone();
[INFO] [stdout]    |                             ----^^^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/protocol.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let mut comparison = *output_map.get(&i).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/protocol.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let mut output_map = Arc::new(Mutex::new((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]   --> src/protocol.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut output_map = Arc::clone(&output_map);
[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/or_xor.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...   let mut batch_mul_result = batch_multiplication_integer(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copi...
[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/protocol.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut in_stream = ctx.in_stream.try_clone()
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut message = serialize_biguint_vec(diff_list);
[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/or_xor.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut output_map = Arc::new(Mutex::new(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]   --> src/or_xor.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut output_map = Arc::clone(&output_map);
[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/protocol.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut diff_list = deserialize_biguint_vec(diff_list_message);
[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/or_xor.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut x_list = x_list.clone();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/or_xor.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut y_list = y_list.clone();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/or_xor.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut output = vec![BigUint::zero(); bit_length];
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let mut result = BigUint::from_bytes_le(&(x.to_bytes_le().clone()));
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/or_xor.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 | ...   let mut batch_mul_result = batch_multiply_bigint(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copied);
[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/or_xor.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut output = vec![BigUint::zero(); bit_length];
[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/or_xor.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let mut output_map = Arc::new(Mutex::new(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]   --> src/or_xor.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |             let mut output_map = Arc::clone(&output_map);
[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/or_xor.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let mut x_list = big_uint_vec_clone(x_list);
[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/or_xor.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let mut y_list = big_uint_vec_clone(y_list);
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/field_change.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut output = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `diff_list_message` is never read
[INFO] [stdout]   --> src/multiplication.rs:49:17
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut diff_list_message = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/field_change.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let mut dummy_list = vec![Wrapping(0u64); binary_numbers.len()];
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/field_change.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut output = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/field_change.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut dummy_list = vec![BigUint::zero(); binary_numbers.len()];
[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/or_xor.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...   let mut batch_mul_result = batch_multiplication_integer(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copi...
[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/multiplication.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut diff_list_str_vec: Vec<&str> = diff_list_message.split(";").collect();
[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/or_xor.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut output_map = Arc::new(Mutex::new(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]   --> src/or_xor.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut output_map = Arc::clone(&output_map);
[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/or_xor.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut x_list = x_list.clone();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/or_xor.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mut y_list = y_list.clone();
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `corr_rand`
[INFO] [stdout]    --> src/multiplication.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 |             let corr_rand = &mut ctx.dt_shares.additive_triples;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_corr_rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/or_xor.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut output = vec![BigUint::zero(); bit_length];
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/or_xor.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 | ...   let mut batch_mul_result = batch_multiply_bigint(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copied);
[INFO] [stdout]    |           ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:257:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let mut received_list: Vec<u8> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/or_xor.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let mut output = vec![BigUint::zero(); bit_length];
[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/or_xor.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let mut output_map = Arc::new(Mutex::new(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]   --> src/or_xor.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |             let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let mut message = RFMessage {
[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/or_xor.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let mut x_list = big_uint_vec_clone(x_list);
[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/multiplication.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 260 |             let mut received_message =  search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).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/or_xor.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let mut y_list = big_uint_vec_clone(y_list);
[INFO] [stdout]    |                 ----^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `received_list` is assigned to, but never used
[INFO] [stdout]    --> src/multiplication.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut received_list: Vec<Vec<u8>> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_received_list` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |             received_list = serde_json::from_str(&message_received.message_content).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |             received_list = serde_json::from_str(&message_received.message_content).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `diff_list_message` is never read
[INFO] [stdout]   --> src/multiplication.rs:49:17
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let mut diff_list_message = String::new();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut message = RFMessage {
[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/multiplication.rs:309:17
[INFO] [stdout]     |
[INFO] [stdout] 309 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:366:17
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mut received_list: Vec<Vec<Wrapping<u64>>> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/multiplication.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut diff_list_str_vec: Vec<&str> = diff_list_message.split(";").collect();
[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/multiplication.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let mut message = RFMessage {
[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/multiplication.rs:370:17
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:373:17
[INFO] [stdout]     |
[INFO] [stdout] 373 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `corr_rand`
[INFO] [stdout]    --> src/multiplication.rs:160:17
[INFO] [stdout]     |
[INFO] [stdout] 160 |             let corr_rand = &mut ctx.dt_shares.additive_triples;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_corr_rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:431:25
[INFO] [stdout]     |
[INFO] [stdout] 431 | ...   let mut batch_mul_result = batch_multiplication_byte(&products_copied[i1..temp_index1].to_vec(), &products_copied[i2..temp_index2]....
[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/multiplication.rs:412:17
[INFO] [stdout]     |
[INFO] [stdout] 412 |             let mut to_index1 = size / 2;
[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/multiplication.rs:421:17
[INFO] [stdout]     |
[INFO] [stdout] 421 |             let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:426:21
[INFO] [stdout]     |
[INFO] [stdout] 426 |                 let mut products_copied = products.clone();
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:427:21
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:441:17
[INFO] [stdout]     |
[INFO] [stdout] 441 |             let mut output_map = &*(output_map.lock().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/multiplication.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let mut in_stream = ctx.in_stream.try_clone()
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let mut message = serialize_biguint_vec(diff_list);
[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/multiplication.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let mut diff_list = deserialize_biguint_vec(diff_list_message);
[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/multiplication.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 |             let mut to_index1 = size / 2;
[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/multiplication.rs:508:17
[INFO] [stdout]     |
[INFO] [stdout] 508 |             let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:515:21
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 let mut products_slice = big_uint_vec_clone(&products[i1..temp_index1].to_vec());
[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/multiplication.rs:526:17
[INFO] [stdout]     |
[INFO] [stdout] 526 |             let mut output_map = &*(output_map.lock().unwrap());
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:257:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let mut received_list: Vec<u8> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:553:21
[INFO] [stdout]     |
[INFO] [stdout] 553 | ...   let mut batch_mul_result = batch_multiplication_byte(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copied);
[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/multiplication.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:547:17
[INFO] [stdout]     |
[INFO] [stdout] 547 |             let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:550:17
[INFO] [stdout]     |
[INFO] [stdout] 550 |             let mut x_list = x_list.clone();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 551 |             let mut y_list = y_list.clone();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let mut message = RFMessage {
[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/multiplication.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 260 |             let mut received_message =  search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |             let mut received_message = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `received_list` is assigned to, but never used
[INFO] [stdout]    --> src/multiplication.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut received_list: Vec<Vec<u8>> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_received_list` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |             received_list = serde_json::from_str(&message_received.message_content).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |             received_list = serde_json::from_str(&message_received.message_content).unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/dot_product.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let mut output_map = Arc::clone(&output_map);
[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/dot_product.rs:98:17
[INFO] [stdout]    |
[INFO] [stdout] 98 |             let mut output_map = Arc::clone(&output_map);
[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/dot_product.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let mut x_list_copied = big_uint_vec_clone(&x_list[i..to_index].to_vec());
[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/dot_product.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut y_list_copied = big_uint_vec_clone(&y_list[i..to_index].to_vec());
[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/multiplication.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prime`
[INFO] [stdout]   --> src/comparison.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let prime = BINARY_PRIME;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_shares`
[INFO] [stdout]   --> src/comparison.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let ti_shares = &ctx.dt_shares.binary_triples;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_shares`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:301:13
[INFO] [stdout]     |
[INFO] [stdout] 301 |         let mut message = RFMessage {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_shares_start_index`
[INFO] [stdout]   --> src/comparison.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let ti_shares_start_index = *(ctx.dt_shares.current_binary_index.lock().unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_shares_start_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:309:17
[INFO] [stdout]     |
[INFO] [stdout] 309 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `w` is never read
[INFO] [stdout]   --> src/comparison.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut w = -1;
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).unwrap();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `received_list` is never read
[INFO] [stdout]    --> src/multiplication.rs:366:17
[INFO] [stdout]     |
[INFO] [stdout] 366 |         let mut received_list: Vec<Vec<Wrapping<u64>>> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let mut message = RFMessage {
[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/multiplication.rs:370:17
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:373:17
[INFO] [stdout]     |
[INFO] [stdout] 373 |             let mut message_received = search_pop_message(ctx, message.message_id.clone()).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/multiplication.rs:431:25
[INFO] [stdout]     |
[INFO] [stdout] 431 | ...   let mut batch_mul_result = batch_multiplication_byte(&products_copied[i1..temp_index1].to_vec(), &products_copied[i2..temp_index2]....
[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/comparison.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 | ...   let mut batch_mul_result = batch_multiplication_byte(&temp_mul_e[i..to_index - 1].to_vec(), &temp_mul_e[i + 1..to_index].to_vec(), ...
[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/multiplication.rs:412:17
[INFO] [stdout]     |
[INFO] [stdout] 412 |             let mut to_index1 = size / 2;
[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/multiplication.rs:421:17
[INFO] [stdout]     |
[INFO] [stdout] 421 |             let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:426:21
[INFO] [stdout]     |
[INFO] [stdout] 426 |                 let mut products_copied = products.clone();
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:427:21
[INFO] [stdout]     |
[INFO] [stdout] 427 |                 let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:441:17
[INFO] [stdout]     |
[INFO] [stdout] 441 |             let mut output_map = &*(output_map.lock().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/comparison.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 let mut output_map = Arc::new(Mutex::new(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]   --> src/comparison.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     let mut output_map = Arc::clone(&output_map);
[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/comparison.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut temp_mul_e = temp_mul_e.clone();
[INFO] [stdout]    |                         ----^^^^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/comparison.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut batch_mul_result = batch_multiplication_byte(&multiplication_e_copied, &d_shares_copied, &mut ctx_copied);
[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/multiplication.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let mut in_stream = ctx.in_stream.try_clone()
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |         let mut message = serialize_biguint_vec(diff_list);
[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/multiplication.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let mut diff_list = deserialize_biguint_vec(diff_list_message);
[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/comparison.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut d_shares = vec![0u8; bit_length];
[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/comparison.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut x_list_copied = x_list.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut y_list_copied = y_list.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut d_shares_wrapper = Arc::new(Mutex::new(d_shares));
[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/comparison.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut d_shares_wrapper_copy = Arc::clone(&d_shares_wrapper);
[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/comparison.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut d_shares = (*d_shares_wrapper.lock().unwrap()).clone();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut multiplication_e = vec![0u8; bit_length];
[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/multiplication.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 |             let mut to_index1 = size / 2;
[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/comparison.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut multiplication_e_wrapper = Arc::new(Mutex::new(multiplication_e));
[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/multiplication.rs:508:17
[INFO] [stdout]     |
[INFO] [stdout] 508 |             let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut output_map = Arc::clone(&output_map);
[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/comparison.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut multiplication_e_copied = Arc::clone(&multiplication_e_wrapper);
[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/multiplication.rs:515:21
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 let mut products_slice = big_uint_vec_clone(&products[i1..temp_index1].to_vec());
[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/multiplication.rs:526:17
[INFO] [stdout]     |
[INFO] [stdout] 526 |             let mut output_map = &*(output_map.lock().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/comparison.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut multiplication_e = (*multiplication_e_wrapper.lock().unwrap()).clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/comparison.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut output_map = Arc::new(Mutex::new(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]    --> src/comparison.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let mut output_map = Arc::clone(&output_map);
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_binary_str_vec`
[INFO] [stdout]   --> src/bit_decomposition.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let input_binary_str_vec: Vec<&str> = binary_str.split("").collect();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_binary_str_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/bit_decomposition.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         for i in 0..diff {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:553:21
[INFO] [stdout]     |
[INFO] [stdout] 553 | ...   let mut batch_mul_result = batch_multiplication_byte(&x_list[i..to_index].to_vec(), &y_list[i..to_index].to_vec(), &mut ctx_copied);
[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/multiplication.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let mut output_map = Arc::new(Mutex::new(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]    --> src/multiplication.rs:547:17
[INFO] [stdout]     |
[INFO] [stdout] 547 |             let mut output_map = Arc::clone(&output_map);
[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/multiplication.rs:550:17
[INFO] [stdout]     |
[INFO] [stdout] 550 |             let mut x_list = x_list.clone();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/multiplication.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 551 |             let mut y_list = y_list.clone();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/dot_product.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let mut output_map = Arc::clone(&output_map);
[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/bit_decomposition.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...   let mut batch_mul_result = batch_multiplication_byte(&input_shares[0][i..to_index].to_vec(), &input_shares[1][i..to_index].to_vec()...
[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/dot_product.rs:98:17
[INFO] [stdout]    |
[INFO] [stdout] 98 |             let mut output_map = Arc::clone(&output_map);
[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/bit_decomposition.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut temp0 = vec![0u8; bit_length];
[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/dot_product.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let mut x_list_copied = big_uint_vec_clone(&x_list[i..to_index].to_vec());
[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/dot_product.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut y_list_copied = big_uint_vec_clone(&y_list[i..to_index].to_vec());
[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/bit_decomposition.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let mut temp = temp.clone();
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let mut temp0 = temp0.clone();
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut output_map = Arc::new(Mutex::new(HashMap::new()));
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prime`
[INFO] [stdout]   --> src/comparison.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let prime = BINARY_PRIME;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_shares`
[INFO] [stdout]   --> src/comparison.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let ti_shares = &ctx.dt_shares.binary_triples;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_shares`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut output_map = Arc::clone(&output_map);
[INFO] [stdout]    |                 ----^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti_shares_start_index`
[INFO] [stdout]   --> src/comparison.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let ti_shares_start_index = *(ctx.dt_shares.current_binary_index.lock().unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ti_shares_start_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `w` is never read
[INFO] [stdout]   --> src/comparison.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut w = -1;
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |             let mut input_shares = input_shares.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:74:29
[INFO] [stdout]    |
[INFO] [stdout] 74 | ...   let mut batch_mul_result = batch_multiplication_byte(&temp_mul_e[i..to_index - 1].to_vec(), &temp_mul_e[i + 1..to_index].to_vec(), ...
[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/comparison.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 let mut output_map = Arc::new(Mutex::new(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]   --> src/comparison.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     let mut output_map = Arc::clone(&output_map);
[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/comparison.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut temp_mul_e = temp_mul_e.clone();
[INFO] [stdout]    |                         ----^^^^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/comparison.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut batch_mul_result = batch_multiplication_byte(&multiplication_e_copied, &d_shares_copied, &mut ctx_copied);
[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/message.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut message = (*manager_content).map.remove(&message_id);
[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/comparison.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let mut d_shares = vec![0u8; bit_length];
[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/comparison.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut x_list_copied = x_list.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut y_list_copied = y_list.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut d_shares_wrapper = Arc::new(Mutex::new(d_shares));
[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/comparison.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut d_shares_wrapper_copy = Arc::clone(&d_shares_wrapper);
[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/comparison.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut d_shares = (*d_shares_wrapper.lock().unwrap()).clone();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut ctx_copied = ctx.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/comparison.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut multiplication_e = vec![0u8; bit_length];
[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/comparison.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut multiplication_e_wrapper = Arc::new(Mutex::new(multiplication_e));
[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/comparison.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut multiplication_e_copied = Arc::clone(&multiplication_e_wrapper);
[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/comparison.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut multiplication_e = (*multiplication_e_wrapper.lock().unwrap()).clone();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/comparison.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut output_map = Arc::new(Mutex::new(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]    --> src/comparison.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let mut output_map = Arc::clone(&output_map);
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `Xbuffer` is never used
[INFO] [stdout]   --> src/computing_party.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |     union Xbuffer {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_u64_matrix` is never used
[INFO] [stdout]    --> src/computing_party.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn load_u64_matrix(file_path: &String, instances: usize, add_dummy: bool, one: u64) -> Vec<Vec<Wrapping<u64>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TI_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/ti.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 |     const TI_BATCH_SIZE: usize = constants::TI_BATCH_SIZE;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `U64S_PER_TX` is never used
[INFO] [stdout]   --> src/ti.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 |     const U64S_PER_TX: usize = constants::U64S_PER_TX;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `U8S_PER_TX` is never used
[INFO] [stdout]   --> src/ti.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 |     const U8S_PER_TX: usize = constants::U8S_PER_TX;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `Xbuffer` is never used
[INFO] [stdout]   --> src/ti.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 |     union Xbuffer {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_xor_triple` is never used
[INFO] [stdout]    --> src/ti.rs:575:8
[INFO] [stdout]     |
[INFO] [stdout] 575 |     fn new_xor_triple(rng: &mut rand::ThreadRng) -> ((u64, u64, u64), (u64, u64, u64)) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_binary_str_vec`
[INFO] [stdout]   --> src/bit_decomposition.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let input_binary_str_vec: Vec<&str> = binary_str.split("").collect();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_binary_str_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/bit_decomposition.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         for i in 0..diff {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...   let mut batch_mul_result = batch_multiplication_byte(&input_shares[0][i..to_index].to_vec(), &input_shares[1][i..to_index].to_vec()...
[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/bit_decomposition.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut temp0 = vec![0u8; bit_length];
[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/bit_decomposition.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let mut temp = temp.clone();
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let mut temp0 = temp0.clone();
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bit_decomposition.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut output_map = Arc::new(Mutex::new(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]   --> src/bit_decomposition.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut output_map = Arc::clone(&output_map);
[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/bit_decomposition.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |             let mut input_shares = input_shares.clone();
[INFO] [stdout]    |                 ----^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/computing_party.rs:568:17
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 reader.read_line(&mut line);
[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] 568 |                 let _ = reader.read_line(&mut line);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/computing_party.rs:571:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 (*manager).add_message(&message);
[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] 571 |                 let _ = (*manager).add_message(&message);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ti.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |         stream.write(message_str.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] 406 |         let _ = stream.write(message_str.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/decision_tree.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |             o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).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] 161 |             let _ = o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/decision_tree.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).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] 167 |             let _ = o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/protocol.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         o_stream.write((message + "\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] 115 |         let _ = o_stream.write((message + "\n").as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/multiplication.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 59 |         let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 259 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 265 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/message.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut message = (*manager_content).map.remove(&message_id);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 308 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:314:13
[INFO] [stdout]     |
[INFO] [stdout] 314 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 314 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 369 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 375 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |         o_stream.write((message + "\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] 470 |         let _ = o_stream.write((message + "\n").as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `Xbuffer` is never used
[INFO] [stdout]   --> src/computing_party.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |     union Xbuffer {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_u64_matrix` is never used
[INFO] [stdout]    --> src/computing_party.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn load_u64_matrix(file_path: &String, instances: usize, add_dummy: bool, one: u64) -> Vec<Vec<Wrapping<u64>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TI_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/ti.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 |     const TI_BATCH_SIZE: usize = constants::TI_BATCH_SIZE;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `U64S_PER_TX` is never used
[INFO] [stdout]   --> src/ti.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 |     const U64S_PER_TX: usize = constants::U64S_PER_TX;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `U8S_PER_TX` is never used
[INFO] [stdout]   --> src/ti.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 |     const U8S_PER_TX: usize = constants::U8S_PER_TX;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `Xbuffer` is never used
[INFO] [stdout]   --> src/ti.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 |     union Xbuffer {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_xor_triple` is never used
[INFO] [stdout]    --> src/ti.rs:575:8
[INFO] [stdout]     |
[INFO] [stdout] 575 |     fn new_xor_triple(rng: &mut rand::ThreadRng) -> ((u64, u64, u64), (u64, u64, u64)) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/computing_party.rs:568:17
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 reader.read_line(&mut line);
[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] 568 |                 let _ = reader.read_line(&mut line);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/computing_party.rs:571:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 (*manager).add_message(&message);
[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] 571 |                 let _ = (*manager).add_message(&message);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ti.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |         stream.write(message_str.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] 406 |         let _ = stream.write(message_str.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/decision_tree.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |             o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).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] 161 |             let _ = o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/decision_tree.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).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] 167 |             let _ = o_stream.write(format!("{}\n", serde_json::to_string(&message).unwrap()).as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/protocol.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         o_stream.write((message + "\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] 115 |         let _ = o_stream.write((message + "\n").as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/multiplication.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 59 |         let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 259 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:265:13
[INFO] [stdout]     |
[INFO] [stdout] 265 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 265 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 308 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:314:13
[INFO] [stdout]     |
[INFO] [stdout] 314 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 314 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 369 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:375:13
[INFO] [stdout]     |
[INFO] [stdout] 375 |             o_stream.write((serde_json::to_string(&message).unwrap() + "\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] 375 |             let _ = o_stream.write((serde_json::to_string(&message).unwrap() + "\n").as_bytes());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/multiplication.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |         o_stream.write((message + "\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] 470 |         let _ = o_stream.write((message + "\n").as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 264 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 264 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/main.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{env, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TI`
[INFO] [stdout]  --> src/main.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use random_forest_rust::ti::ti::{TI, initialize_ti_context, run_ti_module};
[INFO] [stdout]   |                                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::BigUint`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::BigUint;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SocketAddr`, `TcpListener`, `TcpStream`
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::net::{TcpListener, TcpStream, SocketAddr};
[INFO] [stdout]    |                ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`
[INFO] [stdout]   --> src/main.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{Write, Read};
[INFO] [stdout]    |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/main.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::integer::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num::integer::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/main.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{env, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TI`
[INFO] [stdout]  --> src/main.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use random_forest_rust::ti::ti::{TI, initialize_ti_context, run_ti_module};
[INFO] [stdout]   |                                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::BigUint`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::BigUint;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SocketAddr`, `TcpListener`, `TcpStream`
[INFO] [stdout]   --> src/main.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::net::{TcpListener, TcpStream, SocketAddr};
[INFO] [stdout]    |                ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `Write`
[INFO] [stdout]   --> src/main.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{Write, Read};
[INFO] [stdout]    |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`, `Serializer`
[INFO] [stdout]   --> src/main.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Serialize, Deserialize, Serializer};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::integer::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num::integer::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 format!("{} encountered a problem while parsing settings: {:?}", &prefix, error))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 46 -                 format!("{} encountered a problem while parsing settings: {:?}", &prefix, error))
[INFO] [stdout] 46 +                 "{} encountered a problem while parsing settings: {:?}", &prefix, error)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 format!("{} encountered a problem while parsing settings: {:?}", &prefix, error))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 46 -                 format!("{} encountered a problem while parsing settings: {:?}", &prefix, error))
[INFO] [stdout] 46 +                 "{} encountered a problem while parsing settings: {:?}", &prefix, error)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 14.17s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v4.2.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "6c08d17ecd417c3e99ccead4d51cdee4502170d703be29cf1461f9fb7e7cf2c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c08d17ecd417c3e99ccead4d51cdee4502170d703be29cf1461f9fb7e7cf2c6", kill_on_drop: false }`
[INFO] [stdout] 6c08d17ecd417c3e99ccead4d51cdee4502170d703be29cf1461f9fb7e7cf2c6
