[INFO] cloning repository https://github.com/clarenceovo/RustBot [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/clarenceovo/RustBot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclarenceovo%2FRustBot", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclarenceovo%2FRustBot'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7353cd25702e539e1bc41a5a541e0bb8661d5c8a [INFO] checking clarenceovo/RustBot against master#fe348cd1a8e0fa445b772393147ed865904dcd4d for pr-139587-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclarenceovo%2FRustBot" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/clarenceovo/RustBot on toolchain fe348cd1a8e0fa445b772393147ed865904dcd4d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/clarenceovo/RustBot [INFO] finished tweaking git repo https://github.com/clarenceovo/RustBot [INFO] tweaked toml for git repo https://github.com/clarenceovo/RustBot written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "generate-lockfile" "--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] Locking 192 packages to latest compatible versions [INFO] [stderr] Adding env_logger v0.9.3 (available: v0.11.8) [INFO] [stderr] Adding redis v0.23.3 (available: v0.30.0) [INFO] [stderr] Adding tokio-tungstenite v0.18.0 (available: v0.26.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: package.author [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded simplelog v0.12.2 [INFO] [stderr] Downloaded tungstenite v0.18.0 [INFO] [stderr] Downloaded tokio-tungstenite v0.18.0 [INFO] [stderr] Downloaded redis v0.23.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4c7049f64a044618da27457488ef60b6510464d7d67e6c96be6ed1b991fc669c [INFO] running `Command { std: "docker" "start" "-a" "4c7049f64a044618da27457488ef60b6510464d7d67e6c96be6ed1b991fc669c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4c7049f64a044618da27457488ef60b6510464d7d67e6c96be6ed1b991fc669c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c7049f64a044618da27457488ef60b6510464d7d67e6c96be6ed1b991fc669c", kill_on_drop: false }` [INFO] [stdout] 4c7049f64a044618da27457488ef60b6510464d7d67e6c96be6ed1b991fc669c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c4b22ee17f5dc995741327f1949493346970657137c5ae76108c1ece8ccfbc4e [INFO] running `Command { std: "docker" "start" "-a" "c4b22ee17f5dc995741327f1949493346970657137c5ae76108c1ece8ccfbc4e", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: package.author [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling cc v1.2.21 [INFO] [stderr] Compiling icu_properties_data v2.0.0 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling time-core v0.1.4 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking deranged v0.4.0 [INFO] [stderr] Compiling time-macros v0.2.22 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking humantime v2.2.0 [INFO] [stderr] Checking sha1_smol v1.0.1 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking socket2 v0.5.9 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking uuid v1.16.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling openssl-sys v0.9.108 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking simplelog v0.12.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_logger v0.9.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking tokio v1.45.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking tungstenite v0.18.0 [INFO] [stderr] Checking tokio-tungstenite v0.18.0 [INFO] [stderr] Checking redis v0.23.3 [INFO] [stderr] Checking RustBot v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::model::liquidation_level` [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::model::liquidation_level; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::time` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::time; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `string` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{fmt, string}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `LiquidationLevel`, and `Side` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:21:39 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::model::liquidation_level::{LiquidationLevel, Level, Side}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::model::okx_order::OkxOrder` [INFO] [stdout] --> src/connector/okx_trade_client.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::model::okx_order::OkxOrder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OkxOrderMessage` [INFO] [stdout] --> src/connector/okx_trade_client.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::model::okx_order_message::{OkxOrderMessage, OrderFillData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::model::okx_position::OKXPositionData` [INFO] [stdout] --> src/connector/okx_trade_client.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::model::okx_position::OKXPositionData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::time_util` [INFO] [stdout] --> src/connector/okx_trade_client.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::util::time_util; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `okx_trade_client::OkxTradeClient` [INFO] [stdout] --> src/connector/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use okx_trade_client::OkxTradeClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `okx_ticker` should have an upper camel case name [INFO] [stdout] --> src/model/okx_ticker.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct okx_ticker { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `OkxTicker` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/model/okx_order.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/model/okx_order.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn` [INFO] [stdout] --> src/model/okx_order.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{debug, warn, error}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter` and `info` [INFO] [stdout] --> src/model/liquidation_level.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{info, LevelFilter}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinanceFuturesWebSocketConnector`, `OkxMarketDataWebSocketConnector`, and `model::orderbook` [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{connector::{BinanceFuturesWebSocketConnector, OkxMarketDataWebSocketConnector}, model::orderbook}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bolt_Hedger::bolt_hedger::BoltHedger` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use Bolt_Hedger::bolt_hedger::BoltHedger; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> src/main.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter` and `log` [INFO] [stdout] --> src/main.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | use log::{info, LevelFilter, error, log}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connector::okx_trade_client::OkxTradeClient` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use connector::okx_trade_client::OkxTradeClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/util/okx_auth.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use base64::encode; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/util/okx_auth.rs:51:20 [INFO] [stdout] | [INFO] [stdout] 51 | let sign = encode(&code_bytes); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::model::liquidation_level` [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::model::liquidation_level; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::time` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::time; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `string` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{fmt, string}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Level`, `LiquidationLevel`, and `Side` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:21:39 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::model::liquidation_level::{LiquidationLevel, Level, Side}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::model::okx_order::OkxOrder` [INFO] [stdout] --> src/connector/okx_trade_client.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::model::okx_order::OkxOrder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OkxOrderMessage` [INFO] [stdout] --> src/connector/okx_trade_client.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::model::okx_order_message::{OkxOrderMessage, OrderFillData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::model::okx_position::OKXPositionData` [INFO] [stdout] --> src/connector/okx_trade_client.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::model::okx_position::OKXPositionData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::time_util` [INFO] [stdout] --> src/connector/okx_trade_client.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::util::time_util; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `okx_trade_client::OkxTradeClient` [INFO] [stdout] --> src/connector/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use okx_trade_client::OkxTradeClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `okx_ticker` should have an upper camel case name [INFO] [stdout] --> src/model/okx_ticker.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct okx_ticker { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `OkxTicker` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/model/okx_order.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/model/okx_order.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn` [INFO] [stdout] --> src/model/okx_order.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{debug, warn, error}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter` and `info` [INFO] [stdout] --> src/model/liquidation_level.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{info, LevelFilter}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinanceFuturesWebSocketConnector`, `OkxMarketDataWebSocketConnector`, and `model::orderbook` [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{connector::{BinanceFuturesWebSocketConnector, OkxMarketDataWebSocketConnector}, model::orderbook}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bolt_Hedger::bolt_hedger::BoltHedger` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use Bolt_Hedger::bolt_hedger::BoltHedger; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> src/main.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter` and `log` [INFO] [stdout] --> src/main.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | use log::{info, LevelFilter, error, log}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connector::okx_trade_client::OkxTradeClient` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use connector::okx_trade_client::OkxTradeClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/util/okx_auth.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use base64::encode; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/util/okx_auth.rs:51:20 [INFO] [stdout] | [INFO] [stdout] 51 | let sign = encode(&code_bytes); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `topic` [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let topic = format!("okx_ticker:{}", ticker["instId"].as_str().unwrap()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_topic` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subscribe_message` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let subscribe_message = json!({ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscribe_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:189:40 [INFO] [stdout] | [INFO] [stdout] 189 | ... if let Err(e) = self.process_text_message(&text).await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `latency` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | let latency = server_ts - event_ts; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latency` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bid_order` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:234:21 [INFO] [stdout] | [INFO] [stdout] 234 | let bid_order = Self::parse_order(&json_data, "b", "B")?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bid_order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ask_order` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | let ask_order = Self::parse_order(&json_data, "a", "A")?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ask_order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_ts` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:290:17 [INFO] [stdout] | [INFO] [stdout] 290 | let event_ts = json_data["E"].as_i64().ok_or(WebSocketError::ParseError("Missing event time".to_string()))?; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_ts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `topic` [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let topic = format!("okx_ticker:{}", ticker["instId"].as_str().unwrap()); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_topic` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | let mut last_ts = self.timestamp_record.get(json_data["s"].as_str().unwrap_or("Unknown")).unwrap_or(&0); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subscribe_message` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let subscribe_message = json!({ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscribe_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:189:40 [INFO] [stdout] | [INFO] [stdout] 189 | ... if let Err(e) = self.process_text_message(&text).await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/connector/okx_trade_client.rs:123:17 [INFO] [stdout] | [INFO] [stdout] 123 | let data = json_data.get("data").unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `latency` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | let latency = server_ts - event_ts; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_latency` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bid_order` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:234:21 [INFO] [stdout] | [INFO] [stdout] 234 | let bid_order = Self::parse_order(&json_data, "b", "B")?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bid_order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ask_order` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | let ask_order = Self::parse_order(&json_data, "a", "A")?; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ask_order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_ts` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:290:17 [INFO] [stdout] | [INFO] [stdout] 290 | let event_ts = json_data["E"].as_i64().ok_or(WebSocketError::ParseError("Missing event time".to_string()))?; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_ts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | let mut last_ts = self.timestamp_record.get(json_data["s"].as_str().unwrap_or("Unknown")).unwrap_or(&0); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/transport/redis.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub async fn pipeline_set(&self, key_values: Vec<(&str, &str)>) -> RedisResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/transport/redis.rs:69:14 [INFO] [stdout] | [INFO] [stdout] 69 | pipe.query_async(&mut *conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 69 | pipe.query_async::<_, ()>(&mut *conn).await?; [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/connector/okx_trade_client.rs:123:17 [INFO] [stdout] | [INFO] [stdout] 123 | let data = json_data.get("data").unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/transport/redis.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub async fn pipeline_set(&self, key_values: Vec<(&str, &str)>) -> RedisResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/transport/redis.rs:69:14 [INFO] [stdout] | [INFO] [stdout] 69 | pipe.query_async(&mut *conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 69 | pipe.query_async::<_, ()>(&mut *conn).await?; [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `redis::AsyncCommands` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use redis::AsyncCommands; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut timestamp_record: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `redis::AsyncCommands` [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use redis::AsyncCommands; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let mut timestamp_record: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `credential_config` [INFO] [stdout] --> src/main.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let credential_config = read_config("config/credential.json").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credential_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_rx` [INFO] [stdout] --> src/main.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | let (okx_tx, okx_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_tx` [INFO] [stdout] --> src/main.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | let (binance_tx, binance_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_rx` [INFO] [stdout] --> src/main.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | let (binance_tx, binance_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_trade_tx` [INFO] [stdout] --> src/main.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | let (okx_trade_tx, okx_trade_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_trade_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_trade_rx` [INFO] [stdout] --> src/main.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | let (okx_trade_tx, okx_trade_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_trade_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_fill_tx` [INFO] [stdout] --> src/main.rs:61:10 [INFO] [stdout] | [INFO] [stdout] 61 | let (okx_fill_tx, okx_fill_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_fill_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_fill_rx` [INFO] [stdout] --> src/main.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | let (okx_fill_tx, okx_fill_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_fill_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_result` [INFO] [stdout] --> src/main.rs:102:10 [INFO] [stdout] | [INFO] [stdout] 102 | let (okx_result, binance_result) = tokio::join!(okx_task,binance_task); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_result` [INFO] [stdout] --> src/main.rs:102:22 [INFO] [stdout] | [INFO] [stdout] 102 | let (okx_result, binance_result) = tokio::join!(okx_task,binance_task); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `credential_config` [INFO] [stdout] --> src/main.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let credential_config = read_config("config/credential.json").await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credential_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_rx` [INFO] [stdout] --> src/main.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | let (okx_tx, okx_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_tx` [INFO] [stdout] --> src/main.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | let (binance_tx, binance_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_rx` [INFO] [stdout] --> src/main.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | let (binance_tx, binance_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_trade_tx` [INFO] [stdout] --> src/main.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | let (okx_trade_tx, okx_trade_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_trade_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_trade_rx` [INFO] [stdout] --> src/main.rs:60:24 [INFO] [stdout] | [INFO] [stdout] 60 | let (okx_trade_tx, okx_trade_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_trade_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_fill_tx` [INFO] [stdout] --> src/main.rs:61:10 [INFO] [stdout] | [INFO] [stdout] 61 | let (okx_fill_tx, okx_fill_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_fill_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_fill_rx` [INFO] [stdout] --> src/main.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | let (okx_fill_tx, okx_fill_rx) = mpsc::channel::(1000); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_fill_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `okx_result` [INFO] [stdout] --> src/main.rs:102:10 [INFO] [stdout] | [INFO] [stdout] 102 | let (okx_result, binance_result) = tokio::join!(okx_task,binance_task); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_okx_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `binance_result` [INFO] [stdout] --> src/main.rs:102:22 [INFO] [stdout] | [INFO] [stdout] 102 | let (okx_result, binance_result) = tokio::join!(okx_task,binance_task); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_binance_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `redis_conn` and `last_ping` are never read [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct OkxMarketDataWebSocketConnector { [INFO] [stdout] | ------------------------------- fields in this struct [INFO] [stdout] 25 | redis_conn: Arc, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | last_ping: Arc>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_order_book` is never used [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl OkxMarketDataWebSocketConnector { [INFO] [stdout] | ------------------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn get_order_book(&self) -> Arc> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `order_book` and `tx` are never read [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct BinanceFuturesWebSocketConnector { [INFO] [stdout] | -------------------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | order_book: Arc>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | tx: Sender, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SendError` and `OrderBookError` are never constructed [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum WebSocketError { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 58 | SendError(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 59 | UrlParseError(url::ParseError), [INFO] [stdout] 60 | OrderBookError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WebSocketError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_sender` and `get_order_book` are never used [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl BinanceFuturesWebSocketConnector { [INFO] [stdout] | ------------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn set_sender(&mut self, new_tx: Sender) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn get_order_book(&self) -> Arc> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OkxTradeClient` is never constructed [INFO] [stdout] --> src/connector/okx_trade_client.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct OkxTradeClient { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OkxTradeClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `handle_message`, `subscribe`, `send`, and `start_pinging` are never used [INFO] [stdout] --> src/connector/okx_trade_client.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 50 | impl OkxTradeClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 51 | pub async fn new(api_key: String, api_secret: String, passphrase: String, fill_sender: Sender) -> Result Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn subscribe(&self, channels: Vec) -> Result<(), tokio::sync::mpsc::error::SendError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub async fn send(&self, message: Message) -> Result<(), tokio::sync::mpsc::error::SendError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn start_pinging(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/transport/redis.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct RedisClient { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 7 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Buy` and `Sell` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | enum OrderSide { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 9 | Buy, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | Sell, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderSide` 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 `Market`, `Limit`, `StopMarket`, and `StopLimit` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | enum OrderType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 15 | Market, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | Limit, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | StopMarket, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | StopLimit, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderType` 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 `Live` and `Filled` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum OrderState { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 23 | Live, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | Filled, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderState` 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 `Net` is never constructed [INFO] [stdout] --> src/model/okx_order.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | enum PosSide { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 29 | Net, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PosSide` 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/model/okx_order.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct OkxOrder { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 33 | ref_id: Uuid, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 34 | exchange_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 35 | order_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | order_state: OrderState, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 37 | price: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 38 | size: f64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | side: OrderSide, [INFO] [stdout] | ^^^^ [INFO] [stdout] 40 | manager_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | strategy: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 42 | trading_mode: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 43 | instrument: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 44 | is_live: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | created_ts: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | pos_side: PosSide, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | fill_size: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 48 | fill_price: f64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | is_filled: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | updated_ts: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 51 | reduce_only: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 52 | order_type: OrderType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/okx_order.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl OkxOrder { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 56 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn is_fully_filled(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn set_state(&mut self, state: OrderState) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn update_order_price(&mut self, price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn update_order_price_size(&mut self, price: f64, size: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn update_order_size(&mut self, size: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | fn update_fill_size(&mut self, fill_size: f64, fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn print(&self, message: String) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExchangeOrder` is never constructed [INFO] [stdout] --> src/model/circular_orderbook.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct ExchangeOrder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_state`, `update_fill_size`, and `to_json` are never used [INFO] [stdout] --> src/model/circular_orderbook.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl ExchangeOrder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 16 | pub fn set_state(&mut self, _state: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn update_fill_size(&mut self, _fill_size: f64, _fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CircularOrderBook` is never constructed [INFO] [stdout] --> src/model/circular_orderbook.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct CircularOrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/circular_orderbook.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl CircularOrderBook { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 43 | pub fn new(instrument_name: &str, max_order_per_side: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn print_log(&self, log: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_bid_order(&self, bid_order: ExchangeOrder) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn add_ask_order(&self, ask_order: ExchangeOrder) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn get_bid_queue(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_ask_queue(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn set_order_state(&self, ref_id: &str, state: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn get_order_list(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn get_order_index(&self, ref_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn delete_fill_list(&self, ref_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn add_fill_list(&self, ref_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn get_order(&self, ref_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn set_fill_size(&self, ref_id: &str, fill_size: f64, fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn is_ref_id_in_list(&self, ref_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn get_orderbook_dump(&self) -> serde_json::Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `trade` is never read [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct BoltHedger { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 13 | okx_orderbook: Receiver, [INFO] [stdout] 14 | trade: Sender, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Bolt_Hedger` should have a snake case name [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub mod Bolt_Hedger; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `bolt_hedger` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instType` should have a snake case name [INFO] [stdout] --> src/connector/okx_trade_client.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub instType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `inst_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instId` should have a snake case name [INFO] [stdout] --> src/connector/okx_trade_client.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub instId: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `inst_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `apiKey` should have a snake case name [INFO] [stdout] --> src/util/okx_auth.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | apiKey: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `api_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `availPos` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | availPos: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `avail_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `avgPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | avgPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `avg_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseBal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | baseBal: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `base_bal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseBorrowed` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | baseBorrowed: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `base_borrowed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseInterest` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | baseInterest: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `base_interest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bePx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | bePx: String, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `be_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bizRefId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | bizRefId: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `biz_ref_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bizRefType` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | bizRefType: Option, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `biz_ref_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `cTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | cTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `c_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `clSpotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | clSpotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cl_spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `closeOrderAlgo` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | closeOrderAlgo: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `close_order_algo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `deltaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | deltaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `delta_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `deltaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | deltaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `delta_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `fundingFee` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | fundingFee: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `funding_fee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `gammaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | gammaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `gamma_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `gammaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | gammaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `gamma_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `idxPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | idxPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `idx_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | instId: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `inst_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instType` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | instType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `inst_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liabCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | liabCcy: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `liab_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liqPenalty` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | liqPenalty: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `liq_penalty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liqPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | liqPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `liq_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `markPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | markPx: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `mark_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `maxSpotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | maxSpotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mgnMode` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | mgnMode: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `mgn_mode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mgnRatio` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | mgnRatio: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `mgn_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `notionalUsd` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | notionalUsd: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `notional_usd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `optVal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | optVal: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `opt_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `pTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `p_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `pendingCloseOrdLiabVal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pendingCloseOrdLiabVal: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pending_close_ord_liab_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | posCcy: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `pos_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | posId: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `pos_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posSide` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | posSide: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `pos_side` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteBal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | quoteBal: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `quote_bal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteBorrowed` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | quoteBorrowed: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `quote_borrowed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteInterest` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | quoteInterest: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `quote_interest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `realizedPnl` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | realizedPnl: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `realized_pnl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `spotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | spotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `spotInUseCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | spotInUseCcy: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `spot_in_use_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `thetaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | thetaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `theta_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `thetaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | thetaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `theta_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `tradeId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | tradeId: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `trade_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | uTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `u_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplLastPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | uplLastPx: String, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `upl_last_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplRatio` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | uplRatio: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `upl_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplRatioLastPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | uplRatioLastPx: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `upl_ratio_last_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `usdPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | usdPx: Option, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `usd_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `vegaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | vegaBS: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `vega_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `vegaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | vegaPA: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `vega_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `redis_conn` and `last_ping` are never read [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct OkxMarketDataWebSocketConnector { [INFO] [stdout] | ------------------------------- fields in this struct [INFO] [stdout] 25 | redis_conn: Arc, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | last_ping: Arc>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_order_book` is never used [INFO] [stdout] --> src/connector/okx_websocket_connector.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl OkxMarketDataWebSocketConnector { [INFO] [stdout] | ------------------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn get_order_book(&self) -> Arc> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `order_book` and `tx` are never read [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct BinanceFuturesWebSocketConnector { [INFO] [stdout] | -------------------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | order_book: Arc>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | tx: Sender, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `SendError` and `OrderBookError` are never constructed [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum WebSocketError { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 58 | SendError(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 59 | UrlParseError(url::ParseError), [INFO] [stdout] 60 | OrderBookError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WebSocketError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_sender` and `get_order_book` are never used [INFO] [stdout] --> src/connector/binance_websocket_connector.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl BinanceFuturesWebSocketConnector { [INFO] [stdout] | ------------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn set_sender(&mut self, new_tx: Sender) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn get_order_book(&self) -> Arc> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OkxTradeClient` is never constructed [INFO] [stdout] --> src/connector/okx_trade_client.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct OkxTradeClient { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OkxTradeClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `handle_message`, `subscribe`, `send`, and `start_pinging` are never used [INFO] [stdout] --> src/connector/okx_trade_client.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 50 | impl OkxTradeClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 51 | pub async fn new(api_key: String, api_secret: String, passphrase: String, fill_sender: Sender) -> Result Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn subscribe(&self, channels: Vec) -> Result<(), tokio::sync::mpsc::error::SendError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub async fn send(&self, message: Message) -> Result<(), tokio::sync::mpsc::error::SendError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn start_pinging(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/transport/redis.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct RedisClient { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 7 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Buy` and `Sell` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | enum OrderSide { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 9 | Buy, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | Sell, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderSide` 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 `Market`, `Limit`, `StopMarket`, and `StopLimit` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | enum OrderType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 15 | Market, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | Limit, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | StopMarket, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | StopLimit, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderType` 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 `Live` and `Filled` are never constructed [INFO] [stdout] --> src/model/okx_order.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum OrderState { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 23 | Live, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | Filled, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderState` 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 `Net` is never constructed [INFO] [stdout] --> src/model/okx_order.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | enum PosSide { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 29 | Net, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PosSide` 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/model/okx_order.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct OkxOrder { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 33 | ref_id: Uuid, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 34 | exchange_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 35 | order_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | order_state: OrderState, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 37 | price: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 38 | size: f64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | side: OrderSide, [INFO] [stdout] | ^^^^ [INFO] [stdout] 40 | manager_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 41 | strategy: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 42 | trading_mode: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 43 | instrument: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 44 | is_live: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 45 | created_ts: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 46 | pos_side: PosSide, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | fill_size: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 48 | fill_price: f64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | is_filled: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | updated_ts: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 51 | reduce_only: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 52 | order_type: OrderType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/okx_order.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl OkxOrder { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 56 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn is_fully_filled(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn set_state(&mut self, state: OrderState) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn update_order_price(&mut self, price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn update_order_price_size(&mut self, price: f64, size: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn update_order_size(&mut self, size: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | fn update_fill_size(&mut self, fill_size: f64, fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn print(&self, message: String) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExchangeOrder` is never constructed [INFO] [stdout] --> src/model/circular_orderbook.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct ExchangeOrder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_state`, `update_fill_size`, and `to_json` are never used [INFO] [stdout] --> src/model/circular_orderbook.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl ExchangeOrder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 16 | pub fn set_state(&mut self, _state: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn update_fill_size(&mut self, _fill_size: f64, _fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn to_json(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CircularOrderBook` is never constructed [INFO] [stdout] --> src/model/circular_orderbook.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct CircularOrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/model/circular_orderbook.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl CircularOrderBook { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 43 | pub fn new(instrument_name: &str, max_order_per_side: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn print_log(&self, log: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn add_bid_order(&self, bid_order: ExchangeOrder) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn add_ask_order(&self, ask_order: ExchangeOrder) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn get_bid_queue(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_ask_queue(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn set_order_state(&self, ref_id: &str, state: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub fn get_order_list(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn get_order_index(&self, ref_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn delete_fill_list(&self, ref_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn add_fill_list(&self, ref_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn get_order(&self, ref_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn set_fill_size(&self, ref_id: &str, fill_size: f64, fill_price: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn is_ref_id_in_list(&self, ref_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn get_orderbook_dump(&self) -> serde_json::Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `trade` is never read [INFO] [stdout] --> src/Bolt_Hedger/bolt_hedger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct BoltHedger { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 13 | okx_orderbook: Receiver, [INFO] [stdout] 14 | trade: Sender, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `Bolt_Hedger` should have a snake case name [INFO] [stdout] --> src/main.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub mod Bolt_Hedger; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `bolt_hedger` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instType` should have a snake case name [INFO] [stdout] --> src/connector/okx_trade_client.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub instType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `inst_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instId` should have a snake case name [INFO] [stdout] --> src/connector/okx_trade_client.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub instId: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `inst_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `apiKey` should have a snake case name [INFO] [stdout] --> src/util/okx_auth.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | apiKey: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `api_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `availPos` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | availPos: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `avail_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `avgPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | avgPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `avg_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseBal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | baseBal: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `base_bal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseBorrowed` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | baseBorrowed: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `base_borrowed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `baseInterest` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | baseInterest: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `base_interest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bePx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | bePx: String, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `be_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bizRefId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | bizRefId: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `biz_ref_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `bizRefType` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | bizRefType: Option, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `biz_ref_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `cTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | cTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `c_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `clSpotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | clSpotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cl_spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `closeOrderAlgo` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | closeOrderAlgo: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `close_order_algo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `deltaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | deltaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `delta_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `deltaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | deltaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `delta_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `fundingFee` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | fundingFee: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `funding_fee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `gammaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | gammaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `gamma_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `gammaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | gammaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `gamma_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `idxPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | idxPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `idx_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | instId: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `inst_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `instType` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | instType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `inst_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liabCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | liabCcy: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `liab_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liqPenalty` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | liqPenalty: String, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `liq_penalty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `liqPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | liqPx: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `liq_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `markPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | markPx: String, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `mark_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `maxSpotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | maxSpotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mgnMode` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | mgnMode: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `mgn_mode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mgnRatio` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | mgnRatio: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `mgn_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `notionalUsd` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | notionalUsd: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `notional_usd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `optVal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | optVal: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `opt_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `pTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `p_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `pendingCloseOrdLiabVal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pendingCloseOrdLiabVal: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `pending_close_ord_liab_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | posCcy: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `pos_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | posId: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `pos_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `posSide` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | posSide: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `pos_side` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteBal` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | quoteBal: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `quote_bal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteBorrowed` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | quoteBorrowed: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `quote_borrowed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `quoteInterest` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | quoteInterest: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `quote_interest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `realizedPnl` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | realizedPnl: String, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `realized_pnl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `spotInUseAmt` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | spotInUseAmt: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `spot_in_use_amt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `spotInUseCcy` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | spotInUseCcy: Option, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `spot_in_use_ccy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `thetaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | thetaBS: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `theta_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `thetaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | thetaPA: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `theta_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `tradeId` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | tradeId: String, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `trade_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uTime` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | uTime: String, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `u_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplLastPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | uplLastPx: String, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `upl_last_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplRatio` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | uplRatio: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `upl_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `uplRatioLastPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | uplRatioLastPx: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `upl_ratio_last_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `usdPx` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | usdPx: Option, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `usd_px` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `vegaBS` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | vegaBS: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `vega_bs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `vegaPA` should have a snake case name [INFO] [stdout] --> src/model/okx_position.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | vegaPA: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `vega_pa` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.86s [INFO] running `Command { std: "docker" "inspect" "c4b22ee17f5dc995741327f1949493346970657137c5ae76108c1ece8ccfbc4e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c4b22ee17f5dc995741327f1949493346970657137c5ae76108c1ece8ccfbc4e", kill_on_drop: false }` [INFO] [stdout] c4b22ee17f5dc995741327f1949493346970657137c5ae76108c1ece8ccfbc4e