[INFO] cloning repository https://github.com/TheDR-lul/Hedgehog
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TheDR-lul/Hedgehog" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheDR-lul%2FHedgehog", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheDR-lul%2FHedgehog'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 56cde80a8cfbaef0adb23242551950f67c99e997
[INFO] checking TheDR-lul/Hedgehog against master#61cc47e367d7be91e13bcd01e4e96e0e233d4f6d for pr-133502-17
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheDR-lul%2FHedgehog" "/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/TheDR-lul/Hedgehog
[INFO] finished tweaking git repo https://github.com/TheDR-lul/Hedgehog
[INFO] tweaked toml for git repo https://github.com/TheDR-lul/Hedgehog written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TheDR-lul/Hedgehog on toolchain 61cc47e367d7be91e13bcd01e4e96e0e233d4f6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TheDR-lul/Hedgehog 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" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded toml_write v0.1.1
[INFO] [stderr]   Downloaded vswhom-sys v0.1.3
[INFO] [stderr]   Downloaded rust_decimal_macros v1.37.1
[INFO] [stderr]   Downloaded teloxide-macros v0.9.0
[INFO] [stderr]   Downloaded embed-resource v3.0.2
[INFO] [stderr]   Downloaded h2 v0.4.9
[INFO] [stderr]   Downloaded rust_decimal v1.37.1
[INFO] [stderr]   Downloaded winnow v0.7.8
[INFO] [stderr]   Downloaded webpki-roots v0.26.10
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4b10f21ff7b8c7a70c6f3c88d01d6c25217b99292cd2ab3fa19baffdb6991725
[INFO] running `Command { std: "docker" "start" "-a" "4b10f21ff7b8c7a70c6f3c88d01d6c25217b99292cd2ab3fa19baffdb6991725", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4b10f21ff7b8c7a70c6f3c88d01d6c25217b99292cd2ab3fa19baffdb6991725", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b10f21ff7b8c7a70c6f3c88d01d6c25217b99292cd2ab3fa19baffdb6991725", kill_on_drop: false }`
[INFO] [stdout] 4b10f21ff7b8c7a70c6f3c88d01d6c25217b99292cd2ab3fa19baffdb6991725
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+61cc47e367d7be91e13bcd01e4e96e0e233d4f6d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 77a672ddab01c4fef4e0a1cb8a2e7c5f692d353f877f6ab646c381e8dc9fe418
[INFO] running `Command { std: "docker" "start" "-a" "77a672ddab01c4fef4e0a1cb8a2e7c5f692d353f877f6ab646c381e8dc9fe418", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling cc v1.2.21
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling rustls v0.23.26
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling crunchy v0.2.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling rustls-pki-types v1.11.0
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling socket2 v0.5.9
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]     Checking h2 v0.4.9
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling rustls-webpki v0.103.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling crc v3.2.1
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling pest v2.8.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling webpki-roots v0.26.10
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling psm v0.1.26
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling winnow v0.7.8
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling toml_write v0.1.1
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling pest_meta v2.8.0
[INFO] [stderr]     Checking hyper-util v0.1.11
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling sqlx-core v0.8.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling stacker v0.1.21
[INFO] [stderr]    Compiling tempfile v3.19.1
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]    Compiling pest_generator v2.8.0
[INFO] [stderr]    Compiling serde_with_macros v3.12.0
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.5
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]     Checking bytemuck v1.23.0
[INFO] [stderr]    Compiling toml v0.8.22
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]    Compiling embed-resource v3.0.2
[INFO] [stderr]     Checking rgb v0.8.50
[INFO] [stderr]     Checking reqwest v0.12.15
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]     Checking serde_with v3.12.0
[INFO] [stderr]    Compiling pest_derive v2.8.0
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.5
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking uuid v1.16.0
[INFO] [stderr]     Checking takecell v0.1.1
[INFO] [stderr]    Compiling rust_decimal v1.37.1
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking trim-in-place v0.1.7
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking rust-ini v0.21.1
[INFO] [stderr]     Checking yaml-rust2 v0.10.1
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking teloxide-core v0.11.2
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]    Compiling sqlx-macros v0.8.5
[INFO] [stderr]    Compiling hedgehog v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking dptree v0.3.0
[INFO] [stderr]    Compiling aquamarine v0.6.0
[INFO] [stderr]    Compiling teloxide-macros v0.9.0
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking config v0.15.11
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]    Compiling rust_decimal_macros v1.37.1
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking winres v0.1.12
[INFO] [stderr]     Checking sqlx v0.8.5
[INFO] [stderr]     Checking teloxide v0.15.0
[INFO] [stdout] warning: unused import: `Row`
[INFO] [stdout]  --> src/storage/schema.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Error, FromRow, Row};
[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: `Context`
[INFO] [stdout]  --> src/webservice_hedge/hedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context}; // Добавили Context
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/init.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rust_decimal::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Row`
[INFO] [stdout]  --> src/storage/schema.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Error, FromRow, Row};
[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: `Context`
[INFO] [stdout]  --> src/webservice_hedge/hedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context}; // Добавили Context
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/init.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rust_decimal::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `qty_filled_in_current_order` is never read
[INFO] [stdout]    --> src/hedger/common.rs:377:21
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     qty_filled_in_current_order = 0.0;
[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: value assigned to `current_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut current_order_id: Option<String> = None;
[INFO] [stdout]    |                                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_order_id` is never read
[INFO] [stdout]    --> src/hedger/common.rs:376:21
[INFO] [stdout]     |
[INFO] [stdout] 376 |                     current_order_id = None;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_placed_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut last_placed_order_id: Option<String> = None; // Храним ID последнего *успешно размещенного* ордера
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_futures_filled_quantity`
[INFO] [stdout]    --> src/hedger/hedge.rs:388:17
[INFO] [stdout]     |
[INFO] [stdout] 388 |             let last_futures_filled_quantity = *futures_filled_storage.lock().await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_futures_filled_quantity`
[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 `qty_filled_in_current_order` is never read
[INFO] [stdout]    --> src/hedger/common.rs:377:21
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     qty_filled_in_current_order = 0.0;
[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: value assigned to `current_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut current_order_id: Option<String> = None;
[INFO] [stdout]    |                                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_order_id` is never read
[INFO] [stdout]    --> src/hedger/common.rs:376:21
[INFO] [stdout]     |
[INFO] [stdout] 376 |                     current_order_id = None;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_placed_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut last_placed_order_id: Option<String> = None; // Храним ID последнего *успешно размещенного* ордера
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qc`
[INFO] [stdout]    --> src/notifier/unhedge_flow.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let qc = cfg_for_callback.quote_currency.clone(); // Используем клон cfg
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_qc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_futures_filled_quantity`
[INFO] [stdout]    --> src/hedger/hedge.rs:388:17
[INFO] [stdout]     |
[INFO] [stdout] 388 |             let last_futures_filled_quantity = *futures_filled_storage.lock().await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_futures_filled_quantity`
[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 `operation_info_opt` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 let mut operation_info_opt: Option<RunningOperationInfo> = None;
[INFO] [stdout]     |                                                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filled_spot_qty_in_operation` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:158:61
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 let mut filled_spot_qty_in_operation: f64 = 0.0;
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qc`
[INFO] [stdout]    --> src/notifier/unhedge_flow.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let qc = cfg_for_callback.quote_currency.clone(); // Используем клон cfg
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_qc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/ws_handlers.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `operation_info_opt` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 let mut operation_info_opt: Option<RunningOperationInfo> = None;
[INFO] [stdout]     |                                                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filled_spot_qty_in_operation` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:158:61
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 let mut filled_spot_qty_in_operation: f64 = 0.0;
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_spot_qty`
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/reconciliation.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let final_spot_qty = task.state.cumulative_spot_filled_quantity;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_spot_qty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation_type`
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let operation_type = OperationType::Unhedge;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/ws_handlers.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_spot_qty`
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/reconciliation.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let final_spot_qty = task.state.cumulative_spot_filled_quantity;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_spot_qty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/exchange/bybit.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct RiskLimitResult {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 87 |     category: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct RiskLimitEntry {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 93 |     id: u64,
[INFO] [stdout] 94 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `link_id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct OrderCreateResult {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     link_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderCreateResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct OrderQueryEntry {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 136 |     #[serde(rename = "orderId")]
[INFO] [stdout] 137 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderQueryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct FuturesTickersApiResult {
[INFO] [stdout]     |        ----------------------- field in this struct
[INFO] [stdout] 186 |     category: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuturesTickersApiResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts` is never read
[INFO] [stdout]   --> src/exchange/bybit_ws/types_internal.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct BybitWsResponse { // Делаем pub(super), чтобы были видны в protocol.rs
[INFO] [stdout]    |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(super) ts: Option<i64>,
[INFO] [stdout]    |                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BybitWsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_wait` is never read
[INFO] [stdout]   --> src/hedger/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Hedger<E> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     max_wait: Duration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hedger` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]    --> src/hedger/common.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 680 | trait SideSign {
[INFO] [stdout]     |       -------- method in this trait
[INFO] [stdout] 681 |     fn sign(&self) -> f64;
[INFO] [stdout] 682 |     fn opposite(&self) -> Self; // Added opposite helper
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_callback` and `original_spot_target` are never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct HedgerWsUnhedgeTask {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) progress_callback: HedgeProgressCallback,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub(crate) original_spot_target: Decimal,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation_type`
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let operation_type = OperationType::Unhedge;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/exchange/bybit.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct RiskLimitResult {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 87 |     category: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct RiskLimitEntry {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 93 |     id: u64,
[INFO] [stdout] 94 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `link_id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct OrderCreateResult {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     link_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderCreateResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct OrderQueryEntry {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 136 |     #[serde(rename = "orderId")]
[INFO] [stdout] 137 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderQueryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct FuturesTickersApiResult {
[INFO] [stdout]     |        ----------------------- field in this struct
[INFO] [stdout] 186 |     category: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuturesTickersApiResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts` is never read
[INFO] [stdout]   --> src/exchange/bybit_ws/types_internal.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct BybitWsResponse { // Делаем pub(super), чтобы были видны в protocol.rs
[INFO] [stdout]    |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(super) ts: Option<i64>,
[INFO] [stdout]    |                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BybitWsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_wait` is never read
[INFO] [stdout]   --> src/hedger/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Hedger<E> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     max_wait: Duration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hedger` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]    --> src/hedger/common.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 680 | trait SideSign {
[INFO] [stdout]     |       -------- method in this trait
[INFO] [stdout] 681 |     fn sign(&self) -> f64;
[INFO] [stdout] 682 |     fn opposite(&self) -> Self; // Added opposite helper
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `progress_callback` and `original_spot_target` are never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct HedgerWsUnhedgeTask {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) progress_callback: HedgeProgressCallback,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub(crate) original_spot_target: Decimal,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkOrderState`, `HedgerWsState`, `HedgerWsStatus`, `Leg`, `MarketUpdate`, and `OperationType`
[INFO] [stdout]   --> src/webservice_hedge/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use state::{HedgerWsState, HedgerWsStatus, OperationType, MarketUpdate, Leg, ChunkOrderState};
[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: `ChunkOrderState`, `HedgerWsState`, `HedgerWsStatus`, `Leg`, `MarketUpdate`, and `OperationType`
[INFO] [stdout]   --> src/webservice_hedge/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use state::{HedgerWsState, HedgerWsStatus, OperationType, MarketUpdate, Leg, ChunkOrderState};
[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: `Row`
[INFO] [stdout]  --> src/storage/schema.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Error, FromRow, Row};
[INFO] [stdout]   |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/hedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context}; // Добавили Context
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/init.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rust_decimal::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Row`
[INFO] [stdout]  --> src/storage/schema.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Error, FromRow, Row};
[INFO] [stdout]   |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/hedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context}; // Добавили Context
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result, Context};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude`
[INFO] [stdout]  --> src/webservice_hedge/unhedge_logic/init.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rust_decimal::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `qty_filled_in_current_order` is never read
[INFO] [stdout]    --> src/hedger/common.rs:377:21
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     qty_filled_in_current_order = 0.0;
[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: value assigned to `current_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut current_order_id: Option<String> = None;
[INFO] [stdout]    |                                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_order_id` is never read
[INFO] [stdout]    --> src/hedger/common.rs:376:21
[INFO] [stdout]     |
[INFO] [stdout] 376 |                     current_order_id = None;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_placed_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut last_placed_order_id: Option<String> = None; // Храним ID последнего *успешно размещенного* ордера
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_futures_filled_quantity`
[INFO] [stdout]    --> src/hedger/hedge.rs:388:17
[INFO] [stdout]     |
[INFO] [stdout] 388 |             let last_futures_filled_quantity = *futures_filled_storage.lock().await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_futures_filled_quantity`
[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 `qty_filled_in_current_order` is never read
[INFO] [stdout]    --> src/hedger/common.rs:377:21
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     qty_filled_in_current_order = 0.0;
[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: value assigned to `current_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:59:48
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut current_order_id: Option<String> = None;
[INFO] [stdout]    |                                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_order_id` is never read
[INFO] [stdout]    --> src/hedger/common.rs:376:21
[INFO] [stdout]     |
[INFO] [stdout] 376 |                     current_order_id = None;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_placed_order_id` is never read
[INFO] [stdout]   --> src/hedger/common.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut last_placed_order_id: Option<String> = None; // Храним ID последнего *успешно размещенного* ордера
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qc`
[INFO] [stdout]    --> src/notifier/unhedge_flow.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let qc = cfg_for_callback.quote_currency.clone(); // Используем клон cfg
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_qc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_futures_filled_quantity`
[INFO] [stdout]    --> src/hedger/hedge.rs:388:17
[INFO] [stdout]     |
[INFO] [stdout] 388 |             let last_futures_filled_quantity = *futures_filled_storage.lock().await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_futures_filled_quantity`
[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 `operation_info_opt` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 let mut operation_info_opt: Option<RunningOperationInfo> = None;
[INFO] [stdout]     |                                                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filled_spot_qty_in_operation` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:158:61
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 let mut filled_spot_qty_in_operation: f64 = 0.0;
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/ws_handlers.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_spot_qty`
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/reconciliation.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let final_spot_qty = task.state.cumulative_spot_filled_quantity;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_spot_qty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qc`
[INFO] [stdout]    --> src/notifier/unhedge_flow.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let qc = cfg_for_callback.quote_currency.clone(); // Используем клон cfg
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_qc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `operation_info_opt` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 let mut operation_info_opt: Option<RunningOperationInfo> = None;
[INFO] [stdout]     |                                                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filled_spot_qty_in_operation` is never read
[INFO] [stdout]    --> src/notifier/active_ops.rs:158:61
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 let mut filled_spot_qty_in_operation: f64 = 0.0;
[INFO] [stdout]     |                                                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation_type`
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let operation_type = OperationType::Unhedge;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset_points` is never read
[INFO] [stdout]   --> src/config.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub offset_points:      u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` 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: methods `cancel_order`, `get_order_status`, `get_market_price`, and `get_spot_price_fallback` are never used
[INFO] [stdout]   --> src/exchange/mod.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Exchange: Send + Sync {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 23 |     async fn cancel_order(&self, symbol: &str, order_id: &str) -> Result<()>; // Deprecated
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 24 |     async fn get_spot_price(&self, symbol: &str) -> Result<f64>;
[INFO] [stdout] 25 |     async fn get_order_status(&self, symbol: &str, order_id: &str) -> Result<OrderStatus>; // Deprecated
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     async fn get_market_price(&self, symbol: &str, is_spot: bool) -> Result<f64>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     async fn get_spot_price_fallback(&self, futures_symbol: &str) -> Result<f64>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_exchange` is never used
[INFO] [stdout]   --> src/exchange/mod.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn create_exchange(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/exchange/bybit.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct RiskLimitResult {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 87 |     category: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct RiskLimitEntry {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 93 |     id: u64,
[INFO] [stdout] 94 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `link_id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct OrderCreateResult {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     link_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderCreateResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct OrderQueryEntry {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 136 |     #[serde(rename = "orderId")]
[INFO] [stdout] 137 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderQueryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct FuturesTickersApiResult {
[INFO] [stdout]     |        ----------------------- field in this struct
[INFO] [stdout] 186 |     category: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuturesTickersApiResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `side`, `qty`, `price`, and `ts` are never read
[INFO] [stdout]   --> src/exchange/types.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Order {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 45 |     pub id: String,
[INFO] [stdout] 46 |     pub side: OrderSide,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 47 |     pub qty: f64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 48 |     pub price: Option<f64>, // None для рыночных
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 49 |     pub ts: i64, // Timestamp создания
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Order` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_order_qty`, `max_mkt_order_qty`, and `post_only_max_order_qty` are never read
[INFO] [stdout]    --> src/exchange/types.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct LotSizeFilter {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub max_order_qty: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub max_mkt_order_qty: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub post_only_max_order_qty: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LotSizeFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PublicTrade` is never constructed
[INFO] [stdout]    --> src/exchange/types.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum SubscriptionType {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 167 |     PublicTrade { symbol: String }, // Публичные сделки
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubscriptionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts` is never read
[INFO] [stdout]   --> src/exchange/bybit_ws/types_internal.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct BybitWsResponse { // Делаем pub(super), чтобы были видны в protocol.rs
[INFO] [stdout]    |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(super) ts: Option<i64>,
[INFO] [stdout]    |                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BybitWsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_wait` is never read
[INFO] [stdout]   --> src/hedger/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Hedger<E> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     max_wait: Duration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hedger` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]    --> src/hedger/common.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 680 | trait SideSign {
[INFO] [stdout]     |       -------- method in this trait
[INFO] [stdout] 681 |     fn sign(&self) -> f64;
[INFO] [stdout] 682 |     fn opposite(&self) -> Self; // Added opposite helper
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/notifier/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     AwaitingUnhedgeOperationSelection {
[INFO] [stdout]    |     --------------------------------- field in this variant
[INFO] [stdout] 51 |         symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ViewingAllPairs` is never constructed
[INFO] [stdout]   --> src/notifier/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum UserState {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 59 |     ViewingAllPairs {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation_id` is never read
[INFO] [stdout]   --> src/notifier/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct RunningOperationInfo {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 75 |     pub handle: AbortHandle,
[INFO] [stdout] 76 |     pub operation_id: i64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RunningOperationInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unhedge` is never constructed
[INFO] [stdout]   --> src/notifier/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub enum OperationType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 85 |     Hedge,
[INFO] [stdout] 86 |     Unhedge,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OperationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_wallet_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn handle_menu_wallet_callback<E>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_info_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub async fn handle_menu_info_callback<E>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_active_ops_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:163:14
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub async fn handle_menu_active_ops_callback(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MENU_MANAGE` is never used
[INFO] [stdout]    --> src/notifier/mod.rs:272:15
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub const MENU_MANAGE: &str = "menu_manage"; // Если будет подменю
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnhedgeRequest` is never constructed
[INFO] [stdout]   --> src/models.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct UnhedgeRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionReport` is never constructed
[INFO] [stdout]   --> src/models.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ExecutionReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_step` is never used
[INFO] [stdout]  --> src/utils.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn round_step(value: f64, step: f64) -> f64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trading_symbol` is never used
[INFO] [stdout]  --> src/utils.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn trading_symbol(base: &str, quote: &str) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_running_hedge_operations` is never used
[INFO] [stdout]    --> src/storage/db.rs:141:14
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub async fn get_running_hedge_operations(db: &Db) -> Result<Vec<HedgeOperation>, SqlxError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/storage/schema.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct HedgeOperation {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 84 |     pub id: i64, // Используем i64 для AUTOINCREMENT
[INFO] [stdout] 85 |     pub chat_id: i64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 86 |     pub base_symbol: String,
[INFO] [stdout] 87 |     pub quote_currency: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     pub initial_sum: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 89 |     pub volatility: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 90 |     pub target_spot_qty: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub futures_order_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 97 |     pub futures_filled_qty: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98 |     pub end_timestamp: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 99 |     pub error_message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgeOperation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `progress_callback` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_task.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct HedgerWsHedgeTask {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub progress_callback: HedgeProgressCallback,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `symbol`, `side`, and `target_quantity` are never read
[INFO] [stdout]   --> src/webservice_hedge/state.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ChunkOrderState {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout]  8 |     pub order_id: String,
[INFO] [stdout]  9 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub side: OrderSide,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     pub limit_price: Decimal, // <-- ДОБАВЛЕНО: Цена, по которой ордер был выставлен
[INFO] [stdout] 12 |     pub target_quantity: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChunkOrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectingWebSocket`, `Cancelling`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/webservice_hedge/state.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum HedgerWsStatus {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     ConnectingWebSocket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     Cancelling, // Отмена пользователем всей операции
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 91 |     Cancelled,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgerWsStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation_id` is never read
[INFO] [stdout]    --> src/webservice_hedge/state.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct HedgerWsState {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 109 |     pub operation_id: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HedgerWsState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unhedge` is never constructed
[INFO] [stdout]    --> src/webservice_hedge/state.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum OperationType {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 149 |     Hedge,
[INFO] [stdout] 150 |     Unhedge,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OperationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_unhedge` is never used
[INFO] [stdout]    --> src/webservice_hedge/state.rs:196:14
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl HedgerWsState {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |       pub fn new_unhedge(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HedgerWsUnhedgeTask` is never constructed
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct HedgerWsUnhedgeTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl HedgerWsUnhedgeTask {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 35 |     pub async fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn run(&mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_next_chunk` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) async fn start_next_chunk(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_limit_price_for_leg` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn calculate_limit_price_for_leg(task: &HedgerWsUnhedgeTask, leg: Leg) -> Result<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down_step` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn round_down_step(task: &HedgerWsUnhedgeTask, value: Decimal, step: Decimal) -> Result<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_price` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn get_current_price(task: &HedgerWsUnhedgeTask, leg: Leg) -> Option<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_chunk_completion` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn check_chunk_completion(task: &HedgerWsUnhedgeTask) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_progress_update` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub async fn send_progress_update(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_final_db_status` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub async fn update_final_db_status(task: &HedgerWsUnhedgeTask) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_decimals_from_step` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn get_decimals_from_step(step: Option<&str>) -> Result<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_step_decimal` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn get_step_decimal(step: Option<&str>) -> Result<Decimal> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_value_imbalance` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn check_value_imbalance(task: &HedgerWsUnhedgeTask) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_task` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/init.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) async fn initialize_task(
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reconcile` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/reconciliation.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn reconcile(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_websocket_message` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn handle_websocket_message(task: &mut HedgerWsUnhedgeTask, message: WebSocketMessage) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_order_update` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | async fn handle_order_update(task: &mut HedgerWsUnhedgeTask, details: DetailedOrderStatus) -> Result<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_order_book_update` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | async fn handle_order_book_update(task: &mut HedgerWsUnhedgeTask, symbol: String, bids: Vec<OrderbookLevel>, asks: Vec<OrderbookLev...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_public_trade_update` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:173:10
[INFO] [stdout]     |
[INFO] [stdout] 173 | async fn handle_public_trade_update(task: &mut HedgerWsUnhedgeTask, symbol: String, price: f64, qty: f64, side: OrderSide, timestam...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/ws_handlers.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `final_spot_qty`
[INFO] [stdout]   --> src/webservice_hedge/hedge_logic/reconciliation.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let final_spot_qty = task.state.cumulative_spot_filled_quantity;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_spot_qty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation_type`
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let operation_type = OperationType::Unhedge;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `leg_found` is never read
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut leg_found = None;
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset_points` is never read
[INFO] [stdout]   --> src/config.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub offset_points:      u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` 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: methods `cancel_order`, `get_order_status`, `get_market_price`, and `get_spot_price_fallback` are never used
[INFO] [stdout]   --> src/exchange/mod.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Exchange: Send + Sync {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 23 |     async fn cancel_order(&self, symbol: &str, order_id: &str) -> Result<()>; // Deprecated
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 24 |     async fn get_spot_price(&self, symbol: &str) -> Result<f64>;
[INFO] [stdout] 25 |     async fn get_order_status(&self, symbol: &str, order_id: &str) -> Result<OrderStatus>; // Deprecated
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     async fn get_market_price(&self, symbol: &str, is_spot: bool) -> Result<f64>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     async fn get_spot_price_fallback(&self, futures_symbol: &str) -> Result<f64>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_exchange` is never used
[INFO] [stdout]   --> src/exchange/mod.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn create_exchange(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApiResponse` is never constructed
[INFO] [stdout]   --> src/exchange/bybit.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct ApiResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct RiskLimitResult {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 87 |     category: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/exchange/bybit.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct RiskLimitEntry {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] 93 |     id: u64,
[INFO] [stdout] 94 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RiskLimitEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `link_id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct OrderCreateResult {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     link_id: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderCreateResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct OrderQueryEntry {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 136 |     #[serde(rename = "orderId")]
[INFO] [stdout] 137 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderQueryEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `category` is never read
[INFO] [stdout]    --> src/exchange/bybit.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | struct FuturesTickersApiResult {
[INFO] [stdout]     |        ----------------------- field in this struct
[INFO] [stdout] 186 |     category: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuturesTickersApiResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `side`, `qty`, `price`, and `ts` are never read
[INFO] [stdout]   --> src/exchange/types.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Order {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 45 |     pub id: String,
[INFO] [stdout] 46 |     pub side: OrderSide,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 47 |     pub qty: f64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 48 |     pub price: Option<f64>, // None для рыночных
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 49 |     pub ts: i64, // Timestamp создания
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Order` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_order_qty`, `max_mkt_order_qty`, and `post_only_max_order_qty` are never read
[INFO] [stdout]    --> src/exchange/types.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct LotSizeFilter {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub max_order_qty: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub max_mkt_order_qty: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub post_only_max_order_qty: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LotSizeFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PublicTrade` is never constructed
[INFO] [stdout]    --> src/exchange/types.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum SubscriptionType {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 167 |     PublicTrade { symbol: String }, // Публичные сделки
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubscriptionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ts` is never read
[INFO] [stdout]   --> src/exchange/bybit_ws/types_internal.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(super) struct BybitWsResponse { // Делаем pub(super), чтобы были видны в protocol.rs
[INFO] [stdout]    |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(super) ts: Option<i64>,
[INFO] [stdout]    |                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BybitWsResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_wait` is never read
[INFO] [stdout]   --> src/hedger/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Hedger<E> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     max_wait: Duration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hedger` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]    --> src/hedger/common.rs:682:8
[INFO] [stdout]     |
[INFO] [stdout] 680 | trait SideSign {
[INFO] [stdout]     |       -------- method in this trait
[INFO] [stdout] 681 |     fn sign(&self) -> f64;
[INFO] [stdout] 682 |     fn opposite(&self) -> Self; // Added opposite helper
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> src/notifier/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     AwaitingUnhedgeOperationSelection {
[INFO] [stdout]    |     --------------------------------- field in this variant
[INFO] [stdout] 51 |         symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ViewingAllPairs` is never constructed
[INFO] [stdout]   --> src/notifier/mod.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum UserState {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 59 |     ViewingAllPairs {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation_id` is never read
[INFO] [stdout]   --> src/notifier/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct RunningOperationInfo {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 75 |     pub handle: AbortHandle,
[INFO] [stdout] 76 |     pub operation_id: i64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RunningOperationInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unhedge` is never constructed
[INFO] [stdout]   --> src/notifier/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub enum OperationType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 85 |     Hedge,
[INFO] [stdout] 86 |     Unhedge,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OperationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_wallet_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn handle_menu_wallet_callback<E>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_info_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub async fn handle_menu_info_callback<E>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_menu_active_ops_callback` is never used
[INFO] [stdout]    --> src/notifier/navigation.rs:163:14
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub async fn handle_menu_active_ops_callback(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MENU_MANAGE` is never used
[INFO] [stdout]    --> src/notifier/mod.rs:272:15
[INFO] [stdout]     |
[INFO] [stdout] 272 |     pub const MENU_MANAGE: &str = "menu_manage"; // Если будет подменю
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnhedgeRequest` is never constructed
[INFO] [stdout]   --> src/models.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct UnhedgeRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionReport` is never constructed
[INFO] [stdout]   --> src/models.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ExecutionReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_step` is never used
[INFO] [stdout]  --> src/utils.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn round_step(value: f64, step: f64) -> f64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trading_symbol` is never used
[INFO] [stdout]  --> src/utils.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn trading_symbol(base: &str, quote: &str) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_running_hedge_operations` is never used
[INFO] [stdout]    --> src/storage/db.rs:141:14
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub async fn get_running_hedge_operations(db: &Db) -> Result<Vec<HedgeOperation>, SqlxError> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/storage/schema.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct HedgeOperation {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 84 |     pub id: i64, // Используем i64 для AUTOINCREMENT
[INFO] [stdout] 85 |     pub chat_id: i64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 86 |     pub base_symbol: String,
[INFO] [stdout] 87 |     pub quote_currency: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     pub initial_sum: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 89 |     pub volatility: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 90 |     pub target_spot_qty: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub futures_order_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 97 |     pub futures_filled_qty: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98 |     pub end_timestamp: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 99 |     pub error_message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgeOperation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `progress_callback` is never read
[INFO] [stdout]   --> src/webservice_hedge/hedge_task.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct HedgerWsHedgeTask {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub progress_callback: HedgeProgressCallback,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `symbol`, `side`, and `target_quantity` are never read
[INFO] [stdout]   --> src/webservice_hedge/state.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ChunkOrderState {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout]  8 |     pub order_id: String,
[INFO] [stdout]  9 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub side: OrderSide,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     pub limit_price: Decimal, // <-- ДОБАВЛЕНО: Цена, по которой ордер был выставлен
[INFO] [stdout] 12 |     pub target_quantity: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChunkOrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectingWebSocket`, `Cancelling`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/webservice_hedge/state.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum HedgerWsStatus {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     ConnectingWebSocket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     Cancelling, // Отмена пользователем всей операции
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 91 |     Cancelled,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgerWsStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `operation_id` is never read
[INFO] [stdout]    --> src/webservice_hedge/state.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct HedgerWsState {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 109 |     pub operation_id: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HedgerWsState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unhedge` is never constructed
[INFO] [stdout]    --> src/webservice_hedge/state.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum OperationType {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 149 |     Hedge,
[INFO] [stdout] 150 |     Unhedge,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OperationType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_unhedge` is never used
[INFO] [stdout]    --> src/webservice_hedge/state.rs:196:14
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl HedgerWsState {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |       pub fn new_unhedge(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HedgerWsUnhedgeTask` is never constructed
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct HedgerWsUnhedgeTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_task.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl HedgerWsUnhedgeTask {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 35 |     pub async fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn run(&mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_next_chunk` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/chunk_execution.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) async fn start_next_chunk(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_limit_price_for_leg` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn calculate_limit_price_for_leg(task: &HedgerWsUnhedgeTask, leg: Leg) -> Result<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_down_step` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn round_down_step(task: &HedgerWsUnhedgeTask, value: Decimal, step: Decimal) -> Result<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_current_price` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn get_current_price(task: &HedgerWsUnhedgeTask, leg: Leg) -> Option<Decimal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_chunk_completion` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn check_chunk_completion(task: &HedgerWsUnhedgeTask) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_progress_update` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub async fn send_progress_update(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_final_db_status` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/helpers.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub async fn update_final_db_status(task: &HedgerWsUnhedgeTask) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_decimals_from_step` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn get_decimals_from_step(step: Option<&str>) -> Result<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_step_decimal` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn get_step_decimal(step: Option<&str>) -> Result<Decimal> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_value_imbalance` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/helpers.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn check_value_imbalance(task: &HedgerWsUnhedgeTask) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_task` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/init.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) async fn initialize_task(
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reconcile` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/reconciliation.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn reconcile(task: &mut HedgerWsUnhedgeTask) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_websocket_message` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn handle_websocket_message(task: &mut HedgerWsUnhedgeTask, message: WebSocketMessage) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_order_update` is never used
[INFO] [stdout]   --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | async fn handle_order_update(task: &mut HedgerWsUnhedgeTask, details: DetailedOrderStatus) -> Result<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_order_book_update` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | async fn handle_order_book_update(task: &mut HedgerWsUnhedgeTask, symbol: String, bids: Vec<OrderbookLevel>, asks: Vec<OrderbookLev...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_public_trade_update` is never used
[INFO] [stdout]    --> src/webservice_hedge/unhedge_logic/ws_handlers.rs:173:10
[INFO] [stdout]     |
[INFO] [stdout] 173 | async fn handle_public_trade_update(task: &mut HedgerWsUnhedgeTask, symbol: String, price: f64, qty: f64, side: OrderSide, timestam...
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 10s
[INFO] running `Command { std: "docker" "inspect" "77a672ddab01c4fef4e0a1cb8a2e7c5f692d353f877f6ab646c381e8dc9fe418", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77a672ddab01c4fef4e0a1cb8a2e7c5f692d353f877f6ab646c381e8dc9fe418", kill_on_drop: false }`
[INFO] [stdout] 77a672ddab01c4fef4e0a1cb8a2e7c5f692d353f877f6ab646c381e8dc9fe418
