[INFO] cloning repository https://github.com/mohitejaikumar/CLOB
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mohitejaikumar/CLOB" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmohitejaikumar%2FCLOB", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmohitejaikumar%2FCLOB'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f3fbe920de3380f06169369615898beaeae62b49
[INFO] testing mohitejaikumar/CLOB against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmohitejaikumar%2FCLOB" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mohitejaikumar/CLOB
[INFO] finished tweaking git repo https://github.com/mohitejaikumar/CLOB
[INFO] tweaked toml for git repo https://github.com/mohitejaikumar/CLOB written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mohitejaikumar/CLOB on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mohitejaikumar/CLOB 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.27.0
[INFO] [stderr]   Downloaded tungstenite v0.27.0
[INFO] [stderr]   Downloaded rust_decimal v1.37.2
[INFO] [stderr]   Downloaded redis v0.32.4
[INFO] [stderr]   Downloaded enum_stringify v0.6.4
[INFO] [stderr]   Downloaded gumdrop v0.8.1
[INFO] [stderr]   Downloaded gumdrop_derive v0.8.1
[INFO] [stderr]   Downloaded rustls v0.23.30
[INFO] [stderr]   Downloaded scylla v1.3.0
[INFO] [stderr]   Downloaded scylla-macros v1.3.0
[INFO] [stderr]   Downloaded rand_pcg v0.9.0
[INFO] [stderr]   Downloaded lz4_flex v0.11.5
[INFO] [stderr]   Downloaded rust_decimal_macros v1.37.1
[INFO] [stderr]   Downloaded scylla-cql v1.3.0
[INFO] [stderr]   Downloaded goose v0.18.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 77eaf75ef86b0be1815399d0765876c8a37fe072a3e755a98e88fa751f06a54c
[INFO] running `Command { std: "docker" "start" "-a" "77eaf75ef86b0be1815399d0765876c8a37fe072a3e755a98e88fa751f06a54c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "77eaf75ef86b0be1815399d0765876c8a37fe072a3e755a98e88fa751f06a54c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77eaf75ef86b0be1815399d0765876c8a37fe072a3e755a98e88fa751f06a54c", kill_on_drop: false }`
[INFO] [stdout] 77eaf75ef86b0be1815399d0765876c8a37fe072a3e755a98e88fa751f06a54c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c2221075a2d716bc7c243fb9d01401846c438e318dde20aca1013cdd0c2920d6
[INFO] running `Command { std: "docker" "start" "-a" "c2221075a2d716bc7c243fb9d01401846c438e318dde20aca1013cdd0c2920d6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling rust_decimal v1.37.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling twox-hash v2.1.1
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling combine v4.6.7
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling lz4_flex v0.11.5
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling psl-types v2.0.11
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]    Compiling iri-string v0.7.8
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling num-format v0.4.4
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling downcast-rs v2.0.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_pcg v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling nanorand v0.7.0
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling gumdrop_derive v0.8.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling ctrlc v3.4.7
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling gumdrop v0.8.1
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling simplelog v0.12.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling enum_stringify v0.6.4
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling rust_decimal_macros v1.37.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling scylla-macros v1.3.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling tungstenite v0.26.2
[INFO] [stderr]    Compiling tungstenite v0.27.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling publicsuffix v2.3.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling redis v0.32.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling async-compression v0.4.27
[INFO] [stderr]    Compiling tokio-tungstenite v0.26.2
[INFO] [stderr]    Compiling tokio-tungstenite v0.27.0
[INFO] [stderr]    Compiling h2 v0.4.11
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling actix-codec v0.5.2
[INFO] [stderr]    Compiling actix-server v2.6.0
[INFO] [stderr]    Compiling scylla-cql v1.3.0
[INFO] [stderr]    Compiling cookie_store v0.21.1
[INFO] [stderr]    Compiling scylla v1.3.0
[INFO] [stderr]    Compiling actix-http v3.11.0
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling wss v0.1.0 (/opt/rustwide/workdir/wss)
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]  --> wss/src/enums/registered_symbols.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     SOL_USDT,
[INFO] [stdout]   |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BTC_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     ETH_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ORDER_UPDATE` should have an upper camel case name
[INFO] [stdout]   --> wss/src/payload.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     ORDER_UPDATE,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrderUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling actix-web v4.11.0
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.22
[INFO] [stderr]    Compiling goose v0.18.0
[INFO] [stderr]    Compiling archiever v0.1.0 (/opt/rustwide/workdir/archiever)
[INFO] [stdout] warning: unused import: `LoadBalancingPolicy`
[INFO] [stdout]  --> archiever/src/db.rs:3:165
[INFO] [stdout]   |
[INFO] [stdout] 3 | ..., frame::Compression, policies::load_balancing::{self, LoadBalancingPolicy}, statement::batch::Batch};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> archiever/src/state/user.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, hash::Hash};
[INFO] [stdout]   |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeserializeRow` and `SerializeRow`
[INFO] [stdout]  --> archiever/src/state/user.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use scylla::{DeserializeRow, SerializeRow};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut order_1 = self.get_order(queue_trade.order_id, &queue_trade.exchange.symbol).await?;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut order_2 = self.get_order(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling backend v0.1.0 (/opt/rustwide/workdir/backend)
[INFO] [stderr]    Compiling engine v0.1.0 (/opt/rustwide/workdir/engine)
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> archiever/src/state/exchange.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     SOL_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     BTC_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     ETH_USDT
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_scylla_trade` is never used
[INFO] [stdout]   --> archiever/src/state/scylla_state.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ScyllaTrade {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 67 |     fn from_scylla_trade(&self) -> Trade {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut orders = temp.rows::<ScyllaOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let mut temp_cancel = cancel_res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:428:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let mut canceled_orders = temp_cancel.rows::<ScyllaCancelOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let mut canceled_orders: Vec<OrderRequest> = canceled_orders
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `App`
[INFO] [stdout]  --> backend/src/routes/user.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     App, HttpResponse,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut orderbooks = &mut self.orderbook;
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut query_rows = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut users = query_rows.rows::<ScyllaUser>().unwrap();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scylla::errors::BadQuery`
[INFO] [stdout]  --> backend/src/api/user.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use scylla::errors::BadQuery;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error::QueryPayloadError`
[INFO] [stdout]  --> backend/src/api/order.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::error::QueryPayloadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (tx, mut rx) = mpsc::unbounded_channel::<PersistOrderRequest>();
[INFO] [stdout]     |                  ----^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let (event_tx, mut event_rx) = mpsc::unbounded_channel::<Vec<RedisEmit>>();
[INFO] [stdout]     |                        ----^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/app.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut redis_connection = connect_redis(&redis_uri);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/db/mod.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/routes/orders.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut con = &mut app_state.redis_connection.lock().unwrap();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/orderbook.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut order_id = &mut self.order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let result = match order.order_side {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut open_orders = self.get_open_orders(user_id);
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:298:21
[INFO] [stdout]     |
[INFO] [stdout] 298 |                 let mut limit = self.bids.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:315:21
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 let mut limit = self.asks.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut orders = temp.rows::<ScyllaOrder>()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut trades = temp.rows::<ScyllaTrade>().unwrap();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         mut trade_id: &mut u64,
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/trade.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut orderbook = self.orderbook.get_mut(&exchange).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut order_id = &mut self.orderbook.get_mut(exchange).unwrap().order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/engine.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut orderbook = Orderbook::new(exchange.clone());
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/handle_order_request.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let mut get_open_orders: Vec<RecievedOrder> = orderbook
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_engine_and_users` is never used
[INFO] [stdout]    --> engine/src/matching/engine.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn setup_engine_and_users() -> (MatchingEngine, Exchange, Orderbook, Vec<Id>) { // pass redis connection as arg
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> engine/src/lib.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     let _ = redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:691:25
[INFO] [stdout]     |
[INFO] [stdout] 691 | /                         event_tx.unwrap().send(
[INFO] [stdout] 692 | |                             vec![
[INFO] [stdout] 693 | |                                 RedisEmit {
[INFO] [stdout] 694 | |                                     cmd: "PUBLISH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 715 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 691 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:804:25
[INFO] [stdout]     |
[INFO] [stdout] 804 | /                         event_tx.unwrap().send(
[INFO] [stdout] 805 | |                             vec![
[INFO] [stdout] 806 | |                                 RedisEmit {
[INFO] [stdout] 807 | |                                     cmd: "LPUSH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 804 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:863:5
[INFO] [stdout]     |
[INFO] [stdout] 863 |     users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 863 |     let _ = users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 864 |     let _ = users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:868:5
[INFO] [stdout]     |
[INFO] [stdout] 868 |     users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 868 |     let _ = users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 869 |     users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 869 |     let _ = users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/engine.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let _ = engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 | /         tx.send(
[INFO] [stdout] 130 | |             PersistOrderRequest::Save(SaveOrder {
[INFO] [stdout] 131 | |                 locked_balance,
[INFO] [stdout] 132 | |                 asset,
[INFO] [stdout] 133 | |                 recieved_order: recieved_order.clone(),
[INFO] [stdout] 134 | |             })
[INFO] [stdout] 135 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let _ = tx.send(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:199:17
[INFO] [stdout]     |
[INFO] [stdout] 199 | /                 tx.send(
[INFO] [stdout] 200 | |                     PersistOrderRequest::Cancel(PersistCancel {
[INFO] [stdout] 201 | |                         id: cancel_order.id,
[INFO] [stdout] 202 | |                         order_side: cancel_order.order_side,
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                     })
[INFO] [stdout] 210 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 let _ = tx.send(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 | /             tx.send(
[INFO] [stdout] 260 | |                 PersistOrderRequest::CancelAll(PersistCancelAll {
[INFO] [stdout] 261 | |                     locked_balances,
[INFO] [stdout] 262 | |                     symbol: cancel_all.symbol,
[INFO] [stdout] ...   |
[INFO] [stdout] 273 | |                 })
[INFO] [stdout] 274 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let _ = tx.send(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scylla::response::query_result`
[INFO] [stdout]  --> archiever/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use scylla::response::query_result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:28:55
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 32 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:66:55
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 70 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 106 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:139:55
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 143 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/orders.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 64 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:101:55
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 105 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:141:59
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 145 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:179:59
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 183 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:220:59
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 224 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling loadtesting v0.1.0 (/opt/rustwide/workdir/loadtesting)
[INFO] [stdout] warning: unused imports: `CancelAll`, `CancelOrder`, `OrderSide`, and `OrderType`
[INFO] [stdout]  --> loadtesting/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CancelAll, CancelOrder, Deposit, OpenOrder, OpenOrders, OrderParams, OrderSide, OrderType,
[INFO] [stdout]   |     ^^^^^^^^^  ^^^^^^^^^^^                                               ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> loadtesting/src/main.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]   --> loadtesting/src/main.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::{collections::HashMap, str::FromStr, time::Instant};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_balances` is never used
[INFO] [stdout]   --> loadtesting/src/main.rs:91:10
[INFO] [stdout]    |
[INFO] [stdout] 91 | async fn get_user_balances(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deposit_funds` is never used
[INFO] [stdout]   --> loadtesting/src/main.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 | async fn deposit_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `withdraw_funds` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | async fn withdraw_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_order_history` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | async fn get_order_history(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_order` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 | async fn execute_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_open_order` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:199:10
[INFO] [stdout]     |
[INFO] [stdout] 199 | async fn get_open_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_open_orders` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:221:10
[INFO] [stdout]     |
[INFO] [stdout] 221 | async fn get_open_orders(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_trades` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:241:10
[INFO] [stdout]     |
[INFO] [stdout] 241 | async fn get_trades(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 06s
[INFO] running `Command { std: "docker" "inspect" "c2221075a2d716bc7c243fb9d01401846c438e318dde20aca1013cdd0c2920d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2221075a2d716bc7c243fb9d01401846c438e318dde20aca1013cdd0c2920d6", kill_on_drop: false }`
[INFO] [stdout] c2221075a2d716bc7c243fb9d01401846c438e318dde20aca1013cdd0c2920d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67bdd4b5639cbde2d67bf6242a07323968088ea03aa60f357af3b98c566e6430
[INFO] running `Command { std: "docker" "start" "-a" "67bdd4b5639cbde2d67bf6242a07323968088ea03aa60f357af3b98c566e6430", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `LoadBalancingPolicy`
[INFO] [stdout]  --> archiever/src/db.rs:3:165
[INFO] [stdout]   |
[INFO] [stdout] 3 | ..., frame::Compression, policies::load_balancing::{self, LoadBalancingPolicy}, statement::batch::Batch};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> archiever/src/state/user.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, hash::Hash};
[INFO] [stdout]   |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeserializeRow` and `SerializeRow`
[INFO] [stdout]  --> archiever/src/state/user.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use scylla::{DeserializeRow, SerializeRow};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut order_1 = self.get_order(queue_trade.order_id, &queue_trade.exchange.symbol).await?;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut order_2 = self.get_order(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> archiever/src/state/exchange.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_scylla_trade` is never used
[INFO] [stdout]   --> archiever/src/state/scylla_state.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ScyllaTrade {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 67 |     fn from_scylla_trade(&self) -> Trade {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling archiever v0.1.0 (/opt/rustwide/workdir/archiever)
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     SOL_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     BTC_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     ETH_USDT
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut orders = temp.rows::<ScyllaOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let mut temp_cancel = cancel_res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:428:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let mut canceled_orders = temp_cancel.rows::<ScyllaCancelOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let mut canceled_orders: Vec<OrderRequest> = canceled_orders
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut orderbooks = &mut self.orderbook;
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut query_rows = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut users = query_rows.rows::<ScyllaUser>().unwrap();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (tx, mut rx) = mpsc::unbounded_channel::<PersistOrderRequest>();
[INFO] [stdout]     |                  ----^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let (event_tx, mut event_rx) = mpsc::unbounded_channel::<Vec<RedisEmit>>();
[INFO] [stdout]     |                        ----^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/orderbook.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut order_id = &mut self.order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let result = match order.order_side {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut open_orders = self.get_open_orders(user_id);
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:298:21
[INFO] [stdout]     |
[INFO] [stdout] 298 |                 let mut limit = self.bids.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:315:21
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 let mut limit = self.asks.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         mut trade_id: &mut u64,
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut orderbook = self.orderbook.get_mut(&exchange).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut order_id = &mut self.orderbook.get_mut(exchange).unwrap().order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/engine.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut orderbook = Orderbook::new(exchange.clone());
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/handle_order_request.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let mut get_open_orders: Vec<RecievedOrder> = orderbook
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_engine_and_users` is never used
[INFO] [stdout]    --> engine/src/matching/engine.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn setup_engine_and_users() -> (MatchingEngine, Exchange, Orderbook, Vec<Id>) { // pass redis connection as arg
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> engine/src/lib.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     let _ = redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:691:25
[INFO] [stdout]     |
[INFO] [stdout] 691 | /                         event_tx.unwrap().send(
[INFO] [stdout] 692 | |                             vec![
[INFO] [stdout] 693 | |                                 RedisEmit {
[INFO] [stdout] 694 | |                                     cmd: "PUBLISH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 715 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 691 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:804:25
[INFO] [stdout]     |
[INFO] [stdout] 804 | /                         event_tx.unwrap().send(
[INFO] [stdout] 805 | |                             vec![
[INFO] [stdout] 806 | |                                 RedisEmit {
[INFO] [stdout] 807 | |                                     cmd: "LPUSH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 804 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:863:5
[INFO] [stdout]     |
[INFO] [stdout] 863 |     users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 863 |     let _ = users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 864 |     let _ = users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:868:5
[INFO] [stdout]     |
[INFO] [stdout] 868 |     users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 868 |     let _ = users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 869 |     users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 869 |     let _ = users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/engine.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let _ = engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 | /         tx.send(
[INFO] [stdout] 130 | |             PersistOrderRequest::Save(SaveOrder {
[INFO] [stdout] 131 | |                 locked_balance,
[INFO] [stdout] 132 | |                 asset,
[INFO] [stdout] 133 | |                 recieved_order: recieved_order.clone(),
[INFO] [stdout] 134 | |             })
[INFO] [stdout] 135 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let _ = tx.send(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:199:17
[INFO] [stdout]     |
[INFO] [stdout] 199 | /                 tx.send(
[INFO] [stdout] 200 | |                     PersistOrderRequest::Cancel(PersistCancel {
[INFO] [stdout] 201 | |                         id: cancel_order.id,
[INFO] [stdout] 202 | |                         order_side: cancel_order.order_side,
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                     })
[INFO] [stdout] 210 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 let _ = tx.send(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 | /             tx.send(
[INFO] [stdout] 260 | |                 PersistOrderRequest::CancelAll(PersistCancelAll {
[INFO] [stdout] 261 | |                     locked_balances,
[INFO] [stdout] 262 | |                     symbol: cancel_all.symbol,
[INFO] [stdout] ...   |
[INFO] [stdout] 273 | |                 })
[INFO] [stdout] 274 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let _ = tx.send(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]  --> wss/src/enums/registered_symbols.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     SOL_USDT,
[INFO] [stdout]   |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BTC_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     ETH_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wss v0.1.0 (/opt/rustwide/workdir/wss)
[INFO] [stdout] warning: variant `ORDER_UPDATE` should have an upper camel case name
[INFO] [stdout]   --> wss/src/payload.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     ORDER_UPDATE,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrderUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling engine v0.1.0 (/opt/rustwide/workdir/engine)
[INFO] [stdout] warning: unused import: `App`
[INFO] [stdout]  --> backend/src/routes/user.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     App, HttpResponse,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scylla::errors::BadQuery`
[INFO] [stdout]  --> backend/src/api/user.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use scylla::errors::BadQuery;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error::QueryPayloadError`
[INFO] [stdout]  --> backend/src/api/order.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::error::QueryPayloadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/app.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut redis_connection = connect_redis(&redis_uri);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/db/mod.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/routes/orders.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut con = &mut app_state.redis_connection.lock().unwrap();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut orders = temp.rows::<ScyllaOrder>()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut trades = temp.rows::<ScyllaTrade>().unwrap();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/trade.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling backend v0.1.0 (/opt/rustwide/workdir/backend)
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:28:55
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 32 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:66:55
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 70 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 106 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:139:55
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 143 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/orders.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 64 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:101:55
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 105 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:141:59
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 145 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:179:59
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 183 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:220:59
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 224 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling loadtesting v0.1.0 (/opt/rustwide/workdir/loadtesting)
[INFO] [stdout] warning: unused import: `scylla::response::query_result`
[INFO] [stdout]  --> archiever/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use scylla::response::query_result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CancelAll`, `CancelOrder`, `OrderSide`, and `OrderType`
[INFO] [stdout]  --> loadtesting/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CancelAll, CancelOrder, Deposit, OpenOrder, OpenOrders, OrderParams, OrderSide, OrderType,
[INFO] [stdout]   |     ^^^^^^^^^  ^^^^^^^^^^^                                               ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> loadtesting/src/main.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]   --> loadtesting/src/main.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::{collections::HashMap, str::FromStr, time::Instant};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]  --> wss/src/enums/registered_symbols.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     SOL_USDT,
[INFO] [stdout]   |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BTC_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]   --> wss/src/enums/registered_symbols.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     ETH_USDT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ORDER_UPDATE` should have an upper camel case name
[INFO] [stdout]   --> wss/src/payload.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     ORDER_UPDATE,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrderUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_user_balances` is never used
[INFO] [stdout]   --> loadtesting/src/main.rs:91:10
[INFO] [stdout]    |
[INFO] [stdout] 91 | async fn get_user_balances(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deposit_funds` is never used
[INFO] [stdout]   --> loadtesting/src/main.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 | async fn deposit_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `withdraw_funds` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | async fn withdraw_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_order_history` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | async fn get_order_history(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_order` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 | async fn execute_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_open_order` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:199:10
[INFO] [stdout]     |
[INFO] [stdout] 199 | async fn get_open_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_open_orders` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:221:10
[INFO] [stdout]     |
[INFO] [stdout] 221 | async fn get_open_orders(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_trades` is never used
[INFO] [stdout]    --> loadtesting/src/main.rs:241:10
[INFO] [stdout]     |
[INFO] [stdout] 241 | async fn get_trades(user: &mut GooseUser) -> TransactionResult {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LoadBalancingPolicy`
[INFO] [stdout]  --> archiever/src/db.rs:3:165
[INFO] [stdout]   |
[INFO] [stdout] 3 | ..., frame::Compression, policies::load_balancing::{self, LoadBalancingPolicy}, statement::batch::Batch};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> archiever/src/state/user.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, error::Error, hash::Hash};
[INFO] [stdout]   |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeserializeRow` and `SerializeRow`
[INFO] [stdout]  --> archiever/src/state/user.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use scylla::{DeserializeRow, SerializeRow};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut order_1 = self.get_order(queue_trade.order_id, &queue_trade.exchange.symbol).await?;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> archiever/src/db.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut order_2 = self.get_order(
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     SOL_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     BTC_USDT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stdout]    --> engine/src/matching/mod.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     ETH_USDT
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> archiever/src/state/exchange.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `App`
[INFO] [stdout]  --> backend/src/routes/user.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     App, HttpResponse,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scylla::errors::BadQuery`
[INFO] [stdout]  --> backend/src/api/user.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use scylla::errors::BadQuery;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error::QueryPayloadError`
[INFO] [stdout]  --> backend/src/api/order.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::error::QueryPayloadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:426:13
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let mut orders = temp.rows::<ScyllaOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let mut temp_cancel = cancel_res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:428:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let mut canceled_orders = temp_cancel.rows::<ScyllaCancelOrder>().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let mut canceled_orders: Vec<OrderRequest> = canceled_orders
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut orderbooks = &mut self.orderbook;
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut query_rows = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut users = query_rows.rows::<ScyllaUser>().unwrap();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (tx, mut rx) = mpsc::unbounded_channel::<PersistOrderRequest>();
[INFO] [stdout]     |                  ----^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/lib.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let (event_tx, mut event_rx) = mpsc::unbounded_channel::<Vec<RedisEmit>>();
[INFO] [stdout]     |                        ----^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_scylla_trade` is never used
[INFO] [stdout]   --> archiever/src/state/scylla_state.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ScyllaTrade {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 67 |     fn from_scylla_trade(&self) -> Trade {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/app.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut redis_connection = connect_redis(&redis_uri);
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/db/mod.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/routes/orders.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut con = &mut app_state.redis_connection.lock().unwrap();
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut orders = temp.rows::<ScyllaOrder>()?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/order.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/orderbook.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut order_id = &mut self.order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> backend/src/api/trade.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut trades = temp.rows::<ScyllaTrade>().unwrap();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> backend/src/api/trade.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let result = match order.order_side {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut open_orders = self.get_open_orders(user_id);
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:298:21
[INFO] [stdout]     |
[INFO] [stdout] 298 |                 let mut limit = self.bids.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:315:21
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 let mut limit = self.asks.get_mut(price);
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         mut trade_id: &mut u64,
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut orderbook = self.orderbook.get_mut(&exchange).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> engine/src/matching/engine.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut order_id = &mut self.orderbook.get_mut(exchange).unwrap().order_id;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/matching/engine.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut orderbook = Orderbook::new(exchange.clone());
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> engine/src/handle_order_request.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let mut get_open_orders: Vec<RecievedOrder> = orderbook
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> engine/src/handle_order_request.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         start: Instant,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_engine_and_users` is never used
[INFO] [stdout]    --> engine/src/matching/engine.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn setup_engine_and_users() -> (MatchingEngine, Exchange, Orderbook, Vec<Id>) { // pass redis connection as arg
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> engine/src/lib.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     let _ = redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:691:25
[INFO] [stdout]     |
[INFO] [stdout] 691 | /                         event_tx.unwrap().send(
[INFO] [stdout] 692 | |                             vec![
[INFO] [stdout] 693 | |                                 RedisEmit {
[INFO] [stdout] 694 | |                                     cmd: "PUBLISH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 715 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 691 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:804:25
[INFO] [stdout]     |
[INFO] [stdout] 804 | /                         event_tx.unwrap().send(
[INFO] [stdout] 805 | |                             vec![
[INFO] [stdout] 806 | |                                 RedisEmit {
[INFO] [stdout] 807 | |                                     cmd: "LPUSH".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 828 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 804 |                         let _ = event_tx.unwrap().send(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:863:5
[INFO] [stdout]     |
[INFO] [stdout] 863 |     users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 863 |     let _ = users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 864 |     let _ = users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:868:5
[INFO] [stdout]     |
[INFO] [stdout] 868 |     users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 868 |     let _ = users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/orderbook.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 869 |     users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 869 |     let _ = users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/matching/engine.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let _ = engine.add_new_market(exchange.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 | /         tx.send(
[INFO] [stdout] 130 | |             PersistOrderRequest::Save(SaveOrder {
[INFO] [stdout] 131 | |                 locked_balance,
[INFO] [stdout] 132 | |                 asset,
[INFO] [stdout] 133 | |                 recieved_order: recieved_order.clone(),
[INFO] [stdout] 134 | |             })
[INFO] [stdout] 135 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let _ = tx.send(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:199:17
[INFO] [stdout]     |
[INFO] [stdout] 199 | /                 tx.send(
[INFO] [stdout] 200 | |                     PersistOrderRequest::Cancel(PersistCancel {
[INFO] [stdout] 201 | |                         id: cancel_order.id,
[INFO] [stdout] 202 | |                         order_side: cancel_order.order_side,
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                     })
[INFO] [stdout] 210 | |                 );
[INFO] [stdout]     | |_________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 let _ = tx.send(
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> engine/src/handle_order_request.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 | /             tx.send(
[INFO] [stdout] 260 | |                 PersistOrderRequest::CancelAll(PersistCancelAll {
[INFO] [stdout] 261 | |                     locked_balances,
[INFO] [stdout] 262 | |                     symbol: cancel_all.symbol,
[INFO] [stdout] ...   |
[INFO] [stdout] 273 | |                 })
[INFO] [stdout] 274 | |             );
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let _ = tx.send(
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:28:55
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 32 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/user.rs:66:55
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 70 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 106 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/user.rs:139:55
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 143 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]   --> backend/src/routes/orders.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut response_result: Option<String> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 64 |                     response_result = Some(response);
[INFO] [stdout]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:101:55
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 105 |                     response_result = Some(response);
[INFO] [stdout]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:152:25
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:141:59
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 145 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:179:59
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 183 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> backend/src/routes/orders.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `response_result` is never read
[INFO] [stdout]    --> backend/src/routes/orders.rs:220:59
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 let mut response_result: Option<String> = None;
[INFO] [stdout]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 224 |                         response_result = Some(response);
[INFO] [stdout]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.17s
[INFO] running `Command { std: "docker" "inspect" "67bdd4b5639cbde2d67bf6242a07323968088ea03aa60f357af3b98c566e6430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67bdd4b5639cbde2d67bf6242a07323968088ea03aa60f357af3b98c566e6430", kill_on_drop: false }`
[INFO] [stdout] 67bdd4b5639cbde2d67bf6242a07323968088ea03aa60f357af3b98c566e6430
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3465733574a0094bc7e596209a784b42c5705023aacbdb6bf0d86dbd86c2d7f5
[INFO] running `Command { std: "docker" "start" "-a" "3465733574a0094bc7e596209a784b42c5705023aacbdb6bf0d86dbd86c2d7f5", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `LoadBalancingPolicy`
[INFO] [stderr]  --> archiever/src/db.rs:3:165
[INFO] [stderr]   |
[INFO] [stderr] 3 | ..., frame::Compression, policies::load_balancing::{self, LoadBalancingPolicy}, statement::batch::Batch};
[INFO] [stderr]   |                                                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `hash::Hash`
[INFO] [stderr]  --> archiever/src/state/user.rs:1:47
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{collections::HashMap, error::Error, hash::Hash};
[INFO] [stderr]   |                                               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DeserializeRow` and `SerializeRow`
[INFO] [stderr]  --> archiever/src/state/user.rs:3:14
[INFO] [stderr]   |
[INFO] [stderr] 3 | use scylla::{DeserializeRow, SerializeRow};
[INFO] [stderr]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> archiever/src/db.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let mut order_1 = self.get_order(queue_trade.order_id, &queue_trade.exchange.symbol).await?;
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> archiever/src/db.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let mut order_2 = self.get_order(
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::str::FromStr`
[INFO] [stderr]  --> archiever/src/state/exchange.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::str::FromStr;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `from_scylla_trade` is never used
[INFO] [stderr]   --> archiever/src/state/scylla_state.rs:67:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl ScyllaTrade {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] 67 |     fn from_scylla_trade(&self) -> Trade {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `archiever` (lib) generated 7 warnings (run `cargo fix --lib -p archiever` to apply 5 suggestions)
[INFO] [stderr] warning: `archiever` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:111:5
[INFO] [stderr]     |
[INFO] [stderr] 111 |     SOL_USDT,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:112:5
[INFO] [stderr]     |
[INFO] [stderr] 112 |     BTC_USDT,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 113 |     ETH_USDT
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:368:13
[INFO] [stderr]     |
[INFO] [stderr] 368 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:378:13
[INFO] [stderr]     |
[INFO] [stderr] 378 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:425:13
[INFO] [stderr]     |
[INFO] [stderr] 425 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:426:13
[INFO] [stderr]     |
[INFO] [stderr] 426 |         let mut orders = temp.rows::<ScyllaOrder>().unwrap();
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:427:13
[INFO] [stderr]     |
[INFO] [stderr] 427 |         let mut temp_cancel = cancel_res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:428:13
[INFO] [stderr]     |
[INFO] [stderr] 428 |         let mut canceled_orders = temp_cancel.rows::<ScyllaCancelOrder>().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:435:13
[INFO] [stderr]     |
[INFO] [stderr] 435 |         let mut canceled_orders: Vec<OrderRequest> = canceled_orders
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/engine.rs:80:13
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let mut orderbooks = &mut self.orderbook;
[INFO] [stderr]    |             ----^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/engine.rs:84:13
[INFO] [stderr]    |
[INFO] [stderr] 84 |         let mut query_rows = res.into_rows_result().unwrap();
[INFO] [stderr]    |             ----^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/engine.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |         let mut users = query_rows.rows::<ScyllaUser>().unwrap();
[INFO] [stderr]    |             ----^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/lib.rs:149:18
[INFO] [stderr]     |
[INFO] [stderr] 149 |         let (tx, mut rx) = mpsc::unbounded_channel::<PersistOrderRequest>();
[INFO] [stderr]     |                  ----^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/lib.rs:151:24
[INFO] [stderr]     |
[INFO] [stderr] 151 |         let (event_tx, mut event_rx) = mpsc::unbounded_channel::<Vec<RedisEmit>>();
[INFO] [stderr]     |                        ----^^^^^^^^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/orderbook.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 |         let mut order_id = &mut self.order_id;
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:172:13
[INFO] [stderr]     |
[INFO] [stderr] 172 |         let result = match order.order_side {
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:247:13
[INFO] [stderr]     |
[INFO] [stderr] 247 |         let mut open_orders = self.get_open_orders(user_id);
[INFO] [stderr]     |             ----^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:298:21
[INFO] [stderr]     |
[INFO] [stderr] 298 |                 let mut limit = self.bids.get_mut(price);
[INFO] [stderr]     |                     ----^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:315:21
[INFO] [stderr]     |
[INFO] [stderr] 315 |                 let mut limit = self.asks.get_mut(price);
[INFO] [stderr]     |                     ----^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:583:9
[INFO] [stderr]     |
[INFO] [stderr] 583 |         mut trade_id: &mut u64,
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/engine.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let mut orderbook = self.orderbook.get_mut(&exchange).unwrap();
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> engine/src/matching/engine.rs:69:13
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let mut order_id = &mut self.orderbook.get_mut(exchange).unwrap().order_id;
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/matching/engine.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let mut orderbook = Orderbook::new(exchange.clone());
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]    --> engine/src/handle_order_request.rs:287:9
[INFO] [stderr]     |
[INFO] [stderr] 287 |         start: Instant,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> engine/src/handle_order_request.rs:338:13
[INFO] [stderr]     |
[INFO] [stderr] 338 |         let mut get_open_orders: Vec<RecievedOrder> = orderbook
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]    --> engine/src/handle_order_request.rs:333:9
[INFO] [stderr]     |
[INFO] [stderr] 333 |         start: Instant,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr] 
[INFO] [stderr] warning: function `setup_engine_and_users` is never used
[INFO] [stderr]    --> engine/src/matching/engine.rs:109:4
[INFO] [stderr]     |
[INFO] [stderr] 109 | fn setup_engine_and_users() -> (MatchingEngine, Exchange, Orderbook, Vec<Id>) { // pass redis connection as arg
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> engine/src/lib.rs:51:21
[INFO] [stderr]    |
[INFO] [stderr] 51 |                     redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 51 |                     let _ = redis::cmd(&event.cmd).arg(event.arg_1).arg(event.arg_2).query::<Value>(&mut con);
[INFO] [stderr]    |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:691:25
[INFO] [stderr]     |
[INFO] [stderr] 691 | /                         event_tx.unwrap().send(
[INFO] [stderr] 692 | |                             vec![
[INFO] [stderr] 693 | |                                 RedisEmit {
[INFO] [stderr] 694 | |                                     cmd: "PUBLISH".to_string(),
[INFO] [stderr] ...   |
[INFO] [stderr] 715 | |                         );
[INFO] [stderr]     | |_________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 691 |                         let _ = event_tx.unwrap().send(
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:804:25
[INFO] [stderr]     |
[INFO] [stderr] 804 | /                         event_tx.unwrap().send(
[INFO] [stderr] 805 | |                             vec![
[INFO] [stderr] 806 | |                                 RedisEmit {
[INFO] [stderr] 807 | |                                     cmd: "LPUSH".to_string(),
[INFO] [stderr] ...   |
[INFO] [stderr] 828 | |                         );
[INFO] [stderr]     | |_________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 804 |                         let _ = event_tx.unwrap().send(
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:863:5
[INFO] [stderr]     |
[INFO] [stderr] 863 |     users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 863 |     let _ = users.withdraw(&exchange.base, quantity, user_id);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:864:5
[INFO] [stderr]     |
[INFO] [stderr] 864 |     users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 864 |     let _ = users.deposit(&exchange.quote, quantity * exchange_price, user_id);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:868:5
[INFO] [stderr]     |
[INFO] [stderr] 868 |     users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 868 |     let _ = users.withdraw(&exchange.quote, quantity * exchange_price, client_user_id);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/orderbook.rs:869:5
[INFO] [stderr]     |
[INFO] [stderr] 869 |     users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 869 |     let _ = users.deposit(&exchange.base, quantity, client_user_id);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/matching/engine.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 113 |     engine.add_new_market(exchange.clone());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let _ = engine.add_new_market(exchange.clone());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/handle_order_request.rs:129:9
[INFO] [stderr]     |
[INFO] [stderr] 129 | /         tx.send(
[INFO] [stderr] 130 | |             PersistOrderRequest::Save(SaveOrder {
[INFO] [stderr] 131 | |                 locked_balance,
[INFO] [stderr] 132 | |                 asset,
[INFO] [stderr] 133 | |                 recieved_order: recieved_order.clone(),
[INFO] [stderr] 134 | |             })
[INFO] [stderr] 135 | |         );
[INFO] [stderr]     | |_________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 129 |         let _ = tx.send(
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/handle_order_request.rs:199:17
[INFO] [stderr]     |
[INFO] [stderr] 199 | /                 tx.send(
[INFO] [stderr] 200 | |                     PersistOrderRequest::Cancel(PersistCancel {
[INFO] [stderr] 201 | |                         id: cancel_order.id,
[INFO] [stderr] 202 | |                         order_side: cancel_order.order_side,
[INFO] [stderr] ...   |
[INFO] [stderr] 209 | |                     })
[INFO] [stderr] 210 | |                 );
[INFO] [stderr]     | |_________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 199 |                 let _ = tx.send(
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> engine/src/handle_order_request.rs:259:13
[INFO] [stderr]     |
[INFO] [stderr] 259 | /             tx.send(
[INFO] [stderr] 260 | |                 PersistOrderRequest::CancelAll(PersistCancelAll {
[INFO] [stderr] 261 | |                     locked_balances,
[INFO] [stderr] 262 | |                     symbol: cancel_all.symbol,
[INFO] [stderr] ...   |
[INFO] [stderr] 273 | |                 })
[INFO] [stderr] 274 | |             );
[INFO] [stderr]     | |_____________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 259 |             let _ = tx.send(
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stderr]  --> wss/src/enums/registered_symbols.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     SOL_USDT,
[INFO] [stderr]   |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stderr]   --> wss/src/enums/registered_symbols.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     BTC_USDT,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stderr]   --> wss/src/enums/registered_symbols.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     ETH_USDT,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ORDER_UPDATE` should have an upper camel case name
[INFO] [stderr]   --> wss/src/payload.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     ORDER_UPDATE,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrderUpdate`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `scylla::response::query_result`
[INFO] [stderr]  --> archiever/src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use scylla::response::query_result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `engine` (lib) generated 39 warnings (run `cargo fix --lib -p engine` to apply 24 suggestions)
[INFO] [stderr] warning: `wss` (lib) generated 4 warnings
[INFO] [stderr] warning: `archiever` (bin "archiever" test) generated 1 warning (run `cargo fix --bin "archiever" -p archiever --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `engine` (lib test) generated 39 warnings (39 duplicates)
[INFO] [stderr] warning: `wss` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: unused import: `App`
[INFO] [stderr]  --> backend/src/routes/user.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 |     App, HttpResponse,
[INFO] [stderr]   |     ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `scylla::errors::BadQuery`
[INFO] [stderr]  --> backend/src/api/user.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use scylla::errors::BadQuery;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `actix_web::error::QueryPayloadError`
[INFO] [stderr]  --> backend/src/api/order.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use actix_web::error::QueryPayloadError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> backend/src/app.rs:65:9
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let mut redis_connection = connect_redis(&redis_uri);
[INFO] [stderr]    |         ----^^^^^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> backend/src/db/mod.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> backend/src/routes/orders.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 36 |     let mut con = &mut app_state.redis_connection.lock().unwrap();
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> backend/src/api/order.rs:116:13
[INFO] [stderr]     |
[INFO] [stderr] 116 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> backend/src/api/order.rs:117:13
[INFO] [stderr]     |
[INFO] [stderr] 117 |         let mut orders = temp.rows::<ScyllaOrder>()?;
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> backend/src/api/order.rs:145:13
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> backend/src/api/trade.rs:96:13
[INFO] [stderr]    |
[INFO] [stderr] 96 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> backend/src/api/trade.rs:97:13
[INFO] [stderr]    |
[INFO] [stderr] 97 |         let mut trades = temp.rows::<ScyllaTrade>().unwrap();
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> backend/src/api/trade.rs:117:13
[INFO] [stderr]     |
[INFO] [stderr] 117 |         let mut temp = res.into_rows_result().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]   --> backend/src/routes/user.rs:28:55
[INFO] [stderr]    |
[INFO] [stderr] 28 |             let mut response_result: Option<String> = None;
[INFO] [stderr]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 32 |                     response_result = Some(response);
[INFO] [stderr]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]   --> backend/src/routes/user.rs:66:55
[INFO] [stderr]    |
[INFO] [stderr] 66 |             let mut response_result: Option<String> = None;
[INFO] [stderr]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 70 |                     response_result = Some(response);
[INFO] [stderr]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/user.rs:102:55
[INFO] [stderr]     |
[INFO] [stderr] 102 |             let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 106 |                     response_result = Some(response);
[INFO] [stderr]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/user.rs:139:55
[INFO] [stderr]     |
[INFO] [stderr] 139 |             let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 143 |                     response_result = Some(response);
[INFO] [stderr]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]   --> backend/src/routes/orders.rs:60:55
[INFO] [stderr]    |
[INFO] [stderr] 60 |             let mut response_result: Option<String> = None;
[INFO] [stderr]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 64 |                     response_result = Some(response);
[INFO] [stderr]    |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/orders.rs:101:55
[INFO] [stderr]     |
[INFO] [stderr] 101 |             let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 105 |                     response_result = Some(response);
[INFO] [stderr]     |                     --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> backend/src/routes/orders.rs:152:25
[INFO] [stderr]     |
[INFO] [stderr] 152 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/orders.rs:141:59
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 145 |                         response_result = Some(response);
[INFO] [stderr]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> backend/src/routes/orders.rs:190:25
[INFO] [stderr]     |
[INFO] [stderr] 190 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/orders.rs:179:59
[INFO] [stderr]     |
[INFO] [stderr] 179 |                 let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 183 |                         response_result = Some(response);
[INFO] [stderr]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]    --> backend/src/routes/orders.rs:231:25
[INFO] [stderr]     |
[INFO] [stderr] 231 |                     Err(err) => HttpResponse::BadRequest().json(response),
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `response_result` is never read
[INFO] [stderr]    --> backend/src/routes/orders.rs:220:59
[INFO] [stderr]     |
[INFO] [stderr] 220 |                 let mut response_result: Option<String> = None;
[INFO] [stderr]     |                                                           ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 224 |                         response_result = Some(response);
[INFO] [stderr]     |                         --------------- `response_result` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: `backend` (lib) generated 24 warnings (run `cargo fix --lib -p backend` to apply 15 suggestions)
[INFO] [stderr] warning: `backend` (lib test) generated 24 warnings (24 duplicates)
[INFO] [stderr] warning: unused imports: `CancelAll`, `CancelOrder`, `OrderSide`, and `OrderType`
[INFO] [stderr]  --> loadtesting/src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CancelAll, CancelOrder, Deposit, OpenOrder, OpenOrders, OrderParams, OrderSide, OrderType,
[INFO] [stderr]   |     ^^^^^^^^^  ^^^^^^^^^^^                                               ^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> loadtesting/src/main.rs:8:13
[INFO] [stderr]   |
[INFO] [stderr] 8 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::HashMap`
[INFO] [stderr]   --> loadtesting/src/main.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::{collections::HashMap, str::FromStr, time::Instant};
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_user_balances` is never used
[INFO] [stderr]   --> loadtesting/src/main.rs:91:10
[INFO] [stderr]    |
[INFO] [stderr] 91 | async fn get_user_balances(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `deposit_funds` is never used
[INFO] [stderr]   --> loadtesting/src/main.rs:98:10
[INFO] [stderr]    |
[INFO] [stderr] 98 | async fn deposit_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `withdraw_funds` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:114:10
[INFO] [stderr]     |
[INFO] [stderr] 114 | async fn withdraw_funds(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_order_history` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:130:10
[INFO] [stderr]     |
[INFO] [stderr] 130 | async fn get_order_history(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_order` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:139:10
[INFO] [stderr]     |
[INFO] [stderr] 139 | async fn execute_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_open_order` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:199:10
[INFO] [stderr]     |
[INFO] [stderr] 199 | async fn get_open_order(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_open_orders` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:221:10
[INFO] [stderr]     |
[INFO] [stderr] 221 | async fn get_open_orders(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_trades` is never used
[INFO] [stderr]    --> loadtesting/src/main.rs:241:10
[INFO] [stderr]     |
[INFO] [stderr] 241 | async fn get_trades(user: &mut GooseUser) -> TransactionResult {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `loadtesting` (bin "loadtesting" test) generated 11 warnings (run `cargo fix --bin "loadtesting" -p loadtesting --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.72s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/archiever-107fa6f69bd525cd)
[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]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/archiever-0c49e4f54a99a2d2)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/backend-5b993f80985e65c2)
[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] [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]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/backend-9b4743b8627b192b)
[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]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/engine-d1d246114dadb47a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/engine-ba8448e21687c4e2)
[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/lib.rs (/opt/rustwide/target/debug/deps/loadtesting-c0bf9c9b7369a08a)
[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] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/loadtesting-a36bb71288f32d59)
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wss-089d61d9a7e6a0e2)
[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/wss-d88f9115acb5cc3f)
[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] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]    Doc-tests archiever
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests backend
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 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 engine
[INFO] [stderr] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:111:5
[INFO] [stderr]     |
[INFO] [stderr] 111 |     SOL_USDT,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:112:5
[INFO] [stderr]     |
[INFO] [stderr] 112 |     BTC_USDT,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stderr]    --> engine/src/matching/mod.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 113 |     ETH_USDT
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: 3 warnings emitted
[INFO] [stderr] 
[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 loadtesting
[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 wss
[INFO] [stderr] warning: variant `SOL_USDT` should have an upper camel case name
[INFO] [stderr]  --> wss/src/enums/registered_symbols.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     SOL_USDT,
[INFO] [stderr]   |     ^^^^^^^^ help: convert the identifier to upper camel case: `SolUsdt`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BTC_USDT` should have an upper camel case name
[INFO] [stderr]   --> wss/src/enums/registered_symbols.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     BTC_USDT,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `BtcUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ETH_USDT` should have an upper camel case name
[INFO] [stderr]   --> wss/src/enums/registered_symbols.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     ETH_USDT,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `EthUsdt`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ORDER_UPDATE` should have an upper camel case name
[INFO] [stderr]   --> wss/src/payload.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     ORDER_UPDATE,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrderUpdate`
[INFO] [stderr] 
[INFO] [stderr] warning: 4 warnings emitted
[INFO] [stderr] 
[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" "3465733574a0094bc7e596209a784b42c5705023aacbdb6bf0d86dbd86c2d7f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3465733574a0094bc7e596209a784b42c5705023aacbdb6bf0d86dbd86c2d7f5", kill_on_drop: false }`
[INFO] [stdout] 3465733574a0094bc7e596209a784b42c5705023aacbdb6bf0d86dbd86c2d7f5
