[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] testing clarenceovo/RustBot against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclarenceovo%2FRustBot" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[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-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/clarenceovo/RustBot on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 174 packages to highest compatible versions
[INFO] [stderr]       Adding base64 v0.22.1 (available: v0.23.1)
[INFO] [stderr]       Adding env_logger v0.9.3 (available: v0.11.11)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding hmac v0.12.1 (available: v0.13.0)
[INFO] [stderr]       Adding redis v0.23.5 (available: v1.7.1)
[INFO] [stderr]       Adding sha2 v0.10.9 (available: v0.11.0)
[INFO] [stderr]       Adding tokio-tungstenite v0.18.0 (available: v0.30.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: unused manifest key: package.author
[INFO] [stderr] warning: `RustBot` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa
[INFO] running `Command { std: "docker" "start" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: unused manifest key: package.author
[INFO] [stderr] warning: `RustBot` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.26
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling cfg-if v1.0.5
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.14
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]    Compiling cc v1.6.0
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling zerocopy v0.8.60
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling time-macros v0.2.32
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling powerfmt v0.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling socket2 v0.4.10
[INFO] [stderr]    Compiling crossbeam-queue v0.3.14
[INFO] [stderr]    Compiling crossbeam-channel v0.5.17
[INFO] [stderr]    Compiling humantime v2.4.0
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling env_logger v0.9.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling crossbeam v0.8.5
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tokio v1.53.2
[INFO] [stderr]    Compiling simplelog v0.12.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling uuid v1.27.0
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tungstenite v0.18.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.18.0
[INFO] [stderr]    Compiling combine v4.6.8
[INFO] [stderr]    Compiling redis v0.23.5
[INFO] [stderr]    Compiling 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(nonstandard_style)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `!: FromRedisValue` is not satisfied
[INFO] [stdout]    --> src/transport/redis.rs:69:14
[INFO] [stdout]     |
[INFO] [stdout]  69 |         pipe.query_async(&mut *conn).await?;
[INFO] [stdout]     |              ^^^^^^^^^^^ the trait `FromRedisValue` is not implemented for `!`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `FromRedisValue`:
[INFO] [stdout]               ()
[INFO] [stdout]               (T12,)
[INFO] [stdout]               (T11, T12)
[INFO] [stdout]               (T10, T11, T12)
[INFO] [stdout]               (T9, T10, T11, T12)
[INFO] [stdout]               (T8, T9, T10, T11, T12)
[INFO] [stdout]               (T7, T8, T9, T10, T11, T12)
[INFO] [stdout]               (T6, T7, T8, T9, T10, T11, T12)
[INFO] [stdout]             and 44 others
[INFO] [stdout]     = note: this error might have been caused by changes to Rust's type-inference algorithm (see issue #148922 <https://github.com/rust-lang/rust/issues/148922> for more information)
[INFO] [stdout]     = help: you might have intended to use the type `()` here instead
[INFO] [stdout] note: required by a bound in `Pipeline::query_async`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/redis-0.23.5/src/pipeline.rs:176:36
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Pipeline {
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn query_async<C, T: FromRedisValue>(&self, con: &mut C) -> RedisResult<T>
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ required by this bound in `Pipeline::query_async`
[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: 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)]` (part of `#[warn(unused)]`) 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:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let mut timestamp_record: HashMap<String, i64> = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[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: `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: `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::<OrderBooks>(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::<OrderBooks>(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::<OrderBooks>(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::<OkxOrder>(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::<OkxOrder>(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::<OrderFillData>(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::<OrderFillData>(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] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `RustBot` (bin "RustBot") due to 1 previous error; 43 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa", kill_on_drop: false }`
[INFO] [stdout] 53a6ccbd1ea7091006d2ab2a095726d3340d231a533b90fad839921729c105aa
