[INFO] cloning repository https://github.com/Zhongy95/ESX_mining_benchmark
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zhongy95/ESX_mining_benchmark" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZhongy95%2FESX_mining_benchmark", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZhongy95%2FESX_mining_benchmark'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 99e29c81533e848976c603a24234c11ffaed0815
[INFO] testing Zhongy95/ESX_mining_benchmark against 1.75.0 for beta-1.76-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZhongy95%2FESX_mining_benchmark" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Zhongy95/ESX_mining_benchmark on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Zhongy95/ESX_mining_benchmark
[INFO] finished tweaking git repo https://github.com/Zhongy95/ESX_mining_benchmark
[INFO] tweaked toml for git repo https://github.com/Zhongy95/ESX_mining_benchmark written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Zhongy95/ESX_mining_benchmark already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/rwalk/gsdmm-rust`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ident_case v1.0.1
[INFO] [stderr]   Downloaded derivative v2.2.0
[INFO] [stderr]   Downloaded convert_case v0.4.0
[INFO] [stderr]   Downloaded console v0.15.5
[INFO] [stderr]   Downloaded match_cfg v0.1.0
[INFO] [stderr]   Downloaded pbkdf2 v0.11.0
[INFO] [stderr]   Downloaded darling_core v0.13.4
[INFO] [stderr]   Downloaded anstyle-parse v0.2.0
[INFO] [stderr]   Downloaded trust-dns-proto v0.21.2
[INFO] [stderr]   Downloaded tokio v1.26.0
[INFO] [stderr]   Downloaded idna v0.2.3
[INFO] [stderr]   Downloaded mongodb v2.4.0
[INFO] [stderr]   Downloaded clustering v0.1.0
[INFO] [stderr]   Downloaded fp-growth v0.1.6
[INFO] [stderr]   Downloaded linux-raw-sys v0.3.8
[INFO] [stderr]   Downloaded rustix v0.37.3
[INFO] [stderr]   Downloaded bstr v0.2.17
[INFO] [stderr]   Downloaded csv v1.1.6
[INFO] [stderr]   Downloaded darling v0.13.4
[INFO] [stderr]   Downloaded ipconfig v0.3.1
[INFO] [stderr]   Downloaded anyhow v1.0.69
[INFO] [stderr]   Downloaded itoa v0.4.8
[INFO] [stderr]   Downloaded strsim v0.6.0
[INFO] [stderr]   Downloaded bson v2.5.0
[INFO] [stderr]   Downloaded toml v0.7.2
[INFO] [stderr]   Downloaded take_mut v0.2.2
[INFO] [stderr]   Downloaded time-macros v0.2.4
[INFO] [stderr]   Downloaded unicode-bidi v0.3.11
[INFO] [stderr]   Downloaded quote v1.0.28
[INFO] [stderr]   Downloaded async-trait v0.1.66
[INFO] [stderr]   Downloaded utf8parse v0.2.1
[INFO] [stderr]   Downloaded ucd-util v0.1.10
[INFO] [stderr]   Downloaded serde_with_macros v1.5.2
[INFO] [stderr]   Downloaded widestring v0.5.1
[INFO] [stderr]   Downloaded data-encoding v2.3.3
[INFO] [stderr]   Downloaded num_threads v0.1.6
[INFO] [stderr]   Downloaded matches v0.1.10
[INFO] [stderr]   Downloaded ipnet v2.7.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.39
[INFO] [stderr]   Downloaded typed-builder v0.10.0
[INFO] [stderr]   Downloaded trust-dns-resolver v0.21.2
[INFO] [stderr]   Downloaded docopt v0.7.0
[INFO] [stderr]   Downloaded encode_unicode v0.3.6
[INFO] [stderr]   Downloaded portable-atomic v0.3.19
[INFO] [stderr]   Downloaded indicatif v0.17.3
[INFO] [stderr]   Downloaded serde_json v1.0.94
[INFO] [stderr]   Downloaded strsim v0.10.0
[INFO] [stderr]   Downloaded serde_with v1.14.0
[INFO] [stderr]   Downloaded time v0.3.15
[INFO] [stderr]   Downloaded derive_more v0.99.17
[INFO] [stderr]   Downloaded serde_spanned v0.6.1
[INFO] [stderr]   Downloaded thiserror v1.0.39
[INFO] [stderr]   Downloaded hostname v0.3.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.60
[INFO] [stderr]   Downloaded toml_edit v0.19.5
[INFO] [stderr]   Downloaded quick-error v1.2.3
[INFO] [stderr]   Downloaded anstyle-query v1.0.0
[INFO] [stderr]   Downloaded anstyle-wincon v1.0.1
[INFO] [stderr]   Downloaded colorchoice v1.0.0
[INFO] [stderr]   Downloaded io-lifetimes v1.0.11
[INFO] [stderr]   Downloaded syn v2.0.18
[INFO] [stderr]   Downloaded clap_derive v4.3.2
[INFO] [stderr]   Downloaded regex-automata v0.1.10
[INFO] [stderr]   Downloaded csv-core v0.1.10
[INFO] [stderr]   Downloaded aho-corasick v0.6.10
[INFO] [stderr]   Downloaded regex-syntax v0.5.6
[INFO] [stderr]   Downloaded regex v0.2.11
[INFO] [stderr]   Downloaded cxxbridge-macro v1.0.92
[INFO] [stderr]   Downloaded cxx v1.0.92
[INFO] [stderr]   Downloaded clap_builder v4.3.3
[INFO] [stderr]   Downloaded clap v4.3.3
[INFO] [stderr]   Downloaded random_choice v0.3.2
[INFO] [stderr]   Downloaded rustc_version_runtime v0.2.1
[INFO] [stderr]   Downloaded resolv-conf v0.7.0
[INFO] [stderr]   Downloaded cxxbridge-flags v1.0.92
[INFO] [stderr]   Downloaded winnow v0.3.5
[INFO] [stderr]   Downloaded anstream v0.3.2
[INFO] [stderr]   Downloaded anstyle v1.0.0
[INFO] [stderr]   Downloaded toml_datetime v0.6.1
[INFO] [stderr]   Downloaded darling_macro v0.13.4
[INFO] [stderr]   Downloaded utf8-ranges v1.0.5
[INFO] [stderr]   Downloaded lru-cache v0.1.2
[INFO] [stderr]   Downloaded enum-as-inner v0.4.0
[INFO] [stderr]   Downloaded clap_lex v0.5.0
[INFO] [stderr]   Downloaded thread_local v0.3.6
[INFO] [stderr]   Downloaded number_prefix v0.4.0
[INFO] [stderr]   Downloaded is-terminal v0.4.7
[INFO] [stderr]   Downloaded cxx-build v1.0.92
[INFO] [stderr]   Downloaded semver v1.0.16
[INFO] [stderr]   Downloaded rustc_version v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8c60d6589906abfbeaf64af0475a2ecb219f60b4ae71b74dc660d86873b3e243
[INFO] running `Command { std: "docker" "start" "-a" "8c60d6589906abfbeaf64af0475a2ecb219f60b4ae71b74dc660d86873b3e243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8c60d6589906abfbeaf64af0475a2ecb219f60b4ae71b74dc660d86873b3e243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c60d6589906abfbeaf64af0475a2ecb219f60b4ae71b74dc660d86873b3e243", kill_on_drop: false }`
[INFO] [stdout] 8c60d6589906abfbeaf64af0475a2ecb219f60b4ae71b74dc660d86873b3e243
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7b2a58204e91d86554991ada36ea825dc7b697dcf126e52d9c192c8cbd00c13d
[INFO] running `Command { std: "docker" "start" "-a" "7b2a58204e91d86554991ada36ea825dc7b697dcf126e52d9c192c8cbd00c13d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling proc-macro2 v1.0.60
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling typenum v1.16.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling futures-core v0.3.26
[INFO] [stderr]    Compiling cc v1.0.79
[INFO] [stderr]    Compiling once_cell v1.17.1
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling futures-sink v0.3.26
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling futures-channel v0.3.26
[INFO] [stderr]    Compiling futures-task v0.3.26
[INFO] [stderr]    Compiling slab v0.4.8
[INFO] [stderr]    Compiling tokio v1.26.0
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.11
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling generic-array v0.14.6
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling futures-util v0.3.26
[INFO] [stderr]    Compiling futures-io v0.3.26
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling bytes v1.4.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling rustix v0.37.3
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling percent-encoding v2.2.0
[INFO] [stderr]    Compiling async-trait v0.1.66
[INFO] [stderr]    Compiling thiserror v1.0.39
[INFO] [stderr]    Compiling smallvec v1.10.0
[INFO] [stderr]    Compiling linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.7
[INFO] [stderr]    Compiling form_urlencoded v1.1.0
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling idna v0.3.0
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling utf8parse v0.2.1
[INFO] [stderr]    Compiling match_cfg v0.1.0
[INFO] [stderr]    Compiling getrandom v0.2.8
[INFO] [stderr]    Compiling mio v0.8.6
[INFO] [stderr]    Compiling num_cpus v1.15.0
[INFO] [stderr]    Compiling socket2 v0.4.9
[INFO] [stderr]    Compiling signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling itoa v1.0.6
[INFO] [stderr]    Compiling serde_json v1.0.94
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling ucd-util v0.1.10
[INFO] [stderr]    Compiling rustls v0.20.8
[INFO] [stderr]    Compiling matches v0.1.10
[INFO] [stderr]    Compiling ryu v1.0.12
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling regex-syntax v0.5.6
[INFO] [stderr]    Compiling url v2.3.1
[INFO] [stderr]    Compiling rustc_version_runtime v0.2.1
[INFO] [stderr]    Compiling anstyle-parse v0.2.0
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling hostname v0.3.1
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling aho-corasick v0.6.10
[INFO] [stderr]    Compiling thread_local v0.3.6
[INFO] [stderr]    Compiling num_threads v0.1.6
[INFO] [stderr]    Compiling portable-atomic v0.3.19
[INFO] [stderr]    Compiling anstyle v1.0.0
[INFO] [stderr]    Compiling utf8-ranges v1.0.5
[INFO] [stderr]    Compiling ipnet v2.7.1
[INFO] [stderr]    Compiling colorchoice v1.0.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling anstyle-query v1.0.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.53
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling data-encoding v2.3.3
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling digest v0.10.6
[INFO] [stderr]    Compiling cpufeatures v0.2.5
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling resolv-conf v0.7.0
[INFO] [stderr]    Compiling chrono v0.4.23
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling syn v2.0.18
[INFO] [stderr]    Compiling is-terminal v0.4.7
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling anstream v0.3.2
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling clap_lex v0.5.0
[INFO] [stderr]    Compiling anyhow v1.0.69
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling base64 v0.21.0
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]    Compiling winnow v0.3.5
[INFO] [stderr]    Compiling clap_builder v4.3.3
[INFO] [stderr]    Compiling console v0.15.5
[INFO] [stderr]    Compiling rustls-pemfile v1.0.2
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling md-5 v0.10.5
[INFO] [stderr]    Compiling sha-1 v0.10.1
[INFO] [stderr]    Compiling sha2 v0.10.6
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling random_choice v0.3.2
[INFO] [stderr]    Compiling docopt v0.7.0
[INFO] [stderr]    Compiling stringprep v0.1.2
[INFO] [stderr]    Compiling csv-core v0.1.10
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling indicatif v0.17.3
[INFO] [stderr]    Compiling gsdmm v0.1.0 (https://github.com/rwalk/gsdmm-rust#157ae45f)
[INFO] [stderr]    Compiling clustering v0.1.0
[INFO] [stderr]    Compiling fp-growth v0.1.6
[INFO] [stderr]    Compiling time v0.3.15
[INFO] [stderr]    Compiling webpki v0.22.0
[INFO] [stderr]    Compiling sct v0.7.0
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling webpki-roots v0.22.6
[INFO] [stderr]    Compiling clap_derive v4.3.2
[INFO] [stderr]    Compiling tokio-macros v1.8.2
[INFO] [stderr]    Compiling futures-macro v0.3.26
[INFO] [stderr]    Compiling thiserror-impl v1.0.39
[INFO] [stderr]    Compiling enum-as-inner v0.4.0
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling typed-builder v0.10.0
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling clap v4.3.3
[INFO] [stderr]    Compiling futures-executor v0.3.26
[INFO] [stderr]    Compiling futures v0.3.26
[INFO] [stderr]    Compiling trust-dns-proto v0.21.2
[INFO] [stderr]    Compiling tokio-rustls v0.23.4
[INFO] [stderr]    Compiling tokio-util v0.7.7
[INFO] [stderr]    Compiling serde_bytes v0.11.9
[INFO] [stderr]    Compiling serde_spanned v0.6.1
[INFO] [stderr]    Compiling toml_datetime v0.6.1
[INFO] [stderr]    Compiling uuid v1.3.0
[INFO] [stderr]    Compiling bstr v0.2.17
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling toml_edit v0.19.5
[INFO] [stderr]    Compiling csv v1.1.6
[INFO] [stderr]    Compiling trust-dns-resolver v0.21.2
[INFO] [stderr]    Compiling bson v2.5.0
[INFO] [stderr]    Compiling toml v0.7.2
[INFO] [stderr]    Compiling mongodb v2.4.0
[INFO] [stderr]    Compiling esx_mining v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/rule.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]   --> src/rule.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn from_pattern_String(pattern:&Vec<String>)->FilesystemRule{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]    --> src/rule.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 244 |     pub fn from_pattern_String(pattern:&Vec<String>)->NetRule{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]  --> src/main.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault`, `Hash`
[INFO] [stdout]   --> src/main.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::{io};
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::raw::nlink_t`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::process;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{SystemTime, Duration};
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveWeek`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use chrono::NaiveWeek;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientOptions`, `ResolverConfig`
[INFO] [stdout]   --> src/main.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use mongodb::{Client, options::{ClientOptions, ResolverConfig}, bson::doc, Collection};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressState`
[INFO] [stdout]   --> src/main.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | use indicatif::{ProgressBar, ProgressState, ProgressStyle};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]   --> src/main.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | use anyhow::{Context, Result};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::*`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use toml::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clustering::*`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use clustering::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use rand::random;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueEnum`
[INFO] [stdout]   --> src/main.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 | use clap::{Parser, ValueEnum};
[INFO] [stdout]    |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mutex_u64` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stdout]    |      ^^^^^^^^^ help: convert the identifier to upper camel case: `MutexU64`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:826:42
[INFO] [stdout]     |
[INFO] [stdout] 826 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 826 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:846:42
[INFO] [stdout]     |
[INFO] [stdout] 846 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]     |                                    ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 846 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 846 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:852:42
[INFO] [stdout]     |
[INFO] [stdout] 852 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 852 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 852 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:883:42
[INFO] [stdout]     |
[INFO] [stdout] 883 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 883 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 883 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:890:42
[INFO] [stdout]     |
[INFO] [stdout] 890 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 890 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 890 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:897:42
[INFO] [stdout]     |
[INFO] [stdout] 897 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]     |                                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 897 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 897 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:900:42
[INFO] [stdout]     |
[INFO] [stdout] 900 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]     |                                    ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 900 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 900 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:906:42
[INFO] [stdout]     |
[INFO] [stdout] 906 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 906 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 906 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1356:42
[INFO] [stdout]      |
[INFO] [stdout] 1356 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1356 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1356 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1368:42
[INFO] [stdout]      |
[INFO] [stdout] 1368 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1368 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1368 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1372:42
[INFO] [stdout]      |
[INFO] [stdout] 1372 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1372 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1372 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1398:42
[INFO] [stdout]      |
[INFO] [stdout] 1398 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1398 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1398 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1401:42
[INFO] [stdout]      |
[INFO] [stdout] 1401 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1401 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 1401 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1405:42
[INFO] [stdout]      |
[INFO] [stdout] 1405 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]      |                                    ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1405 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 1405 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1408:42
[INFO] [stdout]      |
[INFO] [stdout] 1408 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1408 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1408 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1411:42
[INFO] [stdout]      |
[INFO] [stdout] 1411 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1411 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1411 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1613:42
[INFO] [stdout]      |
[INFO] [stdout] 1613 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1613 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1613 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1629:42
[INFO] [stdout]      |
[INFO] [stdout] 1629 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1629 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1629 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1633:42
[INFO] [stdout]      |
[INFO] [stdout] 1633 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1633 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1633 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1661:42
[INFO] [stdout]      |
[INFO] [stdout] 1661 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1661 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1661 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1666:42
[INFO] [stdout]      |
[INFO] [stdout] 1666 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1666 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 1666 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1671:42
[INFO] [stdout]      |
[INFO] [stdout] 1671 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]      |                                    ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1671 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 1671 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1674:42
[INFO] [stdout]      |
[INFO] [stdout] 1674 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1674 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1674 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1679:42
[INFO] [stdout]      |
[INFO] [stdout] 1679 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1679 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1679 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/main.rs:2059:106
[INFO] [stdout]      |
[INFO] [stdout] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |                                                                                                          ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2059 - fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout] 2059 + fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/main.rs:2461:69
[INFO] [stdout]      |
[INFO] [stdout] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |                                                                     ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2461 - async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout] 2461 + async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::os::unix::raw::nlink_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]   --> src/main.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_set`
[INFO] [stdout]    --> src/main.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 | ...   let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),obp_rate.clone()).await?; ...
[INFO] [stdout]     |           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_set`
[INFO] [stdout]    --> src/main.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),1.0).await?;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 374 |     let mut file = OpenOptions::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: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcation_new`
[INFO] [stdout]    --> src/main.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let mut transcation_new:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcation_new`
[INFO] [stdout]    --> src/main.rs:470:13
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut transcation_new:Vec<Vec<String>> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs`
[INFO] [stdout]    --> src/main.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |     let mut transaction_docs:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs_distinct`
[INFO] [stdout]    --> src/main.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let transaction_original_distinct:Collection<EsxLog> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:462:28
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                            ----^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let mut transcation_new:Vec<Document> = 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/main.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut transcation_new:Vec<Vec<String>> = 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/main.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |     let mut transaction_docs:Vec<Document> = 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/main.rs:473:9
[INFO] [stdout]     |
[INFO] [stdout] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transactions` is never read
[INFO] [stdout]     --> src/main.rs:1871:13
[INFO] [stdout]      |
[INFO] [stdout] 1871 |     let mut transactions:Vec<Vec<String>> = 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 assigned to `unique_set` is never read
[INFO] [stdout]     --> src/main.rs:1872:13
[INFO] [stdout]      |
[INFO] [stdout] 1872 |     let mut unique_set = HashSet::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 `transactions_to_output` is never read
[INFO] [stdout]     --> src/main.rs:1873:13
[INFO] [stdout]      |
[INFO] [stdout] 1873 |     let mut transactions_to_output = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]     --> src/main.rs:2595:9
[INFO] [stdout]      |
[INFO] [stdout] 2595 |     let transaction_original_distinct = client.database("esx_mining").collection::<EsxLog>("transacation_distinct_backup");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs_distinct`
[INFO] [stdout]     --> src/main.rs:2603:13
[INFO] [stdout]      |
[INFO] [stdout] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:9
[INFO] [stdout]      |
[INFO] [stdout] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2603:9
[INFO] [stdout]      |
[INFO] [stdout] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mongo_backup`
[INFO] [stdout]    --> src/main.rs:994:77
[INFO] [stdout]     |
[INFO] [stdout] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mongo_backup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original`
[INFO] [stdout]    --> src/main.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:998:9
[INFO] [stdout]     |
[INFO] [stdout] 998 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1026:12
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         Ok(r)=>{},
[INFO] [stdout]      |            ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1027:13
[INFO] [stdout]      |
[INFO] [stdout] 1027 |         Err(e) =>{}
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distinct_item_pipe_line`
[INFO] [stdout]     --> src/main.rs:1037:9
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     let distinct_item_pipe_line = vec![
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_item_pipe_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_count_1`
[INFO] [stdout]     --> src/main.rs:1134:13
[INFO] [stdout]      |
[INFO] [stdout] 1134 |     let mut para_count_1 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_count_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1209:16
[INFO] [stdout]      |
[INFO] [stdout] 1209 |             Ok(r) =>{},
[INFO] [stdout]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1210:17
[INFO] [stdout]      |
[INFO] [stdout] 1210 |             Err(e) =>{}
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1271:16
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             Ok(r)=>{},
[INFO] [stdout]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1272:17
[INFO] [stdout]      |
[INFO] [stdout] 1272 |             Err(e)=>{}
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid`
[INFO] [stdout]     --> src/main.rs:1286:10
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     for (gid,db) in gid_collection_map{
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_gid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1134:9
[INFO] [stdout]      |
[INFO] [stdout] 1134 |     let mut para_count_1 = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1180:13
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         let mut index_option = IndexOptions::builder().unique(true).build();
[INFO] [stdout]      |             ----^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let start_time = SystemTime::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distinct_len`
[INFO] [stdout]    --> src/main.rs:298:13
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let distinct_len = transaction_original_distinct.estimated_document_count(None).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR` is never read
[INFO] [stdout]    --> src/main.rs:352:17
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut TPR = 0.0;
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stdout]    --> src/main.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]    --> src/main.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[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/main.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut policy_cover_count_distinct = distinct_len+scoring_num_distinct-union_num_unique;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let mut policy_cover_count = distinct_len+scoring_num-union_num;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:509:32
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutcount`
[INFO] [stdout]    --> src/main.rs:511:10
[INFO] [stdout]     |
[INFO] [stdout] 511 |     let  mutcount = 0;
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutcount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_vec`
[INFO] [stdout]    --> src/main.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let mut rule_vec :Vec<String>= Vec::new();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fs_rule_vec`
[INFO] [stdout]    --> src/main.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fs_rule_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original`
[INFO] [stdout]    --> src/main.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_space_size`
[INFO] [stdout]    --> src/main.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 527 |     let para_space_size = client.database("esx_mining").collection::<Document>("para_space_original").estimated_document_count(None).awai...
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/main.rs:585:17
[INFO] [stdout]     |
[INFO] [stdout] 585 |             let len = &frequent_pattern.len();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:601:26
[INFO] [stdout]     |
[INFO] [stdout] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `unique_space_count` is never read
[INFO] [stdout]    --> src/main.rs:601:57
[INFO] [stdout]     |
[INFO] [stdout] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:610:29
[INFO] [stdout]     |
[INFO] [stdout] 610 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().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 `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:643:29
[INFO] [stdout]     |
[INFO] [stdout] 643 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().unwrap();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Qrul_count`
[INFO] [stdout]    --> src/main.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l_distance`
[INFO] [stdout]    --> src/main.rs:679:21
[INFO] [stdout]     |
[INFO] [stdout] 679 |                 let l_distance = 0.0-(log_entries_len as f64 - cover_logs_count)-(omega*over_assignment_total);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `harmonic_mean`
[INFO] [stdout]    --> src/main.rs:680:21
[INFO] [stdout]     |
[INFO] [stdout] 680 |                 let harmonic_mean = (1.0+(omega*omega)) * ((overate*coverage_rate_fn)/(((omega*omega)*overate)+coverage_rate_fn));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Qrul_freq`
[INFO] [stdout]    --> src/main.rs:682:21
[INFO] [stdout]     |
[INFO] [stdout] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_freq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `C_scores`
[INFO] [stdout]    --> src/main.rs:684:21
[INFO] [stdout]     |
[INFO] [stdout] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_C_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transacation_back` is never read
[INFO] [stdout]    --> src/main.rs:704:17
[INFO] [stdout]     |
[INFO] [stdout] 704 |         let mut transacation_back = transactions.clone();
[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/main.rs:509:28
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                            ----^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:515:9
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let mut rule_vec :Vec<String>= 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/main.rs:516:9
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = 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/main.rs:2035:13
[INFO] [stdout]      |
[INFO] [stdout] 2035 |         let mut fs_rule_doc = fsrule.to_mongodb_doc();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2042:13
[INFO] [stdout]      |
[INFO] [stdout] 2042 |         let mut net_rule_doc = netrule.to_mongodb_doc();
[INFO] [stdout]      |             ----^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cover_logs_count`
[INFO] [stdout]     --> src/main.rs:2335:13
[INFO] [stdout]      |
[INFO] [stdout] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unique_cover_logs_count`
[INFO] [stdout]     --> src/main.rs:2336:13
[INFO] [stdout]      |
[INFO] [stdout] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_cover_logs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transactions_count`
[INFO] [stdout]     --> src/main.rs:2337:13
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transactions_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `over_rate`
[INFO] [stdout]     --> src/main.rs:2338:13
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let mut over_rate = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_over_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cover_logs_count3`
[INFO] [stdout]     --> src/main.rs:2360:13
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time`
[INFO] [stdout]     --> src/main.rs:2378:13
[INFO] [stdout]      |
[INFO] [stdout] 2378 |         let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time_t`
[INFO] [stdout]     --> src/main.rs:2379:13
[INFO] [stdout]      |
[INFO] [stdout] 2379 |         let find_time_t = SystemTime::now();
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time`
[INFO] [stdout]     --> src/main.rs:2400:17
[INFO] [stdout]      |
[INFO] [stdout] 2400 |             let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time_t`
[INFO] [stdout]     --> src/main.rs:2401:17
[INFO] [stdout]      |
[INFO] [stdout] 2401 |             let find_time_t = SystemTime::now();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_time`
[INFO] [stdout]     --> src/main.rs:2404:13
[INFO] [stdout]      |
[INFO] [stdout] 2404 |         let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2335:9
[INFO] [stdout]      |
[INFO] [stdout] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2336:9
[INFO] [stdout]      |
[INFO] [stdout] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2337:9
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2338:9
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let mut over_rate = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2360:9
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:11
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |           ----^^^^^^^^^^^^
[INFO] [stdout]      |           |
[INFO] [stdout]      |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:28
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |                            ----^^^^^^^^^^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:43
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |                                           ----^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]     --> src/main.rs:2501:9
[INFO] [stdout]      |
[INFO] [stdout] 2501 |     let start_time = SystemTime::now();
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR` is never read
[INFO] [stdout]     --> src/main.rs:2569:13
[INFO] [stdout]      |
[INFO] [stdout] 2569 |     let mut TPR = 0.0;
[INFO] [stdout]      |             ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stdout]     --> src/main.rs:2570:13
[INFO] [stdout]      |
[INFO] [stdout] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]     --> src/main.rs:2578:9
[INFO] [stdout]      |
[INFO] [stdout] 2578 |     let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wtr`
[INFO] [stdout]    --> src/main.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_wtr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loaded_num`
[INFO] [stdout]    --> src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let loaded_num = 2000000;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut file = OpenOptions::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/main.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/main.rs:417:9
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let k            =     4; // # of clusters in the result
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_iter`
[INFO] [stdout]    --> src/main.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let max_iter     =    10; // max number of iterations before the clustering forcefully stops
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_space`
[INFO] [stdout]    --> src/main.rs:423:32
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trans_len`
[INFO] [stdout]    --> src/main.rs:439:9
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let trans_len = transactions.len().clone();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trans_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:11
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |           ----^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:28
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                            ----^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:43
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                           ----^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]    --> src/main.rs:760:13
[INFO] [stdout]     |
[INFO] [stdout] 760 |     let mut if_broken = false;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:798:17
[INFO] [stdout]     |
[INFO] [stdout] 798 |             Err(e)=>{
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:753:9
[INFO] [stdout]     |
[INFO] [stdout] 753 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 771 |     let mut unique_uid_net:Vec<String> = 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/main.rs:772:9
[INFO] [stdout]     |
[INFO] [stdout] 772 |     let mut unique_gid_net:Vec<String> = 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/main.rs:795:13
[INFO] [stdout]     |
[INFO] [stdout] 795 |         let mut record;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after_count`
[INFO] [stdout]     --> src/main.rs:1313:13
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     let mut after_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]     --> src/main.rs:1314:13
[INFO] [stdout]      |
[INFO] [stdout] 1314 |     let mut if_broken = false;
[INFO] [stdout]      |             ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1328:17
[INFO] [stdout]      |
[INFO] [stdout] 1328 |             Err(e)=>{
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uid_tmp`
[INFO] [stdout]     --> src/main.rs:1344:25
[INFO] [stdout]      |
[INFO] [stdout] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid_tmp`
[INFO] [stdout]     --> src/main.rs:1345:25
[INFO] [stdout]      |
[INFO] [stdout] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uid_tmp`
[INFO] [stdout]     --> src/main.rs:1387:25
[INFO] [stdout]      |
[INFO] [stdout] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid_tmp`
[INFO] [stdout]     --> src/main.rs:1388:25
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1302:9
[INFO] [stdout]      |
[INFO] [stdout] 1302 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     let mut after_count = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1325:13
[INFO] [stdout]      |
[INFO] [stdout] 1325 |         let mut record;
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1344:21
[INFO] [stdout]      |
[INFO] [stdout] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1345:21
[INFO] [stdout]      |
[INFO] [stdout] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1387:21
[INFO] [stdout]      |
[INFO] [stdout] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]     --> src/main.rs:1451:13
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `unique_gid_uid_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1459:13
[INFO] [stdout]      |
[INFO] [stdout] 1459 |     let mut unique_gid_uid_file_tmp:HashSet<(String,String)> = HashSet::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 `unique_op_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1460:13
[INFO] [stdout]      |
[INFO] [stdout] 1460 |     let mut unique_op_file_tmp:HashSet<String> = HashSet::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 `unique_res_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1461:13
[INFO] [stdout]      |
[INFO] [stdout] 1461 |     let mut unique_res_file_tmp:HashSet<String> = HashSet::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 `unique_gid_uid_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1469:13
[INFO] [stdout]      |
[INFO] [stdout] 1469 |     let mut unique_gid_uid_net_tmp:HashSet<(String,String)> = HashSet::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 `unique_op_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1470:13
[INFO] [stdout]      |
[INFO] [stdout] 1470 |     let mut unique_op_net_tmp:HashSet<String> = HashSet::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 `unique_res_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1471:13
[INFO] [stdout]      |
[INFO] [stdout] 1471 |     let mut unique_res_net_tmp:HashSet<String> = HashSet::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 `transactions_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1472:13
[INFO] [stdout]      |
[INFO] [stdout] 1472 |     let mut transactions_tmp:Vec<Vec<String>> = 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 `unique_set_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1474:13
[INFO] [stdout]      |
[INFO] [stdout] 1474 |     let mut unique_set_tmp:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1446:9
[INFO] [stdout]      |
[INFO] [stdout] 1446 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1451:9
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]     --> src/main.rs:1546:13
[INFO] [stdout]      |
[INFO] [stdout] 1546 |     let mut if_broken = false;
[INFO] [stdout]      |             ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1585:17
[INFO] [stdout]      |
[INFO] [stdout] 1585 |             Err(e)=>{
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1539:9
[INFO] [stdout]      |
[INFO] [stdout] 1539 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1582:13
[INFO] [stdout]      |
[INFO] [stdout] 1582 |         let mut record;
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unique_logs_count_t`
[INFO] [stdout]     --> src/main.rs:2145:13
[INFO] [stdout]      |
[INFO] [stdout] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_logs_count_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `influence`
[INFO] [stdout]     --> src/main.rs:2152:13
[INFO] [stdout]      |
[INFO] [stdout] 2152 |         let influence = fsrule.create_influence_vec();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transacation_cp`
[INFO] [stdout]     --> src/main.rs:2153:17
[INFO] [stdout]      |
[INFO] [stdout] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transacation_cp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `influence`
[INFO] [stdout]     --> src/main.rs:2242:13
[INFO] [stdout]      |
[INFO] [stdout] 2242 |         let influence = netrule.create_influence_vec();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_time`
[INFO] [stdout]     --> src/main.rs:2261:9
[INFO] [stdout]      |
[INFO] [stdout] 2261 |     let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2145:9
[INFO] [stdout]      |
[INFO] [stdout] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2153:13
[INFO] [stdout]      |
[INFO] [stdout] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `mutex_u64` is never used
[INFO] [stdout]   --> src/main.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basline_test` is never used
[INFO] [stdout]    --> src/main.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 | async fn basline_test()->Result<()>{
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clustering_test` is never used
[INFO] [stdout]    --> src/main.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn clustering_test(){
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mining_rule_with_baseline` is never used
[INFO] [stdout]    --> src/main.rs:457:10
[INFO] [stdout]     |
[INFO] [stdout] 457 | async fn mining_rule_with_baseline(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64)->Result<()>{
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mining_rule_with_fp_growth` is never used
[INFO] [stdout]    --> src/main.rs:504:10
[INFO] [stdout]     |
[INFO] [stdout] 504 | async fn mining_rule_with_fp_growth(data_path:&str,omega:f64,loaded_num:u64,scoring_rate:f64,obp_rate:f64,support_rate:f64)->Result<Vec<V...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv` is never used
[INFO] [stdout]    --> src/main.rs:751:4
[INFO] [stdout]     |
[INFO] [stdout] 751 | fn load_csv(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_with_para_and_backup_loaded` is never used
[INFO] [stdout]    --> src/main.rs:994:10
[INFO] [stdout]     |
[INFO] [stdout] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_data_pure` is never used
[INFO] [stdout]     --> src/main.rs:1299:4
[INFO] [stdout]      |
[INFO] [stdout] 1299 | fn load_csv_data_pure(data_path:&str,loaded_num:u64) ->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_by_shard` is never used
[INFO] [stdout]     --> src/main.rs:1443:4
[INFO] [stdout]      |
[INFO] [stdout] 1443 | fn load_csv_by_shard(data_path:&str,loaded_num:u64)-> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_by_shard_loop` is never used
[INFO] [stdout]     --> src/main.rs:1537:4
[INFO] [stdout]      |
[INFO] [stdout] 1537 | fn load_csv_by_shard_loop(data_path:&str,loaded_num:u64,after_num:u64) -> Result<(Vec<Vec<String>>,HashSet<String>,(HashSet<(String,Strin...
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_to_mongodb` is never used
[INFO] [stdout]     --> src/main.rs:1767:10
[INFO] [stdout]      |
[INFO] [stdout] 1767 | async fn load_csv_to_mongodb(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_to_mongodb_with_scoring` is never used
[INFO] [stdout]     --> src/main.rs:1857:10
[INFO] [stdout]      |
[INFO] [stdout] 1857 | async fn load_csv_to_mongodb_with_scoring(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64) -> Result<(Vec<Vec<String>>,HashSe...
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_coverage_rate_mongo` is never used
[INFO] [stdout]     --> src/main.rs:2021:10
[INFO] [stdout]      |
[INFO] [stdout] 2021 | async fn calculating_coverage_rate_mongo(frequent_pattern:&Vec<&str>) -> Result<(f64,usize,f64)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_logs_from_rule_normal` is never used
[INFO] [stdout]     --> src/main.rs:2059:4
[INFO] [stdout]      |
[INFO] [stdout] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_coverage_rate` is never used
[INFO] [stdout]     --> src/main.rs:2142:4
[INFO] [stdout]      |
[INFO] [stdout] 2142 | fn calculating_coverage_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize,f64)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_over_rate` is never used
[INFO] [stdout]     --> src/main.rs:2269:4
[INFO] [stdout]      |
[INFO] [stdout] 2269 | fn calculating_over_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_overate_rate_mongo` is never used
[INFO] [stdout]     --> src/main.rs:2329:10
[INFO] [stdout]      |
[INFO] [stdout] 2329 | async fn calculating_overate_rate_mongo(frequent_pattern:&Vec<&str>,para_space_len:f64) -> Result<(f64,usize)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cover_logs_from_collection` is never used
[INFO] [stdout]     --> src/main.rs:2446:10
[INFO] [stdout]      |
[INFO] [stdout] 2446 | async fn get_cover_logs_from_collection(query_doc:Document,mutex_count:mutex_u64,col:Collection<Document>){
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_logs_from_rule` is never used
[INFO] [stdout]     --> src/main.rs:2461:10
[INFO] [stdout]      |
[INFO] [stdout] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluation_policy` is never used
[INFO] [stdout]     --> src/main.rs:2500:10
[INFO] [stdout]      |
[INFO] [stdout] 2500 | async fn evaluation_policy(frequent_pattern_set:&Vec<Vec<String>>)->Result<(f64,f64,f64,f64,f64)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_mongodb_to_vec` is never used
[INFO] [stdout]     --> src/main.rs:2592:10
[INFO] [stdout]      |
[INFO] [stdout] 2592 | async fn load_mongodb_to_vec() ->Result<(Vec<Vec<String>>,Vec<Document>,HashSet<String>)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stdout]    --> src/main.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let transaction_len_of_OPP =scoring_num.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |         let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 345 |         let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:347:17
[INFO] [stdout]     |
[INFO] [stdout] 347 | ...   let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalseP...
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:352:17
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut TPR = 0.0;
[INFO] [stdout]     |                 ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |         let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stdout]     |             ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                       ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:27
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                           ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:32
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:38
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                      ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:19
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                   ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:23
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                       ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:28
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                            ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:34
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                  ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:404:14
[INFO] [stdout]     |
[INFO] [stdout] 404 |         "1.0".clone().to_string(),
[INFO] [stdout]     |              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:423:47
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                               ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:509:32
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Qrul_count` should have a snake case name
[INFO] [stdout]    --> src/main.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `qrul_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Qrul_freq` should have a snake case name
[INFO] [stdout]    --> src/main.rs:682:21
[INFO] [stdout]     |
[INFO] [stdout] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^ help: convert the identifier to snake case: `qrul_freq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C_scores` should have a snake case name
[INFO] [stdout]    --> src/main.rs:684:21
[INFO] [stdout]     |
[INFO] [stdout] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stdout]     |                     ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `c_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:729:62
[INFO] [stdout]     |
[INFO] [stdout] 729 |         println!("len of trans:{},len of back:{}", &trans_len.borrow(), len_after_delete);
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `usize` does not implement `Borrow`, so calling `borrow` on `&usize` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:952:13
[INFO] [stdout]     |
[INFO] [stdout] 952 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1056:66
[INFO] [stdout]      |
[INFO] [stdout] 1056 | ...                   "logtype":"$logtype","item":item_type.clone()
[INFO] [stdout]      |                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1059:55
[INFO] [stdout]      |
[INFO] [stdout] 1059 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stdout]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1084:55
[INFO] [stdout]      |
[INFO] [stdout] 1084 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stdout]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1194:47
[INFO] [stdout]      |
[INFO] [stdout] 1194 |                         "logtype": logtype_tmp.clone(),
[INFO] [stdout]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1256:47
[INFO] [stdout]      |
[INFO] [stdout] 1256 |                         "logtype": logtype_tmp.clone(),
[INFO] [stdout]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1473:13
[INFO] [stdout]      |
[INFO] [stdout] 1473 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1721:13
[INFO] [stdout]      |
[INFO] [stdout] 1721 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `length_of_OBP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1870:9
[INFO] [stdout]      |
[INFO] [stdout] 1870 |     let length_of_OBP = (loaded_num as f64 * (1.0-scoring_rate)) as usize;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `length_of_OBP_true` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1881:13
[INFO] [stdout]      |
[INFO] [stdout] 1881 |         let length_of_OBP_true = (length_of_OBP as f64 * obp_rate) as usize;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_of_OBP_count` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1942:21
[INFO] [stdout]      |
[INFO] [stdout] 1942 |             let mut log_of_OBP_count:usize = 0;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `log_of_obp_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2524:9
[INFO] [stdout]      |
[INFO] [stdout] 2524 |     let transaction_len_of_OPP = transaction_scoring.count_documents(None,None).await.expect("failed to connect to mongo");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2525:9
[INFO] [stdout]      |
[INFO] [stdout] 2525 |     let transaction_len_of_OPP_distinct = transaction_scoring_distinct.count_documents(None,None).await.expect("failed to connect to mong...
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2553:9
[INFO] [stdout]      |
[INFO] [stdout] 2553 |     let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2554:9
[INFO] [stdout]      |
[INFO] [stdout] 2554 |     let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2556:9
[INFO] [stdout]      |
[INFO] [stdout] 2556 |     let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2557:9
[INFO] [stdout]      |
[INFO] [stdout] 2557 |     let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2558:9
[INFO] [stdout]      |
[INFO] [stdout] 2558 |     let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2562:9
[INFO] [stdout]      |
[INFO] [stdout] 2562 |     let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2564:13
[INFO] [stdout]      |
[INFO] [stdout] 2564 |     let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalsePos...
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2569:13
[INFO] [stdout]      |
[INFO] [stdout] 2569 |     let mut TPR = 0.0;
[INFO] [stdout]      |             ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2570:13
[INFO] [stdout]      |
[INFO] [stdout] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2577:9
[INFO] [stdout]      |
[INFO] [stdout] 2577 |     let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stdout]      |         ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2585:9
[INFO] [stdout]      |
[INFO] [stdout] 2585 |     let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 264 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 45s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "7b2a58204e91d86554991ada36ea825dc7b697dcf126e52d9c192c8cbd00c13d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b2a58204e91d86554991ada36ea825dc7b697dcf126e52d9c192c8cbd00c13d", kill_on_drop: false }`
[INFO] [stdout] 7b2a58204e91d86554991ada36ea825dc7b697dcf126e52d9c192c8cbd00c13d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c000f55eaaceeacf2c7c60b114afa366582743098f1f8cc7235058f46662c79a
[INFO] running `Command { std: "docker" "start" "-a" "c000f55eaaceeacf2c7c60b114afa366582743098f1f8cc7235058f46662c79a", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/rule.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]   --> src/rule.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn from_pattern_String(pattern:&Vec<String>)->FilesystemRule{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]    --> src/rule.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 244 |     pub fn from_pattern_String(pattern:&Vec<String>)->NetRule{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling esx_mining v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/rule.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BorrowMut`
[INFO] [stdout]  --> src/main.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault`, `Hash`
[INFO] [stdout]   --> src/main.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io`
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::{io};
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::raw::nlink_t`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::process;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{SystemTime, Duration};
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveWeek`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use chrono::NaiveWeek;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClientOptions`, `ResolverConfig`
[INFO] [stdout]   --> src/main.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use mongodb::{Client, options::{ClientOptions, ResolverConfig}, bson::doc, Collection};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressState`
[INFO] [stdout]   --> src/main.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 | use indicatif::{ProgressBar, ProgressState, ProgressStyle};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]   --> src/main.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | use anyhow::{Context, Result};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::*`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use toml::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clustering::*`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use clustering::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use rand::random;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueEnum`
[INFO] [stdout]   --> src/main.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 | use clap::{Parser, ValueEnum};
[INFO] [stdout]    |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mutex_u64` should have an upper camel case name
[INFO] [stdout]   --> src/main.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stdout]    |      ^^^^^^^^^ help: convert the identifier to upper camel case: `MutexU64`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:826:42
[INFO] [stdout]     |
[INFO] [stdout] 826 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 826 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:846:42
[INFO] [stdout]     |
[INFO] [stdout] 846 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]     |                                    ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 846 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 846 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:852:42
[INFO] [stdout]     |
[INFO] [stdout] 852 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 852 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 852 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:883:42
[INFO] [stdout]     |
[INFO] [stdout] 883 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 883 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 883 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:890:42
[INFO] [stdout]     |
[INFO] [stdout] 890 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 890 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 890 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:897:42
[INFO] [stdout]     |
[INFO] [stdout] 897 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]     |                                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 897 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 897 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:900:42
[INFO] [stdout]     |
[INFO] [stdout] 900 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]     |                                    ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 900 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 900 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:906:42
[INFO] [stdout]     |
[INFO] [stdout] 906 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]     |                                    ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 906 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 906 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1356:42
[INFO] [stdout]      |
[INFO] [stdout] 1356 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1356 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1356 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1368:42
[INFO] [stdout]      |
[INFO] [stdout] 1368 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1368 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1368 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1372:42
[INFO] [stdout]      |
[INFO] [stdout] 1372 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1372 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1372 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1398:42
[INFO] [stdout]      |
[INFO] [stdout] 1398 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1398 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1398 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1401:42
[INFO] [stdout]      |
[INFO] [stdout] 1401 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1401 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 1401 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1405:42
[INFO] [stdout]      |
[INFO] [stdout] 1405 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]      |                                    ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1405 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 1405 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1408:42
[INFO] [stdout]      |
[INFO] [stdout] 1408 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1408 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1408 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1411:42
[INFO] [stdout]      |
[INFO] [stdout] 1411 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1411 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1411 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1613:42
[INFO] [stdout]      |
[INFO] [stdout] 1613 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1613 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1613 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1629:42
[INFO] [stdout]      |
[INFO] [stdout] 1629 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1629 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1629 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1633:42
[INFO] [stdout]      |
[INFO] [stdout] 1633 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1633 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1633 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1661:42
[INFO] [stdout]      |
[INFO] [stdout] 1661 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1661 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stdout] 1661 +                             single_str = String::from("UID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1666:42
[INFO] [stdout]      |
[INFO] [stdout] 1666 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1666 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stdout] 1666 +                             single_str = String::from("GID:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1671:42
[INFO] [stdout]      |
[INFO] [stdout] 1671 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stdout]      |                                    ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1671 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stdout] 1671 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1674:42
[INFO] [stdout]      |
[INFO] [stdout] 1674 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stdout]      |                                    ^                               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1674 -                             single_str = (String::from("op:") +single_com);
[INFO] [stdout] 1674 +                             single_str = String::from("op:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1679:42
[INFO] [stdout]      |
[INFO] [stdout] 1679 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stdout]      |                                    ^                                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1679 -                             single_str = (String::from("res:") +single_com);
[INFO] [stdout] 1679 +                             single_str = String::from("res:") +single_com;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/main.rs:2059:106
[INFO] [stdout]      |
[INFO] [stdout] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |                                                                                                          ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2059 - fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout] 2059 + fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/main.rs:2461:69
[INFO] [stdout]      |
[INFO] [stdout] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |                                                                     ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 2461 - async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout] 2461 + async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::os::unix::raw::nlink_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]   --> src/main.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]   --> src/rule.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn from_pattern_String(pattern:&Vec<String>)->FilesystemRule{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_set`
[INFO] [stdout]    --> src/main.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 | ...   let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),obp_rate.clone()).await?; ...
[INFO] [stdout]     |           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_pattern_String` should have a snake case name
[INFO] [stdout]    --> src/rule.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 244 |     pub fn from_pattern_String(pattern:&Vec<String>)->NetRule{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_set`
[INFO] [stdout]    --> src/main.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),1.0).await?;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 374 |     let mut file = OpenOptions::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: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcation_new`
[INFO] [stdout]    --> src/main.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let mut transcation_new:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transcation_new`
[INFO] [stdout]    --> src/main.rs:470:13
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut transcation_new:Vec<Vec<String>> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs`
[INFO] [stdout]    --> src/main.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |     let mut transaction_docs:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs_distinct`
[INFO] [stdout]    --> src/main.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let transaction_original_distinct:Collection<EsxLog> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:462:28
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                            ----^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let mut transcation_new:Vec<Document> = 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/main.rs:470:9
[INFO] [stdout]     |
[INFO] [stdout] 470 |     let mut transcation_new:Vec<Vec<String>> = 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/main.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:472:9
[INFO] [stdout]     |
[INFO] [stdout] 472 |     let mut transaction_docs:Vec<Document> = 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/main.rs:473:9
[INFO] [stdout]     |
[INFO] [stdout] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transactions` is never read
[INFO] [stdout]     --> src/main.rs:1871:13
[INFO] [stdout]      |
[INFO] [stdout] 1871 |     let mut transactions:Vec<Vec<String>> = 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 assigned to `unique_set` is never read
[INFO] [stdout]     --> src/main.rs:1872:13
[INFO] [stdout]      |
[INFO] [stdout] 1872 |     let mut unique_set = HashSet::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 `transactions_to_output` is never read
[INFO] [stdout]     --> src/main.rs:1873:13
[INFO] [stdout]      |
[INFO] [stdout] 1873 |     let mut transactions_to_output = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]     --> src/main.rs:2595:9
[INFO] [stdout]      |
[INFO] [stdout] 2595 |     let transaction_original_distinct = client.database("esx_mining").collection::<EsxLog>("transacation_distinct_backup");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_docs_distinct`
[INFO] [stdout]     --> src/main.rs:2603:13
[INFO] [stdout]      |
[INFO] [stdout] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:9
[INFO] [stdout]      |
[INFO] [stdout] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2603:9
[INFO] [stdout]      |
[INFO] [stdout] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mongo_backup`
[INFO] [stdout]    --> src/main.rs:994:77
[INFO] [stdout]     |
[INFO] [stdout] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mongo_backup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original`
[INFO] [stdout]    --> src/main.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:998:9
[INFO] [stdout]     |
[INFO] [stdout] 998 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1026:12
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         Ok(r)=>{},
[INFO] [stdout]      |            ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1027:13
[INFO] [stdout]      |
[INFO] [stdout] 1027 |         Err(e) =>{}
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distinct_item_pipe_line`
[INFO] [stdout]     --> src/main.rs:1037:9
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     let distinct_item_pipe_line = vec![
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_item_pipe_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_count_1`
[INFO] [stdout]     --> src/main.rs:1134:13
[INFO] [stdout]      |
[INFO] [stdout] 1134 |     let mut para_count_1 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_count_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1209:16
[INFO] [stdout]      |
[INFO] [stdout] 1209 |             Ok(r) =>{},
[INFO] [stdout]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1210:17
[INFO] [stdout]      |
[INFO] [stdout] 1210 |             Err(e) =>{}
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]     --> src/main.rs:1271:16
[INFO] [stdout]      |
[INFO] [stdout] 1271 |             Ok(r)=>{},
[INFO] [stdout]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1272:17
[INFO] [stdout]      |
[INFO] [stdout] 1272 |             Err(e)=>{}
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid`
[INFO] [stdout]     --> src/main.rs:1286:10
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     for (gid,db) in gid_collection_map{
[INFO] [stdout]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_gid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1134:9
[INFO] [stdout]      |
[INFO] [stdout] 1134 |     let mut para_count_1 = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1180:13
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         let mut index_option = IndexOptions::builder().unique(true).build();
[INFO] [stdout]      |             ----^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let start_time = SystemTime::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `distinct_len`
[INFO] [stdout]    --> src/main.rs:298:13
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let distinct_len = transaction_original_distinct.estimated_document_count(None).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR` is never read
[INFO] [stdout]    --> src/main.rs:352:17
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut TPR = 0.0;
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stdout]    --> src/main.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]    --> src/main.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[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/main.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut policy_cover_count_distinct = distinct_len+scoring_num_distinct-union_num_unique;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let mut policy_cover_count = distinct_len+scoring_num-union_num;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uniqueSet`
[INFO] [stdout]    --> src/main.rs:509:32
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mutcount`
[INFO] [stdout]    --> src/main.rs:511:10
[INFO] [stdout]     |
[INFO] [stdout] 511 |     let  mutcount = 0;
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutcount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_vec`
[INFO] [stdout]    --> src/main.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let mut rule_vec :Vec<String>= Vec::new();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fs_rule_vec`
[INFO] [stdout]    --> src/main.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fs_rule_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original`
[INFO] [stdout]    --> src/main.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transaction_original_distinct`
[INFO] [stdout]    --> src/main.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_space_size`
[INFO] [stdout]    --> src/main.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 527 |     let para_space_size = client.database("esx_mining").collection::<Document>("para_space_original").estimated_document_count(None).awai...
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/main.rs:585:17
[INFO] [stdout]     |
[INFO] [stdout] 585 |             let len = &frequent_pattern.len();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:601:26
[INFO] [stdout]     |
[INFO] [stdout] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `unique_space_count` is never read
[INFO] [stdout]    --> src/main.rs:601:57
[INFO] [stdout]     |
[INFO] [stdout] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:610:29
[INFO] [stdout]     |
[INFO] [stdout] 610 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().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 `influence_rate_from_space` is never read
[INFO] [stdout]    --> src/main.rs:643:29
[INFO] [stdout]     |
[INFO] [stdout] 643 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().unwrap();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Qrul_count`
[INFO] [stdout]    --> src/main.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l_distance`
[INFO] [stdout]    --> src/main.rs:679:21
[INFO] [stdout]     |
[INFO] [stdout] 679 |                 let l_distance = 0.0-(log_entries_len as f64 - cover_logs_count)-(omega*over_assignment_total);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l_distance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `harmonic_mean`
[INFO] [stdout]    --> src/main.rs:680:21
[INFO] [stdout]     |
[INFO] [stdout] 680 |                 let harmonic_mean = (1.0+(omega*omega)) * ((overate*coverage_rate_fn)/(((omega*omega)*overate)+coverage_rate_fn));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Qrul_freq`
[INFO] [stdout]    --> src/main.rs:682:21
[INFO] [stdout]     |
[INFO] [stdout] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_freq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `C_scores`
[INFO] [stdout]    --> src/main.rs:684:21
[INFO] [stdout]     |
[INFO] [stdout] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_C_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transacation_back` is never read
[INFO] [stdout]    --> src/main.rs:704:17
[INFO] [stdout]     |
[INFO] [stdout] 704 |         let mut transacation_back = transactions.clone();
[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/main.rs:509:28
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                            ----^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:515:9
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let mut rule_vec :Vec<String>= 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/main.rs:516:9
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = 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/main.rs:2035:13
[INFO] [stdout]      |
[INFO] [stdout] 2035 |         let mut fs_rule_doc = fsrule.to_mongodb_doc();
[INFO] [stdout]      |             ----^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2042:13
[INFO] [stdout]      |
[INFO] [stdout] 2042 |         let mut net_rule_doc = netrule.to_mongodb_doc();
[INFO] [stdout]      |             ----^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cover_logs_count`
[INFO] [stdout]     --> src/main.rs:2335:13
[INFO] [stdout]      |
[INFO] [stdout] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unique_cover_logs_count`
[INFO] [stdout]     --> src/main.rs:2336:13
[INFO] [stdout]      |
[INFO] [stdout] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_cover_logs_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transactions_count`
[INFO] [stdout]     --> src/main.rs:2337:13
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transactions_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `over_rate`
[INFO] [stdout]     --> src/main.rs:2338:13
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let mut over_rate = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_over_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cover_logs_count3`
[INFO] [stdout]     --> src/main.rs:2360:13
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time`
[INFO] [stdout]     --> src/main.rs:2378:13
[INFO] [stdout]      |
[INFO] [stdout] 2378 |         let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time_t`
[INFO] [stdout]     --> src/main.rs:2379:13
[INFO] [stdout]      |
[INFO] [stdout] 2379 |         let find_time_t = SystemTime::now();
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time`
[INFO] [stdout]     --> src/main.rs:2400:17
[INFO] [stdout]      |
[INFO] [stdout] 2400 |             let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_time_t`
[INFO] [stdout]     --> src/main.rs:2401:17
[INFO] [stdout]      |
[INFO] [stdout] 2401 |             let find_time_t = SystemTime::now();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_time`
[INFO] [stdout]     --> src/main.rs:2404:13
[INFO] [stdout]      |
[INFO] [stdout] 2404 |         let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2335:9
[INFO] [stdout]      |
[INFO] [stdout] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2336:9
[INFO] [stdout]      |
[INFO] [stdout] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2337:9
[INFO] [stdout]      |
[INFO] [stdout] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2338:9
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let mut over_rate = 0.0;
[INFO] [stdout]      |         ----^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2360:9
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:11
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |           ----^^^^^^^^^^^^
[INFO] [stdout]      |           |
[INFO] [stdout]      |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:28
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |                            ----^^^^^^^^^^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1773:43
[INFO] [stdout]      |
[INFO] [stdout] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stdout]      |                                           ----^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]     --> src/main.rs:2501:9
[INFO] [stdout]      |
[INFO] [stdout] 2501 |     let start_time = SystemTime::now();
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR` is never read
[INFO] [stdout]     --> src/main.rs:2569:13
[INFO] [stdout]      |
[INFO] [stdout] 2569 |     let mut TPR = 0.0;
[INFO] [stdout]      |             ^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stdout]     --> src/main.rs:2570:13
[INFO] [stdout]      |
[INFO] [stdout] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precision`
[INFO] [stdout]     --> src/main.rs:2578:9
[INFO] [stdout]      |
[INFO] [stdout] 2578 |     let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wtr`
[INFO] [stdout]    --> src/main.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_wtr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loaded_num`
[INFO] [stdout]    --> src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let loaded_num = 2000000;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut file = OpenOptions::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/main.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/main.rs:417:9
[INFO] [stdout]     |
[INFO] [stdout] 417 |     let k            =     4; // # of clusters in the result
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_iter`
[INFO] [stdout]    --> src/main.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let max_iter     =    10; // max number of iterations before the clustering forcefully stops
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `para_space`
[INFO] [stdout]    --> src/main.rs:423:32
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trans_len`
[INFO] [stdout]    --> src/main.rs:439:9
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let trans_len = transactions.len().clone();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trans_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:11
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |           ----^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:28
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                            ----^^^^^^^^^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:423:43
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                           ----^^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]    --> src/main.rs:760:13
[INFO] [stdout]     |
[INFO] [stdout] 760 |     let mut if_broken = false;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:798:17
[INFO] [stdout]     |
[INFO] [stdout] 798 |             Err(e)=>{
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:753:9
[INFO] [stdout]     |
[INFO] [stdout] 753 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 771 |     let mut unique_uid_net:Vec<String> = 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/main.rs:772:9
[INFO] [stdout]     |
[INFO] [stdout] 772 |     let mut unique_gid_net:Vec<String> = 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/main.rs:795:13
[INFO] [stdout]     |
[INFO] [stdout] 795 |         let mut record;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after_count`
[INFO] [stdout]     --> src/main.rs:1313:13
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     let mut after_count = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]     --> src/main.rs:1314:13
[INFO] [stdout]      |
[INFO] [stdout] 1314 |     let mut if_broken = false;
[INFO] [stdout]      |             ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1328:17
[INFO] [stdout]      |
[INFO] [stdout] 1328 |             Err(e)=>{
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uid_tmp`
[INFO] [stdout]     --> src/main.rs:1344:25
[INFO] [stdout]      |
[INFO] [stdout] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid_tmp`
[INFO] [stdout]     --> src/main.rs:1345:25
[INFO] [stdout]      |
[INFO] [stdout] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uid_tmp`
[INFO] [stdout]     --> src/main.rs:1387:25
[INFO] [stdout]      |
[INFO] [stdout] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gid_tmp`
[INFO] [stdout]     --> src/main.rs:1388:25
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1302:9
[INFO] [stdout]      |
[INFO] [stdout] 1302 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 |     let mut after_count = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1325:13
[INFO] [stdout]      |
[INFO] [stdout] 1325 |         let mut record;
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1344:21
[INFO] [stdout]      |
[INFO] [stdout] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1345:21
[INFO] [stdout]      |
[INFO] [stdout] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1387:21
[INFO] [stdout]      |
[INFO] [stdout] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1388:21
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stdout]      |                     ----^^^^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]     --> src/main.rs:1451:13
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `unique_gid_uid_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1459:13
[INFO] [stdout]      |
[INFO] [stdout] 1459 |     let mut unique_gid_uid_file_tmp:HashSet<(String,String)> = HashSet::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 `unique_op_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1460:13
[INFO] [stdout]      |
[INFO] [stdout] 1460 |     let mut unique_op_file_tmp:HashSet<String> = HashSet::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 `unique_res_file_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1461:13
[INFO] [stdout]      |
[INFO] [stdout] 1461 |     let mut unique_res_file_tmp:HashSet<String> = HashSet::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 `unique_gid_uid_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1469:13
[INFO] [stdout]      |
[INFO] [stdout] 1469 |     let mut unique_gid_uid_net_tmp:HashSet<(String,String)> = HashSet::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 `unique_op_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1470:13
[INFO] [stdout]      |
[INFO] [stdout] 1470 |     let mut unique_op_net_tmp:HashSet<String> = HashSet::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 `unique_res_net_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1471:13
[INFO] [stdout]      |
[INFO] [stdout] 1471 |     let mut unique_res_net_tmp:HashSet<String> = HashSet::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 `transactions_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1472:13
[INFO] [stdout]      |
[INFO] [stdout] 1472 |     let mut transactions_tmp:Vec<Vec<String>> = 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 `unique_set_tmp` is never read
[INFO] [stdout]     --> src/main.rs:1474:13
[INFO] [stdout]      |
[INFO] [stdout] 1474 |     let mut unique_set_tmp:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1446:9
[INFO] [stdout]      |
[INFO] [stdout] 1446 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1451:9
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `if_broken` is never read
[INFO] [stdout]     --> src/main.rs:1546:13
[INFO] [stdout]      |
[INFO] [stdout] 1546 |     let mut if_broken = false;
[INFO] [stdout]      |             ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/main.rs:1585:17
[INFO] [stdout]      |
[INFO] [stdout] 1585 |             Err(e)=>{
[INFO] [stdout]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1539:9
[INFO] [stdout]      |
[INFO] [stdout] 1539 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stdout]      |         ----^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1582:13
[INFO] [stdout]      |
[INFO] [stdout] 1582 |         let mut record;
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unique_logs_count_t`
[INFO] [stdout]     --> src/main.rs:2145:13
[INFO] [stdout]      |
[INFO] [stdout] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_logs_count_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `influence`
[INFO] [stdout]     --> src/main.rs:2152:13
[INFO] [stdout]      |
[INFO] [stdout] 2152 |         let influence = fsrule.create_influence_vec();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transacation_cp`
[INFO] [stdout]     --> src/main.rs:2153:17
[INFO] [stdout]      |
[INFO] [stdout] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transacation_cp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `influence`
[INFO] [stdout]     --> src/main.rs:2242:13
[INFO] [stdout]      |
[INFO] [stdout] 2242 |         let influence = netrule.create_influence_vec();
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_time`
[INFO] [stdout]     --> src/main.rs:2261:9
[INFO] [stdout]      |
[INFO] [stdout] 2261 |     let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2145:9
[INFO] [stdout]      |
[INFO] [stdout] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stdout]      |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2153:13
[INFO] [stdout]      |
[INFO] [stdout] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `mutex_u64` is never used
[INFO] [stdout]   --> src/main.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `basline_test` is never used
[INFO] [stdout]    --> src/main.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 | async fn basline_test()->Result<()>{
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clustering_test` is never used
[INFO] [stdout]    --> src/main.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn clustering_test(){
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mining_rule_with_baseline` is never used
[INFO] [stdout]    --> src/main.rs:457:10
[INFO] [stdout]     |
[INFO] [stdout] 457 | async fn mining_rule_with_baseline(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64)->Result<()>{
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mining_rule_with_fp_growth` is never used
[INFO] [stdout]    --> src/main.rs:504:10
[INFO] [stdout]     |
[INFO] [stdout] 504 | async fn mining_rule_with_fp_growth(data_path:&str,omega:f64,loaded_num:u64,scoring_rate:f64,obp_rate:f64,support_rate:f64)->Result<Vec<V...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv` is never used
[INFO] [stdout]    --> src/main.rs:751:4
[INFO] [stdout]     |
[INFO] [stdout] 751 | fn load_csv(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_with_para_and_backup_loaded` is never used
[INFO] [stdout]    --> src/main.rs:994:10
[INFO] [stdout]     |
[INFO] [stdout] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_data_pure` is never used
[INFO] [stdout]     --> src/main.rs:1299:4
[INFO] [stdout]      |
[INFO] [stdout] 1299 | fn load_csv_data_pure(data_path:&str,loaded_num:u64) ->Result<Vec<Vec<String>>>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_by_shard` is never used
[INFO] [stdout]     --> src/main.rs:1443:4
[INFO] [stdout]      |
[INFO] [stdout] 1443 | fn load_csv_by_shard(data_path:&str,loaded_num:u64)-> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_by_shard_loop` is never used
[INFO] [stdout]     --> src/main.rs:1537:4
[INFO] [stdout]      |
[INFO] [stdout] 1537 | fn load_csv_by_shard_loop(data_path:&str,loaded_num:u64,after_num:u64) -> Result<(Vec<Vec<String>>,HashSet<String>,(HashSet<(String,Strin...
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_to_mongodb` is never used
[INFO] [stdout]     --> src/main.rs:1767:10
[INFO] [stdout]      |
[INFO] [stdout] 1767 | async fn load_csv_to_mongodb(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_csv_to_mongodb_with_scoring` is never used
[INFO] [stdout]     --> src/main.rs:1857:10
[INFO] [stdout]      |
[INFO] [stdout] 1857 | async fn load_csv_to_mongodb_with_scoring(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64) -> Result<(Vec<Vec<String>>,HashSe...
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_coverage_rate_mongo` is never used
[INFO] [stdout]     --> src/main.rs:2021:10
[INFO] [stdout]      |
[INFO] [stdout] 2021 | async fn calculating_coverage_rate_mongo(frequent_pattern:&Vec<&str>) -> Result<(f64,usize,f64)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_logs_from_rule_normal` is never used
[INFO] [stdout]     --> src/main.rs:2059:4
[INFO] [stdout]      |
[INFO] [stdout] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_coverage_rate` is never used
[INFO] [stdout]     --> src/main.rs:2142:4
[INFO] [stdout]      |
[INFO] [stdout] 2142 | fn calculating_coverage_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize,f64)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_over_rate` is never used
[INFO] [stdout]     --> src/main.rs:2269:4
[INFO] [stdout]      |
[INFO] [stdout] 2269 | fn calculating_over_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize)>{
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculating_overate_rate_mongo` is never used
[INFO] [stdout]     --> src/main.rs:2329:10
[INFO] [stdout]      |
[INFO] [stdout] 2329 | async fn calculating_overate_rate_mongo(frequent_pattern:&Vec<&str>,para_space_len:f64) -> Result<(f64,usize)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cover_logs_from_collection` is never used
[INFO] [stdout]     --> src/main.rs:2446:10
[INFO] [stdout]      |
[INFO] [stdout] 2446 | async fn get_cover_logs_from_collection(query_doc:Document,mutex_count:mutex_u64,col:Collection<Document>){
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_logs_from_rule` is never used
[INFO] [stdout]     --> src/main.rs:2461:10
[INFO] [stdout]      |
[INFO] [stdout] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluation_policy` is never used
[INFO] [stdout]     --> src/main.rs:2500:10
[INFO] [stdout]      |
[INFO] [stdout] 2500 | async fn evaluation_policy(frequent_pattern_set:&Vec<Vec<String>>)->Result<(f64,f64,f64,f64,f64)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_mongodb_to_vec` is never used
[INFO] [stdout]     --> src/main.rs:2592:10
[INFO] [stdout]      |
[INFO] [stdout] 2592 | async fn load_mongodb_to_vec() ->Result<(Vec<Vec<String>>,Vec<Document>,HashSet<String>)>{
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stdout]    --> src/main.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let transaction_len_of_OPP =scoring_num.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |         let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |         let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stdout]    --> src/main.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 345 |         let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:347:17
[INFO] [stdout]     |
[INFO] [stdout] 347 | ...   let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalseP...
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:352:17
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let mut TPR = 0.0;
[INFO] [stdout]     |                 ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:353:17
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |         let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stdout]     |             ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stdout]    --> src/main.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                       ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:27
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                           ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:32
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:387:38
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                      ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:19
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                   ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:23
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                       ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:28
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                            ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPRnd` should have a snake case name
[INFO] [stdout]    --> src/main.rs:400:34
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stdout]     |                                  ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:404:14
[INFO] [stdout]     |
[INFO] [stdout] 404 |         "1.0".clone().to_string(),
[INFO] [stdout]     |              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:423:47
[INFO] [stdout]     |
[INFO] [stdout] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stdout]     |                                               ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:462:32
[INFO] [stdout]     |
[INFO] [stdout] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:471:13
[INFO] [stdout]     |
[INFO] [stdout] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:509:32
[INFO] [stdout]     |
[INFO] [stdout] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stdout]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Qrul_count` should have a snake case name
[INFO] [stdout]    --> src/main.rs:677:21
[INFO] [stdout]     |
[INFO] [stdout] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `qrul_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Qrul_freq` should have a snake case name
[INFO] [stdout]    --> src/main.rs:682:21
[INFO] [stdout]     |
[INFO] [stdout] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stdout]     |                     ^^^^^^^^^ help: convert the identifier to snake case: `qrul_freq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C_scores` should have a snake case name
[INFO] [stdout]    --> src/main.rs:684:21
[INFO] [stdout]     |
[INFO] [stdout] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stdout]     |                     ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `c_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/main.rs:729:62
[INFO] [stdout]     |
[INFO] [stdout] 729 |         println!("len of trans:{},len of back:{}", &trans_len.borrow(), len_after_delete);
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `usize` does not implement `Borrow`, so calling `borrow` on `&usize` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]    --> src/main.rs:952:13
[INFO] [stdout]     |
[INFO] [stdout] 952 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1056:66
[INFO] [stdout]      |
[INFO] [stdout] 1056 | ...                   "logtype":"$logtype","item":item_type.clone()
[INFO] [stdout]      |                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1059:55
[INFO] [stdout]      |
[INFO] [stdout] 1059 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stdout]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1084:55
[INFO] [stdout]      |
[INFO] [stdout] 1084 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stdout]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1194:47
[INFO] [stdout]      |
[INFO] [stdout] 1194 |                         "logtype": logtype_tmp.clone(),
[INFO] [stdout]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/main.rs:1256:47
[INFO] [stdout]      |
[INFO] [stdout] 1256 |                         "logtype": logtype_tmp.clone(),
[INFO] [stdout]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1473:13
[INFO] [stdout]      |
[INFO] [stdout] 1473 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1721:13
[INFO] [stdout]      |
[INFO] [stdout] 1721 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `length_of_OBP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1870:9
[INFO] [stdout]      |
[INFO] [stdout] 1870 |     let length_of_OBP = (loaded_num as f64 * (1.0-scoring_rate)) as usize;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `length_of_OBP_true` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1881:13
[INFO] [stdout]      |
[INFO] [stdout] 1881 |         let length_of_OBP_true = (length_of_OBP as f64 * obp_rate) as usize;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp_true`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `log_of_OBP_count` should have a snake case name
[INFO] [stdout]     --> src/main.rs:1942:21
[INFO] [stdout]      |
[INFO] [stdout] 1942 |             let mut log_of_OBP_count:usize = 0;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `log_of_obp_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2524:9
[INFO] [stdout]      |
[INFO] [stdout] 2524 |     let transaction_len_of_OPP = transaction_scoring.count_documents(None,None).await.expect("failed to connect to mongo");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2525:9
[INFO] [stdout]      |
[INFO] [stdout] 2525 |     let transaction_len_of_OPP_distinct = transaction_scoring_distinct.count_documents(None,None).await.expect("failed to connect to mong...
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2553:9
[INFO] [stdout]      |
[INFO] [stdout] 2553 |     let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2554:9
[INFO] [stdout]      |
[INFO] [stdout] 2554 |     let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2556:9
[INFO] [stdout]      |
[INFO] [stdout] 2556 |     let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2557:9
[INFO] [stdout]      |
[INFO] [stdout] 2557 |     let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2558:9
[INFO] [stdout]      |
[INFO] [stdout] 2558 |     let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2562:9
[INFO] [stdout]      |
[INFO] [stdout] 2562 |     let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2564:13
[INFO] [stdout]      |
[INFO] [stdout] 2564 |     let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalsePos...
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2569:13
[INFO] [stdout]      |
[INFO] [stdout] 2569 |     let mut TPR = 0.0;
[INFO] [stdout]      |             ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2570:13
[INFO] [stdout]      |
[INFO] [stdout] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2577:9
[INFO] [stdout]      |
[INFO] [stdout] 2577 |     let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stdout]      |         ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2585:9
[INFO] [stdout]      |
[INFO] [stdout] 2585 |     let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uniqueSet` should have a snake case name
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stdout]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 264 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 2.62s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "c000f55eaaceeacf2c7c60b114afa366582743098f1f8cc7235058f46662c79a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c000f55eaaceeacf2c7c60b114afa366582743098f1f8cc7235058f46662c79a", kill_on_drop: false }`
[INFO] [stdout] c000f55eaaceeacf2c7c60b114afa366582743098f1f8cc7235058f46662c79a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4c8c9a3283693fcdf35258f875cb5f9c4042fe45a6f8063e82a79c3d4c9dd143
[INFO] running `Command { std: "docker" "start" "-a" "4c8c9a3283693fcdf35258f875cb5f9c4042fe45a6f8063e82a79c3d4c9dd143", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Context`
[INFO] [stderr]  --> src/rule.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use anyhow::{Context, Result};
[INFO] [stderr]   |              ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `from_pattern_String` should have a snake case name
[INFO] [stderr]   --> src/rule.rs:94:12
[INFO] [stderr]    |
[INFO] [stderr] 94 |     pub fn from_pattern_String(pattern:&Vec<String>)->FilesystemRule{
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `from_pattern_String` should have a snake case name
[INFO] [stderr]    --> src/rule.rs:244:12
[INFO] [stderr]     |
[INFO] [stderr] 244 |     pub fn from_pattern_String(pattern:&Vec<String>)->NetRule{
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `from_pattern_string`
[INFO] [stderr] 
[INFO] [stderr] warning: `esx_mining` (lib) generated 3 warnings (run `cargo fix --lib -p esx_mining` to apply 1 suggestion)
[INFO] [stderr] warning: `esx_mining` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr] warning: unused import: `BorrowMut`
[INFO] [stderr]  --> src/main.rs:3:27
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stderr]   |                           ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::error::Error`
[INFO] [stderr]  --> src/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BuildHasherDefault`, `Hash`
[INFO] [stderr]   --> src/main.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `io`
[INFO] [stderr]   --> src/main.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::{io};
[INFO] [stderr]    |           ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::os::unix::raw::nlink_t`
[INFO] [stderr]   --> src/main.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use std::process;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]   --> src/main.rs:16:29
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::time::{SystemTime, Duration};
[INFO] [stderr]    |                             ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::NaiveWeek`
[INFO] [stderr]   --> src/main.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use chrono::NaiveWeek;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ClientOptions`, `ResolverConfig`
[INFO] [stderr]   --> src/main.rs:20:33
[INFO] [stderr]    |
[INFO] [stderr] 20 | use mongodb::{Client, options::{ClientOptions, ResolverConfig}, bson::doc, Collection};
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ProgressState`
[INFO] [stderr]   --> src/main.rs:26:30
[INFO] [stderr]    |
[INFO] [stderr] 26 | use indicatif::{ProgressBar, ProgressState, ProgressStyle};
[INFO] [stderr]    |                              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Context`
[INFO] [stderr]   --> src/main.rs:28:14
[INFO] [stderr]    |
[INFO] [stderr] 28 | use anyhow::{Context, Result};
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `toml::*`
[INFO] [stderr]   --> src/main.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 | use toml::*;
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `clustering::*`
[INFO] [stderr]   --> src/main.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use clustering::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::random`
[INFO] [stderr]   --> src/main.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | use rand::random;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ValueEnum`
[INFO] [stderr]   --> src/main.rs:33:20
[INFO] [stderr]    |
[INFO] [stderr] 33 | use clap::{Parser, ValueEnum};
[INFO] [stderr]    |                    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `mutex_u64` should have an upper camel case name
[INFO] [stderr]   --> src/main.rs:35:6
[INFO] [stderr]    |
[INFO] [stderr] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stderr]    |      ^^^^^^^^^ help: convert the identifier to upper camel case: `MutexU64`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:826:42
[INFO] [stderr]     |
[INFO] [stderr] 826 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]     |                                    ^                                ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 826 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 826 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:846:42
[INFO] [stderr]     |
[INFO] [stderr] 846 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]     |                                    ^                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 846 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 846 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:852:42
[INFO] [stderr]     |
[INFO] [stderr] 852 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]     |                                    ^                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 852 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 852 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:883:42
[INFO] [stderr]     |
[INFO] [stderr] 883 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]     |                                    ^                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 883 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 883 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:890:42
[INFO] [stderr]     |
[INFO] [stderr] 890 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stderr]     |                                    ^                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 890 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stderr] 890 +                             single_str = String::from("GID:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:897:42
[INFO] [stderr]     |
[INFO] [stderr] 897 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stderr]     |                                    ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 897 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stderr] 897 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:900:42
[INFO] [stderr]     |
[INFO] [stderr] 900 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]     |                                    ^                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 900 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 900 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/main.rs:906:42
[INFO] [stderr]     |
[INFO] [stderr] 906 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]     |                                    ^                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 906 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 906 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1356:42
[INFO] [stderr]      |
[INFO] [stderr] 1356 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1356 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 1356 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1368:42
[INFO] [stderr]      |
[INFO] [stderr] 1368 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]      |                                    ^                               ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1368 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 1368 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1372:42
[INFO] [stderr]      |
[INFO] [stderr] 1372 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1372 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 1372 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1398:42
[INFO] [stderr]      |
[INFO] [stderr] 1398 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1398 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 1398 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1401:42
[INFO] [stderr]      |
[INFO] [stderr] 1401 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1401 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stderr] 1401 +                             single_str = String::from("GID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1405:42
[INFO] [stderr]      |
[INFO] [stderr] 1405 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stderr]      |                                    ^                                    ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1405 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stderr] 1405 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1408:42
[INFO] [stderr]      |
[INFO] [stderr] 1408 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]      |                                    ^                               ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1408 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 1408 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1411:42
[INFO] [stderr]      |
[INFO] [stderr] 1411 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1411 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 1411 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1613:42
[INFO] [stderr]      |
[INFO] [stderr] 1613 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1613 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 1613 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1629:42
[INFO] [stderr]      |
[INFO] [stderr] 1629 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]      |                                    ^                               ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1629 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 1629 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1633:42
[INFO] [stderr]      |
[INFO] [stderr] 1633 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1633 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 1633 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1661:42
[INFO] [stderr]      |
[INFO] [stderr] 1661 | ...                   single_str = (String::from("UID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1661 -                             single_str = (String::from("UID:") +single_com);
[INFO] [stderr] 1661 +                             single_str = String::from("UID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1666:42
[INFO] [stderr]      |
[INFO] [stderr] 1666 | ...                   single_str = (String::from("GID:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1666 -                             single_str = (String::from("GID:") +single_com);
[INFO] [stderr] 1666 +                             single_str = String::from("GID:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1671:42
[INFO] [stderr]      |
[INFO] [stderr] 1671 | ...                   single_str = (String::from("logtype:") +single_com);
[INFO] [stderr]      |                                    ^                                    ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1671 -                             single_str = (String::from("logtype:") +single_com);
[INFO] [stderr] 1671 +                             single_str = String::from("logtype:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1674:42
[INFO] [stderr]      |
[INFO] [stderr] 1674 | ...                   single_str = (String::from("op:") +single_com);
[INFO] [stderr]      |                                    ^                               ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1674 -                             single_str = (String::from("op:") +single_com);
[INFO] [stderr] 1674 +                             single_str = String::from("op:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1679:42
[INFO] [stderr]      |
[INFO] [stderr] 1679 | ...                   single_str = (String::from("res:") +single_com);
[INFO] [stderr]      |                                    ^                                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1679 -                             single_str = (String::from("res:") +single_com);
[INFO] [stderr] 1679 +                             single_str = String::from("res:") +single_com;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]     --> src/main.rs:2059:106
[INFO] [stderr]      |
[INFO] [stderr] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr]      |                                                                                                          ^                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 2059 - fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr] 2059 + fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<Vec<Vec<String>>>{
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]     --> src/main.rs:2461:69
[INFO] [stderr]      |
[INFO] [stderr] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr]      |                                                                     ^                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 2461 - async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr] 2461 + async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<Vec<Vec<String>>>{
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `std::os::unix::raw::nlink_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stderr]   --> src/main.rs:14:25
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::os::unix::raw::nlink_t;
[INFO] [stderr]    |                         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rule_set`
[INFO] [stderr]    --> src/main.rs:386:13
[INFO] [stderr]     |
[INFO] [stderr] 386 | ...   let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),obp_rate.clone()).await?; ...
[INFO] [stderr]     |           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rule_set`
[INFO] [stderr]    --> src/main.rs:399:9
[INFO] [stderr]     |
[INFO] [stderr] 399 |     let rule_set = mining_rule_with_baseline("./data/data_final.csv",loaded_num.clone(),scoring_rate.clone(),1.0).await?;
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:374:9
[INFO] [stderr]     |
[INFO] [stderr] 374 |     let mut file = OpenOptions::new()
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uniqueSet`
[INFO] [stderr]    --> src/main.rs:462:32
[INFO] [stderr]     |
[INFO] [stderr] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transcation_new`
[INFO] [stderr]    --> src/main.rs:469:13
[INFO] [stderr]     |
[INFO] [stderr] 469 |     let mut transcation_new:Vec<Document> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transcation_new`
[INFO] [stderr]    --> src/main.rs:470:13
[INFO] [stderr]     |
[INFO] [stderr] 470 |     let mut transcation_new:Vec<Vec<String>> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transcation_new`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uniqueSet`
[INFO] [stderr]    --> src/main.rs:471:13
[INFO] [stderr]     |
[INFO] [stderr] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_docs`
[INFO] [stderr]    --> src/main.rs:472:13
[INFO] [stderr]     |
[INFO] [stderr] 472 |     let mut transaction_docs:Vec<Document> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_docs_distinct`
[INFO] [stderr]    --> src/main.rs:473:13
[INFO] [stderr]     |
[INFO] [stderr] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original_distinct`
[INFO] [stderr]    --> src/main.rs:476:9
[INFO] [stderr]     |
[INFO] [stderr] 476 |     let transaction_original_distinct:Collection<EsxLog> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:462:28
[INFO] [stderr]     |
[INFO] [stderr] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                            ----^^^^^^^^^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:469:9
[INFO] [stderr]     |
[INFO] [stderr] 469 |     let mut transcation_new:Vec<Document> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:470:9
[INFO] [stderr]     |
[INFO] [stderr] 470 |     let mut transcation_new:Vec<Vec<String>> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:471:9
[INFO] [stderr]     |
[INFO] [stderr] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:472:9
[INFO] [stderr]     |
[INFO] [stderr] 472 |     let mut transaction_docs:Vec<Document> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:473:9
[INFO] [stderr]     |
[INFO] [stderr] 473 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `transactions` is never read
[INFO] [stderr]     --> src/main.rs:1871:13
[INFO] [stderr]      |
[INFO] [stderr] 1871 |     let mut transactions:Vec<Vec<String>> = Vec::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr]      = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_set` is never read
[INFO] [stderr]     --> src/main.rs:1872:13
[INFO] [stderr]      |
[INFO] [stderr] 1872 |     let mut unique_set = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `transactions_to_output` is never read
[INFO] [stderr]     --> src/main.rs:1873:13
[INFO] [stderr]      |
[INFO] [stderr] 1873 |     let mut transactions_to_output = Vec::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original_distinct`
[INFO] [stderr]     --> src/main.rs:2595:9
[INFO] [stderr]      |
[INFO] [stderr] 2595 |     let transaction_original_distinct = client.database("esx_mining").collection::<EsxLog>("transacation_distinct_backup");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_docs_distinct`
[INFO] [stderr]     --> src/main.rs:2603:13
[INFO] [stderr]      |
[INFO] [stderr] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_docs_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2601:9
[INFO] [stderr]      |
[INFO] [stderr] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]      |         ----^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2603:9
[INFO] [stderr]      |
[INFO] [stderr] 2603 |     let mut transaction_docs_distinct:Vec<Document> = Vec::new();
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mongo_backup`
[INFO] [stderr]    --> src/main.rs:994:77
[INFO] [stderr]     |
[INFO] [stderr] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stderr]     |                                                                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mongo_backup`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original`
[INFO] [stderr]    --> src/main.rs:997:9
[INFO] [stderr]     |
[INFO] [stderr] 997 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original_distinct`
[INFO] [stderr]    --> src/main.rs:998:9
[INFO] [stderr]     |
[INFO] [stderr] 998 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]     --> src/main.rs:1026:12
[INFO] [stderr]      |
[INFO] [stderr] 1026 |         Ok(r)=>{},
[INFO] [stderr]      |            ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]     --> src/main.rs:1027:13
[INFO] [stderr]      |
[INFO] [stderr] 1027 |         Err(e) =>{}
[INFO] [stderr]      |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `distinct_item_pipe_line`
[INFO] [stderr]     --> src/main.rs:1037:9
[INFO] [stderr]      |
[INFO] [stderr] 1037 |     let distinct_item_pipe_line = vec![
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_item_pipe_line`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `para_count_1`
[INFO] [stderr]     --> src/main.rs:1134:13
[INFO] [stderr]      |
[INFO] [stderr] 1134 |     let mut para_count_1 = 0;
[INFO] [stderr]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_count_1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]     --> src/main.rs:1209:16
[INFO] [stderr]      |
[INFO] [stderr] 1209 |             Ok(r) =>{},
[INFO] [stderr]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]     --> src/main.rs:1210:17
[INFO] [stderr]      |
[INFO] [stderr] 1210 |             Err(e) =>{}
[INFO] [stderr]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r`
[INFO] [stderr]     --> src/main.rs:1271:16
[INFO] [stderr]      |
[INFO] [stderr] 1271 |             Ok(r)=>{},
[INFO] [stderr]      |                ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]     --> src/main.rs:1272:17
[INFO] [stderr]      |
[INFO] [stderr] 1272 |             Err(e)=>{}
[INFO] [stderr]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gid`
[INFO] [stderr]     --> src/main.rs:1286:10
[INFO] [stderr]      |
[INFO] [stderr] 1286 |     for (gid,db) in gid_collection_map{
[INFO] [stderr]      |          ^^^ help: if this is intentional, prefix it with an underscore: `_gid`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1134:9
[INFO] [stderr]      |
[INFO] [stderr] 1134 |     let mut para_count_1 = 0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1180:13
[INFO] [stderr]      |
[INFO] [stderr] 1180 |         let mut index_option = IndexOptions::builder().unique(true).build();
[INFO] [stderr]      |             ----^^^^^^^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start_time`
[INFO] [stderr]    --> src/main.rs:280:13
[INFO] [stderr]     |
[INFO] [stderr] 280 |         let start_time = SystemTime::now();
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `distinct_len`
[INFO] [stderr]    --> src/main.rs:298:13
[INFO] [stderr]     |
[INFO] [stderr] 298 |         let distinct_len = transaction_original_distinct.estimated_document_count(None).await.unwrap();
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_distinct_len`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `TPR` is never read
[INFO] [stderr]    --> src/main.rs:352:17
[INFO] [stderr]     |
[INFO] [stderr] 352 |         let mut TPR = 0.0;
[INFO] [stderr]     |                 ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stderr]    --> src/main.rs:353:17
[INFO] [stderr]     |
[INFO] [stderr] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `precision`
[INFO] [stderr]    --> src/main.rs:361:13
[INFO] [stderr]     |
[INFO] [stderr] 361 |         let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:306:13
[INFO] [stderr]     |
[INFO] [stderr] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:307:13
[INFO] [stderr]     |
[INFO] [stderr] 307 |         let mut policy_cover_count_distinct = distinct_len+scoring_num_distinct-union_num_unique;
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:312:13
[INFO] [stderr]     |
[INFO] [stderr] 312 |         let mut policy_cover_count = distinct_len+scoring_num-union_num;
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uniqueSet`
[INFO] [stderr]    --> src/main.rs:509:32
[INFO] [stderr]     |
[INFO] [stderr] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uniqueSet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mutcount`
[INFO] [stderr]    --> src/main.rs:511:10
[INFO] [stderr]     |
[INFO] [stderr] 511 |     let  mutcount = 0;
[INFO] [stderr]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mutcount`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rule_vec`
[INFO] [stderr]    --> src/main.rs:515:13
[INFO] [stderr]     |
[INFO] [stderr] 515 |     let mut rule_vec :Vec<String>= Vec::new();
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_vec`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fs_rule_vec`
[INFO] [stderr]    --> src/main.rs:516:13
[INFO] [stderr]     |
[INFO] [stderr] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fs_rule_vec`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original`
[INFO] [stderr]    --> src/main.rs:521:9
[INFO] [stderr]     |
[INFO] [stderr] 521 |     let transaction_original:Collection<Document> = client.database("esx_mining").collection("transacation_original");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transaction_original_distinct`
[INFO] [stderr]    --> src/main.rs:522:9
[INFO] [stderr]     |
[INFO] [stderr] 522 |     let transaction_original_distinct:Collection<Document> = client.database("esx_mining").collection("transacation_distinct");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transaction_original_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `para_space_size`
[INFO] [stderr]    --> src/main.rs:527:9
[INFO] [stderr]     |
[INFO] [stderr] 527 |     let para_space_size = client.database("esx_mining").collection::<Document>("para_space_original").estimated_document_count(None).awai...
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `len`
[INFO] [stderr]    --> src/main.rs:585:17
[INFO] [stderr]     |
[INFO] [stderr] 585 |             let len = &frequent_pattern.len();
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stderr]    --> src/main.rs:601:26
[INFO] [stderr]     |
[INFO] [stderr] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_space_count` is never read
[INFO] [stderr]    --> src/main.rs:601:57
[INFO] [stderr]     |
[INFO] [stderr] 601 |                 let (mut influence_rate_from_space, mut unique_space_count) =(0.0,0);
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stderr]    --> src/main.rs:610:29
[INFO] [stderr]     |
[INFO] [stderr] 610 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().unwrap();
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `influence_rate_from_space` is never read
[INFO] [stderr]    --> src/main.rs:643:29
[INFO] [stderr]     |
[INFO] [stderr] 643 | ...                   influence_rate_from_space = op_tun.get("influence_rate_from_space").unwrap().as_f64().unwrap();
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Qrul_count`
[INFO] [stderr]    --> src/main.rs:677:21
[INFO] [stderr]     |
[INFO] [stderr] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stderr]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `l_distance`
[INFO] [stderr]    --> src/main.rs:679:21
[INFO] [stderr]     |
[INFO] [stderr] 679 |                 let l_distance = 0.0-(log_entries_len as f64 - cover_logs_count)-(omega*over_assignment_total);
[INFO] [stderr]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l_distance`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `harmonic_mean`
[INFO] [stderr]    --> src/main.rs:680:21
[INFO] [stderr]     |
[INFO] [stderr] 680 |                 let harmonic_mean = (1.0+(omega*omega)) * ((overate*coverage_rate_fn)/(((omega*omega)*overate)+coverage_rate_fn));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_harmonic_mean`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Qrul_freq`
[INFO] [stderr]    --> src/main.rs:682:21
[INFO] [stderr]     |
[INFO] [stderr] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stderr]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Qrul_freq`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `C_scores`
[INFO] [stderr]    --> src/main.rs:684:21
[INFO] [stderr]     |
[INFO] [stderr] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stderr]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_C_scores`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `transacation_back` is never read
[INFO] [stderr]    --> src/main.rs:704:17
[INFO] [stderr]     |
[INFO] [stderr] 704 |         let mut transacation_back = transactions.clone();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:509:28
[INFO] [stderr]     |
[INFO] [stderr] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                            ----^^^^^^^^^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:515:9
[INFO] [stderr]     |
[INFO] [stderr] 515 |     let mut rule_vec :Vec<String>= Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:516:9
[INFO] [stderr]     |
[INFO] [stderr] 516 |     let mut fs_rule_vec:Vec<FilesystemRule> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2035:13
[INFO] [stderr]      |
[INFO] [stderr] 2035 |         let mut fs_rule_doc = fsrule.to_mongodb_doc();
[INFO] [stderr]      |             ----^^^^^^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2042:13
[INFO] [stderr]      |
[INFO] [stderr] 2042 |         let mut net_rule_doc = netrule.to_mongodb_doc();
[INFO] [stderr]      |             ----^^^^^^^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cover_logs_count`
[INFO] [stderr]     --> src/main.rs:2335:13
[INFO] [stderr]      |
[INFO] [stderr] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `unique_cover_logs_count`
[INFO] [stderr]     --> src/main.rs:2336:13
[INFO] [stderr]      |
[INFO] [stderr] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_cover_logs_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transactions_count`
[INFO] [stderr]     --> src/main.rs:2337:13
[INFO] [stderr]      |
[INFO] [stderr] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transactions_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `over_rate`
[INFO] [stderr]     --> src/main.rs:2338:13
[INFO] [stderr]      |
[INFO] [stderr] 2338 |     let mut over_rate = 0.0;
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_over_rate`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cover_logs_count3`
[INFO] [stderr]     --> src/main.rs:2360:13
[INFO] [stderr]      |
[INFO] [stderr] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cover_logs_count3`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `find_time`
[INFO] [stderr]     --> src/main.rs:2378:13
[INFO] [stderr]      |
[INFO] [stderr] 2378 |         let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `find_time_t`
[INFO] [stderr]     --> src/main.rs:2379:13
[INFO] [stderr]      |
[INFO] [stderr] 2379 |         let find_time_t = SystemTime::now();
[INFO] [stderr]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `find_time`
[INFO] [stderr]     --> src/main.rs:2400:17
[INFO] [stderr]      |
[INFO] [stderr] 2400 |             let find_time = SystemTime::now().duration_since(start_time_find).unwrap().as_secs_f64();
[INFO] [stderr]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `find_time_t`
[INFO] [stderr]     --> src/main.rs:2401:17
[INFO] [stderr]      |
[INFO] [stderr] 2401 |             let find_time_t = SystemTime::now();
[INFO] [stderr]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_time_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `end_time`
[INFO] [stderr]     --> src/main.rs:2404:13
[INFO] [stderr]      |
[INFO] [stderr] 2404 |         let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stderr]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2335:9
[INFO] [stderr]      |
[INFO] [stderr] 2335 |     let mut cover_logs_count = 0.0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2336:9
[INFO] [stderr]      |
[INFO] [stderr] 2336 |     let mut unique_cover_logs_count:usize =0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2337:9
[INFO] [stderr]      |
[INFO] [stderr] 2337 |     let mut transactions_count:f64 = 0.0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2338:9
[INFO] [stderr]      |
[INFO] [stderr] 2338 |     let mut over_rate = 0.0;
[INFO] [stderr]      |         ----^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2360:9
[INFO] [stderr]      |
[INFO] [stderr] 2360 |     let mut cover_logs_count3 = 0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1773:11
[INFO] [stderr]      |
[INFO] [stderr] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stderr]      |           ----^^^^^^^^^^^^
[INFO] [stderr]      |           |
[INFO] [stderr]      |           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1773:28
[INFO] [stderr]      |
[INFO] [stderr] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stderr]      |                            ----^^^^^^^^^^
[INFO] [stderr]      |                            |
[INFO] [stderr]      |                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1773:43
[INFO] [stderr]      |
[INFO] [stderr] 1773 |     let  (mut transactions,mut para_space,mut unique_set) = load_csv(data_path,loaded_num).expect("failed to load csv data");
[INFO] [stderr]      |                                           ----^^^^^^^^^^
[INFO] [stderr]      |                                           |
[INFO] [stderr]      |                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start_time`
[INFO] [stderr]     --> src/main.rs:2501:9
[INFO] [stderr]      |
[INFO] [stderr] 2501 |     let start_time = SystemTime::now();
[INFO] [stderr]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `TPR` is never read
[INFO] [stderr]     --> src/main.rs:2569:13
[INFO] [stderr]      |
[INFO] [stderr] 2569 |     let mut TPR = 0.0;
[INFO] [stderr]      |             ^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `TPR_no_distinct` is never read
[INFO] [stderr]     --> src/main.rs:2570:13
[INFO] [stderr]      |
[INFO] [stderr] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `precision`
[INFO] [stderr]     --> src/main.rs:2578:9
[INFO] [stderr]      |
[INFO] [stderr] 2578 |     let precision = (TruePositiveNum as f64)/(TruePositiveNum+FalsePositiveNum) as f64;
[INFO] [stderr]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::io::Write;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `wtr`
[INFO] [stderr]    --> src/main.rs:119:13
[INFO] [stderr]     |
[INFO] [stderr] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stderr]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_wtr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `loaded_num`
[INFO] [stderr]    --> src/main.rs:138:9
[INFO] [stderr]     |
[INFO] [stderr] 138 |     let loaded_num = 2000000;
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let mut file = OpenOptions::new()
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:119:9
[INFO] [stderr]     |
[INFO] [stderr] 119 |     let mut wtr = Writer::from_writer(file);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]    --> src/main.rs:417:9
[INFO] [stderr]     |
[INFO] [stderr] 417 |     let k            =     4; // # of clusters in the result
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max_iter`
[INFO] [stderr]    --> src/main.rs:418:9
[INFO] [stderr]     |
[INFO] [stderr] 418 |     let max_iter     =    10; // max number of iterations before the clustering forcefully stops
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `para_space`
[INFO] [stderr]    --> src/main.rs:423:32
[INFO] [stderr]     |
[INFO] [stderr] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stderr]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_para_space`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `trans_len`
[INFO] [stderr]    --> src/main.rs:439:9
[INFO] [stderr]     |
[INFO] [stderr] 439 |     let trans_len = transactions.len().clone();
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trans_len`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:423:11
[INFO] [stderr]     |
[INFO] [stderr] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stderr]     |           ----^^^^^^^^^^^^
[INFO] [stderr]     |           |
[INFO] [stderr]     |           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:423:28
[INFO] [stderr]     |
[INFO] [stderr] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stderr]     |                            ----^^^^^^^^^^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:423:43
[INFO] [stderr]     |
[INFO] [stderr] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stderr]     |                                           ----^^^^^^^^^
[INFO] [stderr]     |                                           |
[INFO] [stderr]     |                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `if_broken` is never read
[INFO] [stderr]    --> src/main.rs:760:13
[INFO] [stderr]     |
[INFO] [stderr] 760 |     let mut if_broken = false;
[INFO] [stderr]     |             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/main.rs:798:17
[INFO] [stderr]     |
[INFO] [stderr] 798 |             Err(e)=>{
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:753:9
[INFO] [stderr]     |
[INFO] [stderr] 753 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stderr]     |         ----^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:771:9
[INFO] [stderr]     |
[INFO] [stderr] 771 |     let mut unique_uid_net:Vec<String> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:772:9
[INFO] [stderr]     |
[INFO] [stderr] 772 |     let mut unique_gid_net:Vec<String> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:795:13
[INFO] [stderr]     |
[INFO] [stderr] 795 |         let mut record;
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `after_count`
[INFO] [stderr]     --> src/main.rs:1313:13
[INFO] [stderr]      |
[INFO] [stderr] 1313 |     let mut after_count = 0;
[INFO] [stderr]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_after_count`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `if_broken` is never read
[INFO] [stderr]     --> src/main.rs:1314:13
[INFO] [stderr]      |
[INFO] [stderr] 1314 |     let mut if_broken = false;
[INFO] [stderr]      |             ^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]     --> src/main.rs:1328:17
[INFO] [stderr]      |
[INFO] [stderr] 1328 |             Err(e)=>{
[INFO] [stderr]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uid_tmp`
[INFO] [stderr]     --> src/main.rs:1344:25
[INFO] [stderr]      |
[INFO] [stderr] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stderr]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gid_tmp`
[INFO] [stderr]     --> src/main.rs:1345:25
[INFO] [stderr]      |
[INFO] [stderr] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stderr]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uid_tmp`
[INFO] [stderr]     --> src/main.rs:1387:25
[INFO] [stderr]      |
[INFO] [stderr] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stderr]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uid_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gid_tmp`
[INFO] [stderr]     --> src/main.rs:1388:25
[INFO] [stderr]      |
[INFO] [stderr] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stderr]      |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gid_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1302:9
[INFO] [stderr]      |
[INFO] [stderr] 1302 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stderr]      |         ----^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1313:9
[INFO] [stderr]      |
[INFO] [stderr] 1313 |     let mut after_count = 0;
[INFO] [stderr]      |         ----^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1325:13
[INFO] [stderr]      |
[INFO] [stderr] 1325 |         let mut record;
[INFO] [stderr]      |             ----^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1344:21
[INFO] [stderr]      |
[INFO] [stderr] 1344 |                 let mut uid_tmp = "".to_string();
[INFO] [stderr]      |                     ----^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1345:21
[INFO] [stderr]      |
[INFO] [stderr] 1345 |                 let mut gid_tmp = "".to_string();
[INFO] [stderr]      |                     ----^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1387:21
[INFO] [stderr]      |
[INFO] [stderr] 1387 |                 let mut uid_tmp = "".to_string();
[INFO] [stderr]      |                     ----^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1388:21
[INFO] [stderr]      |
[INFO] [stderr] 1388 |                 let mut gid_tmp = "".to_string();
[INFO] [stderr]      |                     ----^^^^^^^
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `reader`
[INFO] [stderr]     --> src/main.rs:1451:13
[INFO] [stderr]      |
[INFO] [stderr] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stderr]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_gid_uid_file_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1459:13
[INFO] [stderr]      |
[INFO] [stderr] 1459 |     let mut unique_gid_uid_file_tmp:HashSet<(String,String)> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_op_file_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1460:13
[INFO] [stderr]      |
[INFO] [stderr] 1460 |     let mut unique_op_file_tmp:HashSet<String> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_res_file_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1461:13
[INFO] [stderr]      |
[INFO] [stderr] 1461 |     let mut unique_res_file_tmp:HashSet<String> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_gid_uid_net_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1469:13
[INFO] [stderr]      |
[INFO] [stderr] 1469 |     let mut unique_gid_uid_net_tmp:HashSet<(String,String)> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_op_net_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1470:13
[INFO] [stderr]      |
[INFO] [stderr] 1470 |     let mut unique_op_net_tmp:HashSet<String> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_res_net_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1471:13
[INFO] [stderr]      |
[INFO] [stderr] 1471 |     let mut unique_res_net_tmp:HashSet<String> = HashSet::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `transactions_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1472:13
[INFO] [stderr]      |
[INFO] [stderr] 1472 |     let mut transactions_tmp:Vec<Vec<String>> = Vec::new();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `unique_set_tmp` is never read
[INFO] [stderr]     --> src/main.rs:1474:13
[INFO] [stderr]      |
[INFO] [stderr] 1474 |     let mut unique_set_tmp:HashSet<String> = Default::default();
[INFO] [stderr]      |             ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1446:9
[INFO] [stderr]      |
[INFO] [stderr] 1446 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stderr]      |         ----^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1451:9
[INFO] [stderr]      |
[INFO] [stderr] 1451 |     let mut reader = ReaderBuilder::new().delimiter(b',').from_reader(f);
[INFO] [stderr]      |         ----^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `if_broken` is never read
[INFO] [stderr]     --> src/main.rs:1546:13
[INFO] [stderr]      |
[INFO] [stderr] 1546 |     let mut if_broken = false;
[INFO] [stderr]      |             ^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]     --> src/main.rs:1585:17
[INFO] [stderr]      |
[INFO] [stderr] 1585 |             Err(e)=>{
[INFO] [stderr]      |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1539:9
[INFO] [stderr]      |
[INFO] [stderr] 1539 |     let mut f = File::open(data_path).expect("expect a csv file");
[INFO] [stderr]      |         ----^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:1582:13
[INFO] [stderr]      |
[INFO] [stderr] 1582 |         let mut record;
[INFO] [stderr]      |             ----^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `unique_logs_count_t`
[INFO] [stderr]     --> src/main.rs:2145:13
[INFO] [stderr]      |
[INFO] [stderr] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unique_logs_count_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `influence`
[INFO] [stderr]     --> src/main.rs:2152:13
[INFO] [stderr]      |
[INFO] [stderr] 2152 |         let influence = fsrule.create_influence_vec();
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `transacation_cp`
[INFO] [stderr]     --> src/main.rs:2153:17
[INFO] [stderr]      |
[INFO] [stderr] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transacation_cp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `influence`
[INFO] [stderr]     --> src/main.rs:2242:13
[INFO] [stderr]      |
[INFO] [stderr] 2242 |         let influence = netrule.create_influence_vec();
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_influence`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `end_time`
[INFO] [stderr]     --> src/main.rs:2261:9
[INFO] [stderr]      |
[INFO] [stderr] 2261 |     let end_time = SystemTime::now().duration_since(start_time).unwrap().as_secs_f64();
[INFO] [stderr]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2145:9
[INFO] [stderr]      |
[INFO] [stderr] 2145 |     let mut unique_logs_count_t = 0;
[INFO] [stderr]      |         ----^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2153:13
[INFO] [stderr]      |
[INFO] [stderr] 2153 |         let mut transacation_cp = transaction_original.clone();
[INFO] [stderr]      |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `mutex_u64` is never used
[INFO] [stderr]   --> src/main.rs:35:6
[INFO] [stderr]    |
[INFO] [stderr] 35 | type mutex_u64 = Arc<Mutex<u64>>;
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `basline_test` is never used
[INFO] [stderr]    --> src/main.rs:278:10
[INFO] [stderr]     |
[INFO] [stderr] 278 | async fn basline_test()->Result<()>{
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clustering_test` is never used
[INFO] [stderr]    --> src/main.rs:414:4
[INFO] [stderr]     |
[INFO] [stderr] 414 | fn clustering_test(){
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mining_rule_with_baseline` is never used
[INFO] [stderr]    --> src/main.rs:457:10
[INFO] [stderr]     |
[INFO] [stderr] 457 | async fn mining_rule_with_baseline(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64)->Result<()>{
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mining_rule_with_fp_growth` is never used
[INFO] [stderr]    --> src/main.rs:504:10
[INFO] [stderr]     |
[INFO] [stderr] 504 | async fn mining_rule_with_fp_growth(data_path:&str,omega:f64,loaded_num:u64,scoring_rate:f64,obp_rate:f64,support_rate:f64)->Result<Vec<V...
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv` is never used
[INFO] [stderr]    --> src/main.rs:751:4
[INFO] [stderr]     |
[INFO] [stderr] 751 | fn load_csv(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_with_para_and_backup_loaded` is never used
[INFO] [stderr]    --> src/main.rs:994:10
[INFO] [stderr]     |
[INFO] [stderr] 994 | async fn load_csv_with_para_and_backup_loaded(data_path:&str,loaded_num:u64,mongo_backup:&str)->Result<(Vec<Vec<String>>,HashSet<String>)>{
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_data_pure` is never used
[INFO] [stderr]     --> src/main.rs:1299:4
[INFO] [stderr]      |
[INFO] [stderr] 1299 | fn load_csv_data_pure(data_path:&str,loaded_num:u64) ->Result<Vec<Vec<String>>>{
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_by_shard` is never used
[INFO] [stderr]     --> src/main.rs:1443:4
[INFO] [stderr]      |
[INFO] [stderr] 1443 | fn load_csv_by_shard(data_path:&str,loaded_num:u64)-> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_by_shard_loop` is never used
[INFO] [stderr]     --> src/main.rs:1537:4
[INFO] [stderr]      |
[INFO] [stderr] 1537 | fn load_csv_by_shard_loop(data_path:&str,loaded_num:u64,after_num:u64) -> Result<(Vec<Vec<String>>,HashSet<String>,(HashSet<(String,Strin...
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_to_mongodb` is never used
[INFO] [stderr]     --> src/main.rs:1767:10
[INFO] [stderr]      |
[INFO] [stderr] 1767 | async fn load_csv_to_mongodb(data_path:&str,loaded_num:u64) -> Result<(Vec<Vec<String>>,Vec<Vec<String>>,HashSet<String>)> {
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_csv_to_mongodb_with_scoring` is never used
[INFO] [stderr]     --> src/main.rs:1857:10
[INFO] [stderr]      |
[INFO] [stderr] 1857 | async fn load_csv_to_mongodb_with_scoring(data_path:&str,loaded_num:u64,scoring_rate:f64,obp_rate:f64) -> Result<(Vec<Vec<String>>,HashSe...
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculating_coverage_rate_mongo` is never used
[INFO] [stderr]     --> src/main.rs:2021:10
[INFO] [stderr]      |
[INFO] [stderr] 2021 | async fn calculating_coverage_rate_mongo(frequent_pattern:&Vec<&str>) -> Result<(f64,usize,f64)>{
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `delete_logs_from_rule_normal` is never used
[INFO] [stderr]     --> src/main.rs:2059:4
[INFO] [stderr]      |
[INFO] [stderr] 2059 | fn delete_logs_from_rule_normal(most_frequent_pattern:&Vec<&str>,transactions:&Vec<Vec<String>>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculating_coverage_rate` is never used
[INFO] [stderr]     --> src/main.rs:2142:4
[INFO] [stderr]      |
[INFO] [stderr] 2142 | fn calculating_coverage_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize,f64)>{
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculating_over_rate` is never used
[INFO] [stderr]     --> src/main.rs:2269:4
[INFO] [stderr]      |
[INFO] [stderr] 2269 | fn calculating_over_rate(transaction_original:&Vec<Vec<String>>,frequent_pattern:&Vec<&str>)-> Result<(f64,usize)>{
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculating_overate_rate_mongo` is never used
[INFO] [stderr]     --> src/main.rs:2329:10
[INFO] [stderr]      |
[INFO] [stderr] 2329 | async fn calculating_overate_rate_mongo(frequent_pattern:&Vec<&str>,para_space_len:f64) -> Result<(f64,usize)>{
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_cover_logs_from_collection` is never used
[INFO] [stderr]     --> src/main.rs:2446:10
[INFO] [stderr]      |
[INFO] [stderr] 2446 | async fn get_cover_logs_from_collection(query_doc:Document,mutex_count:mutex_u64,col:Collection<Document>){
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `delete_logs_from_rule` is never used
[INFO] [stderr]     --> src/main.rs:2461:10
[INFO] [stderr]      |
[INFO] [stderr] 2461 | async fn delete_logs_from_rule(frequent_pattern:&Vec<&str>)->Result<(Vec<Vec<String>>)>{
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluation_policy` is never used
[INFO] [stderr]     --> src/main.rs:2500:10
[INFO] [stderr]      |
[INFO] [stderr] 2500 | async fn evaluation_policy(frequent_pattern_set:&Vec<Vec<String>>)->Result<(f64,f64,f64,f64,f64)>{
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_mongodb_to_vec` is never used
[INFO] [stderr]     --> src/main.rs:2592:10
[INFO] [stderr]      |
[INFO] [stderr] 2592 | async fn load_mongodb_to_vec() ->Result<(Vec<Vec<String>>,Vec<Document>,HashSet<String>)>{
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:306:17
[INFO] [stderr]     |
[INFO] [stderr] 306 |         let mut transaction_len_of_OPP_distinct =scoring_num.clone();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stderr]    --> src/main.rs:311:13
[INFO] [stderr]     |
[INFO] [stderr] 311 |         let transaction_len_of_OPP =scoring_num.clone();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stderr]    --> src/main.rs:336:13
[INFO] [stderr]     |
[INFO] [stderr] 336 |         let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:337:13
[INFO] [stderr]     |
[INFO] [stderr] 337 |         let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stderr]    --> src/main.rs:339:13
[INFO] [stderr]     |
[INFO] [stderr] 339 |         let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:340:13
[INFO] [stderr]     |
[INFO] [stderr] 340 |         let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stderr]    --> src/main.rs:341:13
[INFO] [stderr]     |
[INFO] [stderr] 341 |         let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stderr]    --> src/main.rs:345:13
[INFO] [stderr]     |
[INFO] [stderr] 345 |         let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:347:17
[INFO] [stderr]     |
[INFO] [stderr] 347 | ...   let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalseP...
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:352:17
[INFO] [stderr]     |
[INFO] [stderr] 352 |         let mut TPR = 0.0;
[INFO] [stderr]     |                 ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:353:17
[INFO] [stderr]     |
[INFO] [stderr] 353 |         let mut TPR_no_distinct = 0.0;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:360:13
[INFO] [stderr]     |
[INFO] [stderr] 360 |         let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stderr]     |             ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stderr]    --> src/main.rs:368:13
[INFO] [stderr]     |
[INFO] [stderr] 368 |         let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:387:23
[INFO] [stderr]     |
[INFO] [stderr] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                       ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:387:27
[INFO] [stderr]     |
[INFO] [stderr] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                           ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPRnd` should have a snake case name
[INFO] [stderr]    --> src/main.rs:387:32
[INFO] [stderr]     |
[INFO] [stderr] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                                ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPRnd` should have a snake case name
[INFO] [stderr]    --> src/main.rs:387:38
[INFO] [stderr]     |
[INFO] [stderr] 387 |         let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                                      ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:400:19
[INFO] [stderr]     |
[INFO] [stderr] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                   ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR` should have a snake case name
[INFO] [stderr]    --> src/main.rs:400:23
[INFO] [stderr]     |
[INFO] [stderr] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                       ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPRnd` should have a snake case name
[INFO] [stderr]    --> src/main.rs:400:28
[INFO] [stderr]     |
[INFO] [stderr] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                            ^^^^^ help: convert the identifier to snake case: `tprnd`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPRnd` should have a snake case name
[INFO] [stderr]    --> src/main.rs:400:34
[INFO] [stderr]     |
[INFO] [stderr] 400 |     let (precsion,TPR,FPR ,TPRnd,FPRnd )= evaluation_policy_baseline().await?;
[INFO] [stderr]     |                                  ^^^^^ help: convert the identifier to snake case: `fprnd`
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/main.rs:404:14
[INFO] [stderr]     |
[INFO] [stderr] 404 |         "1.0".clone().to_string(),
[INFO] [stderr]     |              ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]    --> src/main.rs:423:47
[INFO] [stderr]     |
[INFO] [stderr] 423 |     let  (mut transactions,mut para_space,mut uniqueSet) = load_csv(data_path,1000).expect("failed to load csv data");
[INFO] [stderr]     |                                               ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]    --> src/main.rs:462:32
[INFO] [stderr]     |
[INFO] [stderr] 462 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]    --> src/main.rs:471:13
[INFO] [stderr]     |
[INFO] [stderr] 471 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]    --> src/main.rs:509:32
[INFO] [stderr]     |
[INFO] [stderr] 509 |     let  (mut transactions,mut uniqueSet) = load_csv_to_mongodb_with_scoring(data_path,loaded_num,scoring_rate,obp_rate).await.expect("fa...
[INFO] [stderr]     |                                ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Qrul_count` should have a snake case name
[INFO] [stderr]    --> src/main.rs:677:21
[INFO] [stderr]     |
[INFO] [stderr] 677 |                 let Qrul_count = (unique_logs_count as f64)*(1.0-((omega * over_assignment_total)/unique_logs_count as f64));
[INFO] [stderr]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `qrul_count`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Qrul_freq` should have a snake case name
[INFO] [stderr]    --> src/main.rs:682:21
[INFO] [stderr]     |
[INFO] [stderr] 682 |                 let Qrul_freq = (log_entries_len as f64 )*(1.0-((omega*over_assignment_total)/unique_logs_count as f64));
[INFO] [stderr]     |                     ^^^^^^^^^ help: convert the identifier to snake case: `qrul_freq`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `C_scores` should have a snake case name
[INFO] [stderr]    --> src/main.rs:684:21
[INFO] [stderr]     |
[INFO] [stderr] 684 |                 let C_scores = (cover_logs_count as f64 / log_entries_len as f64) + omega*(1.0-overate_not_distinct);
[INFO] [stderr]     |                     ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `c_scores`
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/main.rs:729:62
[INFO] [stderr]     |
[INFO] [stderr] 729 |         println!("len of trans:{},len of back:{}", &trans_len.borrow(), len_after_delete);
[INFO] [stderr]     |                                                              ^^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `usize` does not implement `Borrow`, so calling `borrow` on `&usize` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]    --> src/main.rs:952:13
[INFO] [stderr]     |
[INFO] [stderr] 952 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]     |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]     --> src/main.rs:1056:66
[INFO] [stderr]      |
[INFO] [stderr] 1056 | ...                   "logtype":"$logtype","item":item_type.clone()
[INFO] [stderr]      |                                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]      |
[INFO] [stderr]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]     --> src/main.rs:1059:55
[INFO] [stderr]      |
[INFO] [stderr] 1059 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stderr]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]      |
[INFO] [stderr]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]     --> src/main.rs:1084:55
[INFO] [stderr]      |
[INFO] [stderr] 1084 |                 },doc!{"$match":{"_id.logtype":logtype.clone()}}
[INFO] [stderr]      |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]      |
[INFO] [stderr]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]     --> src/main.rs:1194:47
[INFO] [stderr]      |
[INFO] [stderr] 1194 |                         "logtype": logtype_tmp.clone(),
[INFO] [stderr]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]      |
[INFO] [stderr]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]     --> src/main.rs:1256:47
[INFO] [stderr]      |
[INFO] [stderr] 1256 |                         "logtype": logtype_tmp.clone(),
[INFO] [stderr]      |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]      |
[INFO] [stderr]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]     --> src/main.rs:1473:13
[INFO] [stderr]      |
[INFO] [stderr] 1473 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]     --> src/main.rs:1721:13
[INFO] [stderr]      |
[INFO] [stderr] 1721 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `length_of_OBP` should have a snake case name
[INFO] [stderr]     --> src/main.rs:1870:9
[INFO] [stderr]      |
[INFO] [stderr] 1870 |     let length_of_OBP = (loaded_num as f64 * (1.0-scoring_rate)) as usize;
[INFO] [stderr]      |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `length_of_OBP_true` should have a snake case name
[INFO] [stderr]     --> src/main.rs:1881:13
[INFO] [stderr]      |
[INFO] [stderr] 1881 |         let length_of_OBP_true = (length_of_OBP as f64 * obp_rate) as usize;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `length_of_obp_true`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `log_of_OBP_count` should have a snake case name
[INFO] [stderr]     --> src/main.rs:1942:21
[INFO] [stderr]      |
[INFO] [stderr] 1942 |             let mut log_of_OBP_count:usize = 0;
[INFO] [stderr]      |                     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `log_of_obp_count`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `transaction_len_of_OPP` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2524:9
[INFO] [stderr]      |
[INFO] [stderr] 2524 |     let transaction_len_of_OPP = transaction_scoring.count_documents(None,None).await.expect("failed to connect to mongo");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `transaction_len_of_OPP_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2525:9
[INFO] [stderr]      |
[INFO] [stderr] 2525 |     let transaction_len_of_OPP_distinct = transaction_scoring_distinct.count_documents(None,None).await.expect("failed to connect to mong...
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_len_of_opp_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TruePositiveNum` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2553:9
[INFO] [stderr]      |
[INFO] [stderr] 2553 |     let TruePositiveNum:u64 = policy_cover_count_distinct.clone();
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TruePositiveNum_no_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2554:9
[INFO] [stderr]      |
[INFO] [stderr] 2554 |     let TruePositiveNum_no_distinct:u64 = policy_cover_count.clone();
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_positive_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalseNegativeNum` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2556:9
[INFO] [stderr]      |
[INFO] [stderr] 2556 |     let FalseNegativeNum:u64 = transaction_len_of_OPP_distinct - policy_cover_count_distinct;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalseNegativeNum_no_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2557:9
[INFO] [stderr]      |
[INFO] [stderr] 2557 |     let FalseNegativeNum_no_distinct:u64 = transaction_len_of_OPP - policy_cover_count;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_negative_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FalsePositiveNum` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2558:9
[INFO] [stderr]      |
[INFO] [stderr] 2558 |     let FalsePositiveNum:u64 = policy_cover_para_space_count - policy_cover_count_distinct;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `false_positive_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TrueNegativeNum` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2562:9
[INFO] [stderr]      |
[INFO] [stderr] 2562 |     let TrueNegativeNum:u64 = para_space_size - (TruePositiveNum+FalseNegativeNum+FalsePositiveNum);
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TrueNegativeNum_no_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2564:13
[INFO] [stderr]      |
[INFO] [stderr] 2564 |     let mut TrueNegativeNum_no_distinct:i64 = para_space_size as i64 - (TruePositiveNum_no_distinct+FalseNegativeNum_no_distinct+FalsePos...
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `true_negative_num_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2569:13
[INFO] [stderr]      |
[INFO] [stderr] 2569 |     let mut TPR = 0.0;
[INFO] [stderr]      |             ^^^ help: convert the identifier to snake case: `tpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `TPR_no_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2570:13
[INFO] [stderr]      |
[INFO] [stderr] 2570 |     let mut TPR_no_distinct = 0.0;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tpr_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2577:9
[INFO] [stderr]      |
[INFO] [stderr] 2577 |     let FPR = (FalsePositiveNum as f64)/(FalsePositiveNum + TrueNegativeNum)as f64;
[INFO] [stderr]      |         ^^^ help: convert the identifier to snake case: `fpr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `FPR_no_distinct` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2585:9
[INFO] [stderr]      |
[INFO] [stderr] 2585 |     let FPR_no_distinct = (FalsePositiveNum as f64)/((FalsePositiveNum as u64 + TrueNegativeNum_no_distinct as u64)as f64);
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `fpr_no_distinct`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `uniqueSet` should have a snake case name
[INFO] [stderr]     --> src/main.rs:2601:13
[INFO] [stderr]      |
[INFO] [stderr] 2601 |     let mut uniqueSet:HashSet<String> = Default::default();
[INFO] [stderr]      |             ^^^^^^^^^ help: convert the identifier to snake case: `unique_set`
[INFO] [stderr] 
[INFO] [stderr] warning: `esx_mining` (bin "esx_mining" test) generated 264 warnings (run `cargo fix --bin "esx_mining" --tests` to apply 169 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/esx_mining-bd3274fd4926fd9f)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/esx_mining-b0cb7d68ba91c93b)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests esx_mining
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4c8c9a3283693fcdf35258f875cb5f9c4042fe45a6f8063e82a79c3d4c9dd143", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c8c9a3283693fcdf35258f875cb5f9c4042fe45a6f8063e82a79c3d4c9dd143", kill_on_drop: false }`
[INFO] [stdout] 4c8c9a3283693fcdf35258f875cb5f9c4042fe45a6f8063e82a79c3d4c9dd143
