[INFO] cloning repository https://github.com/013Meta/hyperliquid-tui
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/013Meta/hyperliquid-tui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F013Meta%2Fhyperliquid-tui", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F013Meta%2Fhyperliquid-tui'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c2ceb6c7381ae4e091e3d88a72cd6a3649728a1
[INFO] checking 013Meta/hyperliquid-tui against try#c86ec274072509d26d0ee52682a0c94ed012ed89 for pr-153027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F013Meta%2Fhyperliquid-tui" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/013Meta/hyperliquid-tui
[INFO] finished tweaking git repo https://github.com/013Meta/hyperliquid-tui
[INFO] tweaked toml for git repo https://github.com/013Meta/hyperliquid-tui written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/013Meta/hyperliquid-tui on toolchain c86ec274072509d26d0ee52682a0c94ed012ed89
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/013Meta/hyperliquid-tui 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" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3a97ca7c8c60f9f900c56838fe68988a6e6ac72859b894295d8dd9c7333f4b9e
[INFO] running `Command { std: "docker" "start" "-a" "3a97ca7c8c60f9f900c56838fe68988a6e6ac72859b894295d8dd9c7333f4b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3a97ca7c8c60f9f900c56838fe68988a6e6ac72859b894295d8dd9c7333f4b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a97ca7c8c60f9f900c56838fe68988a6e6ac72859b894295d8dd9c7333f4b9e", kill_on_drop: false }`
[INFO] [stdout] 3a97ca7c8c60f9f900c56838fe68988a6e6ac72859b894295d8dd9c7333f4b9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] abcde0c42e66678eb9c6b53ea582ba0720c7b99d8634fd80f1e16a303dd36bd1
[INFO] running `Command { std: "docker" "start" "-a" "abcde0c42e66678eb9c6b53ea582ba0720c7b99d8634fd80f1e16a303dd36bd1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking foldhash v0.2.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling ruint-macro v1.2.1
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking keccak v0.1.6
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking const-hex v1.18.1
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking k256 v0.13.4
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling syn-solidity v1.5.7
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling alloy-rlp-derive v0.3.13
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling alloy-sol-macro-input v1.5.7
[INFO] [stderr]    Compiling serde_with_macros v3.18.0
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling alloy-sol-macro-expander v1.5.7
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling alloy-tx-macros v1.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking serde_with v3.18.0
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking alloy-rlp v0.3.13
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking ruint v1.17.2
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking alloy-primitives v1.5.7
[INFO] [stderr]     Checking nybbles v0.4.8
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling alloy-sol-macro v1.5.7
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking alloy-serde v1.8.2
[INFO] [stderr]     Checking alloy-eip2930 v0.2.3
[INFO] [stderr]     Checking alloy-eip7702 v0.6.3
[INFO] [stderr]     Checking alloy-eip2124 v0.2.0
[INFO] [stderr]     Checking alloy-eip7928 v0.3.3
[INFO] [stderr]     Checking alloy-trie v0.9.5
[INFO] [stderr]     Checking alloy-sol-types v1.5.7
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking alloy-eips v1.8.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking alloy-signer v1.8.2
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking alloy-sol-type-parser v1.5.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking alloy-consensus v1.8.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking futures-utils-wasm v0.1.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking alloy-json-rpc v1.8.2
[INFO] [stderr]     Checking iri-string v0.7.11
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking alloy-network-primitives v1.8.2
[INFO] [stderr]     Checking alloy-consensus-any v1.8.2
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking alloy-json-abi v1.5.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking alloy-rpc-types-eth v1.8.2
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking rmp v0.8.15
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking rmp-serde v1.3.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking alloy-dyn-abi v1.5.7
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking alloy-rpc-types-any v1.8.2
[INFO] [stderr]     Checking alloy-network v1.8.2
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking alloy-signer-local v1.8.2
[INFO] [stderr]     Checking hl-cli v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/api/ws.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::HyperClient`
[INFO] [stdout]  --> src/api/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use client::HyperClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/api/ws.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::HyperClient`
[INFO] [stdout]  --> src/api/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use client::HyperClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Modifier`
[INFO] [stdout]  --> src/ui/chart.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ratatui::style::{Color, Modifier, Style};
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Modifier`
[INFO] [stdout]  --> src/ui/chart.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ratatui::style::{Color, Modifier, Style};
[INFO] [stdout]   |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/ui/chart.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     for (side, kind) in [("bids", SRKind::Support), ("asks", SRKind::Resistance)] {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/ui/chart.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     for (side, kind) in [("bids", SRKind::Support), ("asks", SRKind::Resistance)] {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_account` is never used
[INFO] [stdout]   --> src/api/client.rs:67:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl HyperClient {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub async fn from_account(account: &AccountConfig) -> Result<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `oid`, `avg_px`, and `total_sz` are never read
[INFO] [stdout]   --> src/api/exchange.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Filled { oid: u64, avg_px: String, total_sz: String },
[INFO] [stdout]    |     ------   ^^^       ^^^^^^          ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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 `oid` is never read
[INFO] [stdout]   --> src/api/exchange.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Resting { oid: u64 },
[INFO] [stdout]    |     -------   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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 `message` is never read
[INFO] [stdout]   --> src/api/exchange.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Error { message: String },
[INFO] [stdout]    |     -----   ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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: methods `place_limit_order`, `place_market_order`, `place_trigger_order`, `modify_order`, `schedule_cancel`, and `place_twap` are never used
[INFO] [stdout]    --> src/api/exchange.rs:21:18
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl HyperClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  20 |     /// Place a limit order (GTC, IOC, or ALO).
[INFO] [stdout]  21 |     pub async fn place_limit_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub async fn place_market_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn place_trigger_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub async fn modify_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub async fn schedule_cancel(&self, time: Option<u64>) -> Result<ExchangeResponse> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub async fn place_twap(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_top_by_volume`, `fetch_asset_volumes`, `get_user_fills_by_time_for_dex`, and `get_user_fills_by_time` are never used
[INFO] [stdout]    --> src/api/info.rs:242:18
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl HyperClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub async fn get_top_by_volume(&self, n: usize) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     async fn fetch_asset_volumes(&self, dex: &str) -> Result<Vec<(String, f64)>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     async fn get_user_fills_by_time_for_dex(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub async fn get_user_fills_by_time(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_leverage` and `only_isolated` are never read
[INFO] [stdout]   --> src/api/types.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AssetMeta {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub max_leverage: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub only_isolated: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AssetMeta` 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 `Trigger` is never constructed
[INFO] [stdout]   --> src/api/types.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum OrderTypeWire {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 38 |     Limit(LimitOrderType),
[INFO] [stdout] 39 |     Trigger(TriggerOrderType),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderTypeWire` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/api/types.rs:88:5
[INFO] [stdout]     |
[INFO] [stdout]  77 | pub enum ExchangeAction {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  88 |     CancelByCloid { cancels: Vec<CancelByCloidWire> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]  89 |     #[serde(rename = "modify")]
[INFO] [stdout]  90 |     Modify { oid: u64, order: OrderWire },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]  91 |     #[serde(rename = "batchModify")]
[INFO] [stdout]  92 |     BatchModify { modifies: Vec<ModifyWire> },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     UpdateIsolatedMargin {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     ScheduleCancel {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     TwapOrder { twap: TwapWire },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 114 |     #[serde(rename = "twapCancel")]
[INFO] [stdout] 115 |     TwapCancel { a: u32, t: u64 },
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExchangeAction` 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 `response_type` is never read
[INFO] [stdout]    --> src/api/types.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     Typed {
[INFO] [stdout]     |     ----- field in this variant
[INFO] [stdout] 177 |         #[serde(rename = "type")]
[INFO] [stdout] 178 |         response_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExchangeResponseData` 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: struct `OrderStatusFilled` is never constructed
[INFO] [stdout]    --> src/api/types.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct OrderStatusFilled {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderStatusResting` is never constructed
[INFO] [stdout]    --> src/api/types.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct OrderStatusResting {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cross_margin_summary` is never read
[INFO] [stdout]    --> src/api/types.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub struct UserState {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 213 |     pub margin_summary: MarginSummary,
[INFO] [stdout] 214 |     pub cross_margin_summary: MarginSummary,
[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 `position_type` is never read
[INFO] [stdout]    --> src/api/types.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub struct AssetPosition {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub position_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AssetPosition` 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 `position_value` is never read
[INFO] [stdout]    --> src/api/types.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct PositionData {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub position_value: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionData` 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 `raw_usd` is never read
[INFO] [stdout]    --> src/api/types.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub struct LeverageInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub raw_usd: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LeverageInfo` 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 `timestamp` is never read
[INFO] [stdout]    --> src/api/types.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct OpenOrder {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub timestamp: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OpenOrder` 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 `close_time`, `s`, `i`, and `n` are never read
[INFO] [stdout]    --> src/api/types.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct Candle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub close_time: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 287 |     pub s: String, // symbol
[INFO] [stdout]     |         ^
[INFO] [stdout] 288 |     pub i: String, // interval
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub n: u64,    // num trades
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Candle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `v` are never read
[INFO] [stdout]    --> src/api/types.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub struct ParsedCandle {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 302 |     pub time: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub v: f64,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedCandle` 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 `oid` and `start_position` are never read
[INFO] [stdout]    --> src/api/types.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub struct Fill {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub oid: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub start_position: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Fill` 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: struct `WsSubscription` is never constructed
[INFO] [stdout]    --> src/api/types.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub struct WsSubscription {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `asset_index` is never used
[INFO] [stdout]    --> src/api/types.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn asset_index(name: &str, universe: &[AssetMeta]) -> Option<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coin` and `data` are never read
[INFO] [stdout]   --> src/api/ws.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Trade {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 24 |         coin: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 25 |         data: serde_json::Value,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` 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 `0` is never read
[INFO] [stdout]   --> src/api/ws.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     UserFill(serde_json::Value),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     UserFill(serde_json::Value),
[INFO] [stdout] 30 +     UserFill(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spot_state` is never read
[INFO] [stdout]   --> src/api/ws.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     WebData2 {
[INFO] [stdout]    |     -------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 37 |         spot_state: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` 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 `Shutdown` is never constructed
[INFO] [stdout]   --> src/api/ws.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum WsCommand {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 49 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Trades` and `UserFills` are never constructed
[INFO] [stdout]   --> src/api/ws.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum WsSubscription {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 54 |     L2Book(String),      // coin
[INFO] [stdout] 55 |     Trades(String),      // coin
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     UserFills,           // user fills
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsSubscription` 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 `margin_used` and `leverage` are never read
[INFO] [stdout]   --> src/app.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DisplayPosition {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub margin_used: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 40 |     pub leverage: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DisplayPosition` 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 `Up`, `Down`, and `None` are never constructed
[INFO] [stdout]   --> src/bot/types.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum TrendDirection {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout]  9 |     Up,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 10 |     Down,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrendDirection` 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: enum `BotMode` is never used
[INFO] [stdout]   --> src/bot/types.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum BotMode {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]   --> src/bot/types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl BotMode {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 36 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotStatus` is never used
[INFO] [stdout]   --> src/bot/types.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum BotStatus {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConfigUpdate` is never used
[INFO] [stdout]   --> src/bot/types.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum ConfigUpdate {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotCommand` is never used
[INFO] [stdout]   --> src/bot/types.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum BotCommand {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotEvent` is never used
[INFO] [stdout]    --> src/bot/types.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum BotEvent {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `consecutive_wins` is never read
[INFO] [stdout]    --> src/bot/types.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct BotSnapshot {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub consecutive_wins: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BotSnapshot` 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 `adx` is never read
[INFO] [stdout]    --> src/bot/types.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct CoinScanRow {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub adx: f64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoinScanRow` 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 `current_price` is never read
[INFO] [stdout]    --> src/bot/types.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct BotPositionRow {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub current_price: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BotPositionRow` 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: multiple fields are never read
[INFO] [stdout]    --> src/bot/types.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct EntrySignal {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 191 |     pub coin: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 192 |     pub direction: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 193 |     pub trend_strength: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     pub adx: f64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 195 |     pub vol_surge: f64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 196 |     pub price: f64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 197 |     pub atr_pct: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 198 |     pub regime: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 199 |     pub match_score: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntrySignal` 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 `Info`, `Signal`, `Entry`, `Exit`, `Warning`, and `Error` are never constructed
[INFO] [stdout]    --> src/bot/types.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub enum LogLevel {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 205 |     Info,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 206 |     Signal,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 207 |     Entry,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 208 |     Exit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 209 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 210 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogLevel` 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: struct `CandleSet` is never constructed
[INFO] [stdout]    --> src/bot/types.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct CandleSet {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ToggleBotStatus` is never constructed
[INFO] [stdout]   --> src/hotkeys.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum Action {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     ToggleBotStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` 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 `compute_pct` is never used
[INFO] [stdout]   --> src/indicators/atr.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn compute_pct(candles: &[ParsedCandle], period: usize) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StyleClass` is never used
[INFO] [stdout]   --> src/regime/types.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum StyleClass {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndicatorRange` is never constructed
[INFO] [stdout]   --> src/regime/types.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct IndicatorRange {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `center`, `width`, and `score` are never used
[INFO] [stdout]   --> src/regime/types.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl IndicatorRange {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 60 |     pub fn new(p25: f64, p75: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn center(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn width(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn score(&self, value: f64) -> f64 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StyleProfile` is never constructed
[INFO] [stdout]   --> src/regime/types.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct StyleProfile {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconstructedTrade` is never constructed
[INFO] [stdout]    --> src/regime/types.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct ReconstructedTrade {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_trail_distance` is never used
[INFO] [stdout]    --> src/trading/manual_trail.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn compute_trail_distance(method: &TrailMethod, entry_price: f64, atr_value: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bracket_order` is never used
[INFO] [stdout]   --> src/trading/order_manager.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn bracket_order(
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BracketResult` is never constructed
[INFO] [stdout]   --> src/trading/order_manager.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct BracketResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_orders` is never used
[INFO] [stdout]   --> src/trading/order_manager.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub async fn scale_orders(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackedPosition` is never constructed
[INFO] [stdout]   --> src/trading/position_tracker.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TrackedPosition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTracker` is never constructed
[INFO] [stdout]   --> src/trading/position_tracker.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct PositionTracker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/trading/position_tracker.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl PositionTracker {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn insert(&mut self, pos: TrackedPosition) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn remove(&mut self, asset: &str) -> Option<TrackedPosition> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, asset: &str) -> Option<&TrackedPosition> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_mut(&mut self, asset: &str) -> Option<&mut TrackedPosition> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn contains(&self, asset: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn iter(&self) -> impl Iterator<Item = (&String, &TrackedPosition)> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn iter_mut(&mut self) -> impl Iterator<Item = (&String, &mut TrackedPosition)> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn assets(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `asset` and `created_at` are never read
[INFO] [stdout]   --> src/trading/trailing_stop.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct TrailingStop {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  7 |     pub asset: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub created_at: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrailingStop` 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 `coin`, `equity_at_liq`, `regime`, and `position_size_usd` are never read
[INFO] [stdout]   --> src/trading/risk.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LiquidationEvent {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 22 |     pub timestamp: f64,
[INFO] [stdout] 23 |     pub coin: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 24 |     pub equity_at_liq: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub regime: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 26 |     pub position_size_usd: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LiquidationEvent` 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: multiple methods are never used
[INFO] [stdout]    --> src/trading/risk.rs:357:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl CircuitBreaker {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn record_trade(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn streak(&self) -> StreakState {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn bankroll(&self) -> Decimal { self.bankroll }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 399 |     pub fn daily_pnl(&self) -> Decimal { self.daily_pnl }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 400 |     pub fn daily_trades(&self) -> u32 { self.daily_trades }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 401 |     pub fn consecutive_losses(&self) -> u32 { self.consecutive_losses }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 402 |     pub fn consecutive_wins(&self) -> u32 { self.consecutive_wins }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 403 |     pub fn is_tripped(&self) -> bool { self.tripped }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 404 |     pub fn recent_liquidations(&self) -> usize { self.liquidation_events.len() }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 405 |
[INFO] [stdout] 406 |     pub fn set_max_positions(&mut self, n: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn drawdown_pct(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_account` is never used
[INFO] [stdout]   --> src/api/client.rs:67:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl HyperClient {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub async fn from_account(account: &AccountConfig) -> Result<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `oid`, `avg_px`, and `total_sz` are never read
[INFO] [stdout]   --> src/api/exchange.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Filled { oid: u64, avg_px: String, total_sz: String },
[INFO] [stdout]    |     ------   ^^^       ^^^^^^          ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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 `oid` is never read
[INFO] [stdout]   --> src/api/exchange.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Resting { oid: u64 },
[INFO] [stdout]    |     -------   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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 `message` is never read
[INFO] [stdout]   --> src/api/exchange.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |     Error { message: String },
[INFO] [stdout]    |     -----   ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderResult` 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: methods `place_limit_order`, `place_market_order`, `place_trigger_order`, `modify_order`, `schedule_cancel`, and `place_twap` are never used
[INFO] [stdout]    --> src/api/exchange.rs:21:18
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl HyperClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  20 |     /// Place a limit order (GTC, IOC, or ALO).
[INFO] [stdout]  21 |     pub async fn place_limit_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub async fn place_market_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn place_trigger_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub async fn modify_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub async fn schedule_cancel(&self, time: Option<u64>) -> Result<ExchangeResponse> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub async fn place_twap(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_top_by_volume`, `fetch_asset_volumes`, `get_user_fills_by_time_for_dex`, and `get_user_fills_by_time` are never used
[INFO] [stdout]    --> src/api/info.rs:242:18
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl HyperClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub async fn get_top_by_volume(&self, n: usize) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     async fn fetch_asset_volumes(&self, dex: &str) -> Result<Vec<(String, f64)>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     async fn get_user_fills_by_time_for_dex(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub async fn get_user_fills_by_time(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_leverage` and `only_isolated` are never read
[INFO] [stdout]   --> src/api/types.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AssetMeta {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub max_leverage: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub only_isolated: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AssetMeta` 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 `Trigger` is never constructed
[INFO] [stdout]   --> src/api/types.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum OrderTypeWire {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 38 |     Limit(LimitOrderType),
[INFO] [stdout] 39 |     Trigger(TriggerOrderType),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderTypeWire` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/api/types.rs:88:5
[INFO] [stdout]     |
[INFO] [stdout]  77 | pub enum ExchangeAction {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  88 |     CancelByCloid { cancels: Vec<CancelByCloidWire> },
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]  89 |     #[serde(rename = "modify")]
[INFO] [stdout]  90 |     Modify { oid: u64, order: OrderWire },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]  91 |     #[serde(rename = "batchModify")]
[INFO] [stdout]  92 |     BatchModify { modifies: Vec<ModifyWire> },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     UpdateIsolatedMargin {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     ScheduleCancel {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     TwapOrder { twap: TwapWire },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 114 |     #[serde(rename = "twapCancel")]
[INFO] [stdout] 115 |     TwapCancel { a: u32, t: u64 },
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExchangeAction` 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 `response_type` is never read
[INFO] [stdout]    --> src/api/types.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     Typed {
[INFO] [stdout]     |     ----- field in this variant
[INFO] [stdout] 177 |         #[serde(rename = "type")]
[INFO] [stdout] 178 |         response_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExchangeResponseData` 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: struct `OrderStatusFilled` is never constructed
[INFO] [stdout]    --> src/api/types.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct OrderStatusFilled {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderStatusResting` is never constructed
[INFO] [stdout]    --> src/api/types.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct OrderStatusResting {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cross_margin_summary` is never read
[INFO] [stdout]    --> src/api/types.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub struct UserState {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 213 |     pub margin_summary: MarginSummary,
[INFO] [stdout] 214 |     pub cross_margin_summary: MarginSummary,
[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 `position_type` is never read
[INFO] [stdout]    --> src/api/types.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub struct AssetPosition {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub position_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AssetPosition` 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 `position_value` is never read
[INFO] [stdout]    --> src/api/types.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct PositionData {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub position_value: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionData` 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 `raw_usd` is never read
[INFO] [stdout]    --> src/api/types.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub struct LeverageInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub raw_usd: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LeverageInfo` 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 `timestamp` is never read
[INFO] [stdout]    --> src/api/types.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct OpenOrder {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub timestamp: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OpenOrder` 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 `close_time`, `s`, `i`, and `n` are never read
[INFO] [stdout]    --> src/api/types.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub struct Candle {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub close_time: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 287 |     pub s: String, // symbol
[INFO] [stdout]     |         ^
[INFO] [stdout] 288 |     pub i: String, // interval
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub n: u64,    // num trades
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Candle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time` and `v` are never read
[INFO] [stdout]    --> src/api/types.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub struct ParsedCandle {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 302 |     pub time: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub v: f64,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedCandle` 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 `oid` and `start_position` are never read
[INFO] [stdout]    --> src/api/types.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub struct Fill {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub oid: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub start_position: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Fill` 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: struct `WsSubscription` is never constructed
[INFO] [stdout]    --> src/api/types.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub struct WsSubscription {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `asset_index` is never used
[INFO] [stdout]    --> src/api/types.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn asset_index(name: &str, universe: &[AssetMeta]) -> Option<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coin` and `data` are never read
[INFO] [stdout]   --> src/api/ws.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Trade {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 24 |         coin: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 25 |         data: serde_json::Value,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` 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 `0` is never read
[INFO] [stdout]   --> src/api/ws.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 |     UserFill(serde_json::Value),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     UserFill(serde_json::Value),
[INFO] [stdout] 30 +     UserFill(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spot_state` is never read
[INFO] [stdout]   --> src/api/ws.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     WebData2 {
[INFO] [stdout]    |     -------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 37 |         spot_state: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsEvent` 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 `Shutdown` is never constructed
[INFO] [stdout]   --> src/api/ws.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum WsCommand {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 49 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Trades` and `UserFills` are never constructed
[INFO] [stdout]   --> src/api/ws.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum WsSubscription {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 54 |     L2Book(String),      // coin
[INFO] [stdout] 55 |     Trades(String),      // coin
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     UserFills,           // user fills
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsSubscription` 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 `margin_used` and `leverage` are never read
[INFO] [stdout]   --> src/app.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DisplayPosition {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub margin_used: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 40 |     pub leverage: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DisplayPosition` 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 `Up`, `Down`, and `None` are never constructed
[INFO] [stdout]   --> src/bot/types.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum TrendDirection {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout]  9 |     Up,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 10 |     Down,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrendDirection` 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: enum `BotMode` is never used
[INFO] [stdout]   --> src/bot/types.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum BotMode {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]   --> src/bot/types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl BotMode {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 36 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotStatus` is never used
[INFO] [stdout]   --> src/bot/types.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum BotStatus {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConfigUpdate` is never used
[INFO] [stdout]   --> src/bot/types.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum ConfigUpdate {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotCommand` is never used
[INFO] [stdout]   --> src/bot/types.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum BotCommand {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BotEvent` is never used
[INFO] [stdout]    --> src/bot/types.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub enum BotEvent {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `consecutive_wins` is never read
[INFO] [stdout]    --> src/bot/types.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct BotSnapshot {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub consecutive_wins: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BotSnapshot` 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 `adx` is never read
[INFO] [stdout]    --> src/bot/types.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct CoinScanRow {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub adx: f64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoinScanRow` 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 `current_price` is never read
[INFO] [stdout]    --> src/bot/types.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct BotPositionRow {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub current_price: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BotPositionRow` 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: multiple fields are never read
[INFO] [stdout]    --> src/bot/types.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct EntrySignal {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 191 |     pub coin: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 192 |     pub direction: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 193 |     pub trend_strength: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     pub adx: f64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 195 |     pub vol_surge: f64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 196 |     pub price: f64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 197 |     pub atr_pct: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 198 |     pub regime: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 199 |     pub match_score: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntrySignal` 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 `Info`, `Signal`, `Entry`, `Exit`, `Warning`, and `Error` are never constructed
[INFO] [stdout]    --> src/bot/types.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub enum LogLevel {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] 205 |     Info,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 206 |     Signal,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 207 |     Entry,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 208 |     Exit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 209 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 210 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogLevel` 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: struct `CandleSet` is never constructed
[INFO] [stdout]    --> src/bot/types.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct CandleSet {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ToggleBotStatus` is never constructed
[INFO] [stdout]   --> src/hotkeys.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum Action {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     ToggleBotStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` 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 `compute_pct` is never used
[INFO] [stdout]   --> src/indicators/atr.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn compute_pct(candles: &[ParsedCandle], period: usize) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Regime` is never used
[INFO] [stdout]  --> src/regime/types.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Regime {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `short_label` is never used
[INFO] [stdout]   --> src/regime/types.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Regime {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 17 |     pub fn short_label(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StyleClass` is never used
[INFO] [stdout]   --> src/regime/types.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum StyleClass {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndicatorRange` is never constructed
[INFO] [stdout]   --> src/regime/types.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct IndicatorRange {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `center`, `width`, and `score` are never used
[INFO] [stdout]   --> src/regime/types.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl IndicatorRange {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 60 |     pub fn new(p25: f64, p75: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn center(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn width(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn score(&self, value: f64) -> f64 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StyleProfile` is never constructed
[INFO] [stdout]   --> src/regime/types.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct StyleProfile {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconstructedTrade` is never constructed
[INFO] [stdout]    --> src/regime/types.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct ReconstructedTrade {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_trail_distance` is never used
[INFO] [stdout]    --> src/trading/manual_trail.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn compute_trail_distance(method: &TrailMethod, entry_price: f64, atr_value: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bracket_order` is never used
[INFO] [stdout]   --> src/trading/order_manager.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn bracket_order(
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BracketResult` is never constructed
[INFO] [stdout]   --> src/trading/order_manager.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct BracketResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_orders` is never used
[INFO] [stdout]   --> src/trading/order_manager.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub async fn scale_orders(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrackedPosition` is never constructed
[INFO] [stdout]   --> src/trading/position_tracker.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TrackedPosition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionTracker` is never constructed
[INFO] [stdout]   --> src/trading/position_tracker.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct PositionTracker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/trading/position_tracker.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl PositionTracker {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn insert(&mut self, pos: TrackedPosition) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn remove(&mut self, asset: &str) -> Option<TrackedPosition> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, asset: &str) -> Option<&TrackedPosition> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_mut(&mut self, asset: &str) -> Option<&mut TrackedPosition> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn contains(&self, asset: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn iter(&self) -> impl Iterator<Item = (&String, &TrackedPosition)> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn iter_mut(&mut self) -> impl Iterator<Item = (&String, &mut TrackedPosition)> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn assets(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `asset` and `created_at` are never read
[INFO] [stdout]   --> src/trading/trailing_stop.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct TrailingStop {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  7 |     pub asset: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub created_at: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrailingStop` 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: struct `CircuitBreakerConfig` is never constructed
[INFO] [stdout]   --> src/trading/risk.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct CircuitBreakerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiquidationEvent` is never constructed
[INFO] [stdout]   --> src/trading/risk.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LiquidationEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LiquidationTier` is never used
[INFO] [stdout]   --> src/trading/risk.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum LiquidationTier {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreakState` is never constructed
[INFO] [stdout]   --> src/trading/risk.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct StreakState {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multiplier` is never used
[INFO] [stdout]   --> src/trading/risk.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl StreakState {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn multiplier(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regime_size_multiplier` is never used
[INFO] [stdout]   --> src/trading/risk.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn regime_size_multiplier(regime: &Regime) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_position_size` is never used
[INFO] [stdout]   --> src/trading/risk.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn compute_position_size(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircuitBreaker` is never constructed
[INFO] [stdout]    --> src/trading/risk.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct CircuitBreaker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeCheck` is never constructed
[INFO] [stdout]    --> src/trading/risk.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct TradeCheck {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIQ_WINDOW_SECS` is never used
[INFO] [stdout]    --> src/trading/risk.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | const LIQ_WINDOW_SECS: f64 = 48.0 * 3600.0; // 48 hours
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/trading/risk.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl CircuitBreaker {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 156 |     pub fn new(config: CircuitBreakerConfig, initial_bankroll: Decimal) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn now_secs() -> f64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn prune_liq_events(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn liquidation_tier(&mut self) -> LiquidationTier {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn record_liquidation(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn check_can_trade(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn record_trade(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn record_result(&mut self, pnl: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     pub fn liq_size_multiplier(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn streak(&self) -> StreakState {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn bankroll(&self) -> Decimal { self.bankroll }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 399 |     pub fn daily_pnl(&self) -> Decimal { self.daily_pnl }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 400 |     pub fn daily_trades(&self) -> u32 { self.daily_trades }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 401 |     pub fn consecutive_losses(&self) -> u32 { self.consecutive_losses }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 402 |     pub fn consecutive_wins(&self) -> u32 { self.consecutive_wins }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 403 |     pub fn is_tripped(&self) -> bool { self.tripped }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 404 |     pub fn recent_liquidations(&self) -> usize { self.liquidation_events.len() }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 405 |
[INFO] [stdout] 406 |     pub fn set_max_positions(&mut self, n: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn drawdown_pct(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.38s
[INFO] running `Command { std: "docker" "inspect" "abcde0c42e66678eb9c6b53ea582ba0720c7b99d8634fd80f1e16a303dd36bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abcde0c42e66678eb9c6b53ea582ba0720c7b99d8634fd80f1e16a303dd36bd1", kill_on_drop: false }`
[INFO] [stdout] abcde0c42e66678eb9c6b53ea582ba0720c7b99d8634fd80f1e16a303dd36bd1
