[INFO] cloning repository https://github.com/notvikke/HF_Crypto_trade-simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/notvikke/HF_Crypto_trade-simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotvikke%2FHF_Crypto_trade-simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotvikke%2FHF_Crypto_trade-simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 07f17784edc45be2bbf60a70106f3a673a7865ba
[INFO] checking notvikke/HF_Crypto_trade-simulator against master#b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd for pr-155499
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnotvikke%2FHF_Crypto_trade-simulator" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/notvikke/HF_Crypto_trade-simulator
[INFO] finished tweaking git repo https://github.com/notvikke/HF_Crypto_trade-simulator
[INFO] tweaked toml for git repo https://github.com/notvikke/HF_Crypto_trade-simulator written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/notvikke/HF_Crypto_trade-simulator on toolchain b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/notvikke/HF_Crypto_trade-simulator 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" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded is-terminal v0.4.17
[INFO] [stderr]   Downloaded tokio-tungstenite v0.24.0
[INFO] [stderr]   Downloaded tungstenite v0.24.0
[INFO] [stderr]   Downloaded zmij v1.0.17
[INFO] [stderr]   Downloaded rust_decimal_macros v1.40.0
[INFO] [stderr]   Downloaded borsh-derive v1.6.0
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.8
[INFO] [stderr]   Downloaded toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]   Downloaded cc v1.2.54
[INFO] [stderr]   Downloaded borsh v1.6.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.35
[INFO] [stderr]   Downloaded rust_decimal v1.40.0
[INFO] [stderr]   Downloaded zerocopy v0.8.35
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0fbac77624ad7bcf376d84974df78e6a0019cee23d0b0d485ace18e875df7a14
[INFO] running `Command { std: "docker" "start" "-a" "0fbac77624ad7bcf376d84974df78e6a0019cee23d0b0d485ace18e875df7a14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0fbac77624ad7bcf376d84974df78e6a0019cee23d0b0d485ace18e875df7a14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0fbac77624ad7bcf376d84974df78e6a0019cee23d0b0d485ace18e875df7a14", kill_on_drop: false }`
[INFO] [stdout] 0fbac77624ad7bcf376d84974df78e6a0019cee23d0b0d485ace18e875df7a14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b2f1ccf524a3a4cf9c34545167cc23b659cf1cbd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1fa281b699f1b1a4c039d42044278d416fe89ee6f7d56a41309ab2d2e863e821
[INFO] running `Command { std: "docker" "start" "-a" "1fa281b699f1b1a4c039d42044278d416fe89ee6f7d56a41309ab2d2e863e821", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking ryu v1.0.22
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling cc v1.2.54
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking redis v0.24.0
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking execution_engine v0.1.0 (/opt/rustwide/workdir/execution_engine)
[INFO] [stdout] warning: unused import: `rust_decimal::prelude::*`
[INFO] [stdout]  --> execution_engine/src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_decimal::prelude::*;
[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: `rust_decimal::prelude::*`
[INFO] [stdout]  --> execution_engine/src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rust_decimal::prelude::*;
[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 variable: `secret_key`
[INFO] [stdout]   --> execution_engine/src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let secret_key = env::var("BINANCE_TESTNET_SECRET_KEY").unwrap_or_default();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secret_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> execution_engine/src/main.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let size = risk_engine.calculate_position_size(current_equity);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]    --> execution_engine/src/main.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 | async fn _place_order(api_key: &str, secret_key: &str, symbol: &str, side: &str, qty: Decimal) -> anyhow::Result<()> {
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> execution_engine/src/main.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let client = reqwest::Client::new();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]    --> execution_engine/src/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let url = format!("{}?{}&signature={}", endpoint, params, signature);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `secret_key`
[INFO] [stdout]   --> execution_engine/src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let secret_key = env::var("BINANCE_TESTNET_SECRET_KEY").unwrap_or_default();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_secret_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> execution_engine/src/main.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let size = risk_engine.calculate_position_size(current_equity);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]    --> execution_engine/src/main.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 | async fn _place_order(api_key: &str, secret_key: &str, symbol: &str, side: &str, qty: Decimal) -> anyhow::Result<()> {
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]    --> execution_engine/src/main.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let client = reqwest::Client::new();
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]    --> execution_engine/src/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let url = format!("{}?{}&signature={}", endpoint, params, signature);
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking market_data_aggregator v0.1.0 (/opt/rustwide/workdir/market_data_aggregator)
[INFO] [stderr]     Checking api_gateway v0.1.0 (/opt/rustwide/workdir/api_gateway)
[INFO] [stderr]     Checking strategy_engine v0.1.0 (/opt/rustwide/workdir/strategy_engine)
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> strategy_engine/src/main.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[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: `warn`
[INFO] [stdout]  --> strategy_engine/src/main.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{info, warn, error};
[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: `SinkExt`
[INFO] [stdout]  --> market_data_aggregator/src/main.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use futures_util::{StreamExt, SinkExt};
[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: `SinkExt`
[INFO] [stdout]  --> market_data_aggregator/src/main.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use futures_util::{StreamExt, SinkExt};
[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: `sink::SinkExt`
[INFO] [stdout]  --> api_gateway/src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures::{sink::SinkExt, stream::StreamExt};
[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: `sink::SinkExt`
[INFO] [stdout]  --> api_gateway/src/main.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures::{sink::SinkExt, stream::StreamExt};
[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]   --> api_gateway/src/main.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut con = client.get_async_connection().await.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]   --> api_gateway/src/main.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut con = client.get_async_connection().await.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]    --> strategy_engine/src/main.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |     let mut pubsub_con = client.get_async_connection().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: unused variable: `rsi_oversold`
[INFO] [stdout]    --> strategy_engine/src/main.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let rsi_oversold = dec!(30.0);      // Long entry RSI
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsi_oversold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rsi_overbought`
[INFO] [stdout]    --> strategy_engine/src/main.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let rsi_overbought = dec!(70.0);    // Short entry RSI
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsi_overbought`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `prev_rsi` is assigned to, but never used
[INFO] [stdout]    --> strategy_engine/src/main.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |     let mut prev_rsi: Option<Decimal> = None;  // For momentum confirmation
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_prev_rsi` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_rsi` is never read
[INFO] [stdout]    --> strategy_engine/src/main.rs:519:17
[INFO] [stdout]     |
[INFO] [stdout] 519 |                 prev_rsi = Some(rsi);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> strategy_engine/src/main.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |     let mut pubsub_con = client.get_async_connection().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: unused variable: `rsi_oversold`
[INFO] [stdout]    --> strategy_engine/src/main.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let rsi_oversold = dec!(30.0);      // Long entry RSI
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsi_oversold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rsi_overbought`
[INFO] [stdout]    --> strategy_engine/src/main.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let rsi_overbought = dec!(70.0);    // Short entry RSI
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rsi_overbought`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `prev_rsi` is assigned to, but never used
[INFO] [stdout]    --> strategy_engine/src/main.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |     let mut prev_rsi: Option<Decimal> = None;  // For momentum confirmation
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_prev_rsi` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_rsi` is never read
[INFO] [stdout]    --> strategy_engine/src/main.rs:519:17
[INFO] [stdout]     |
[INFO] [stdout] 519 |                 prev_rsi = Some(rsi);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open` is never read
[INFO] [stdout]   --> strategy_engine/src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Candle {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 15 |     open: Decimal,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Candle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open` is never read
[INFO] [stdout]   --> strategy_engine/src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Candle {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 15 |     open: Decimal,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Candle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.24.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "1fa281b699f1b1a4c039d42044278d416fe89ee6f7d56a41309ab2d2e863e821", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fa281b699f1b1a4c039d42044278d416fe89ee6f7d56a41309ab2d2e863e821", kill_on_drop: false }`
[INFO] [stdout] 1fa281b699f1b1a4c039d42044278d416fe89ee6f7d56a41309ab2d2e863e821
