[INFO] cloning repository https://github.com/matiboy/bittrade-websockets [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matiboy/bittrade-websockets" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatiboy%2Fbittrade-websockets", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatiboy%2Fbittrade-websockets'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8bee2fe73527e8178591c2620506bcc5c3776d0f [INFO] testing matiboy/bittrade-websockets against master#b03b3a7ec92682be2917540b679478d41c95a30c for pr-137122-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatiboy%2Fbittrade-websockets" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/matiboy/bittrade-websockets [INFO] finished tweaking git repo https://github.com/matiboy/bittrade-websockets [INFO] tweaked toml for git repo https://github.com/matiboy/bittrade-websockets written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/matiboy/bittrade-websockets on toolchain b03b3a7ec92682be2917540b679478d41c95a30c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/matiboy/bittrade-websockets already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cliclack v0.3.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 45e4ba3aba7bfb553e504207cef300b83d566c554dd04ccc6a006844910c1f3b [INFO] running `Command { std: "docker" "start" "-a" "45e4ba3aba7bfb553e504207cef300b83d566c554dd04ccc6a006844910c1f3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "45e4ba3aba7bfb553e504207cef300b83d566c554dd04ccc6a006844910c1f3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45e4ba3aba7bfb553e504207cef300b83d566c554dd04ccc6a006844910c1f3b", kill_on_drop: false }` [INFO] [stdout] 45e4ba3aba7bfb553e504207cef300b83d566c554dd04ccc6a006844910c1f3b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e3830cb4fcf05a6a02b9c2815a960f3a6cd73ce9e051b86a84f76d4a1e789f3e [INFO] running `Command { std: "docker" "start" "-a" "e3830cb4fcf05a6a02b9c2815a960f3a6cd73ce9e051b86a84f76d4a1e789f3e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.15 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling once_cell v1.20.2 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling pkg-config v0.3.31 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling cc v1.2.10 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling log v0.4.25 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling bitflags v2.8.0 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling bytes v1.9.0 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling openssl v0.10.69 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling openssl-src v300.4.1+3.4.0 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling native-tls v0.2.13 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling itoa v1.0.14 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling openssl-sys v0.9.104 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling socket2 v0.5.8 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling mio v1.0.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling thiserror v2.0.11 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling httparse v1.9.5 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling portable-atomic v1.10.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling getrandom v0.3.1 [INFO] [stderr] Compiling rust_decimal v1.36.0 [INFO] [stderr] Compiling serde_json v1.0.137 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling http v1.2.0 [INFO] [stderr] Compiling console v0.15.10 [INFO] [stderr] Compiling anstyle-parse v0.2.6 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling anstyle-query v1.1.2 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling colorchoice v1.0.3 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling data-encoding v2.7.0 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling anstream v0.6.18 [INFO] [stderr] Compiling textwrap v0.16.1 [INFO] [stderr] Compiling indicatif v0.17.9 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.217 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.11 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling tokio v1.43.0 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling tempfile v3.16.0 [INFO] [stderr] Compiling env_logger v0.11.6 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling cliclack v0.3.5 [INFO] [stderr] Compiling rust_decimal_macros v1.36.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling tokio-util v0.7.13 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling tungstenite v0.26.1 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-tungstenite v0.26.1 [INFO] [stderr] Compiling bittrade-websockets v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `time::Duration` [INFO] [stdout] --> src/exchanges/manager.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `broadcast`, `oneshot`, and `time::sleep` [INFO] [stdout] --> src/exchanges/manager.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot}, time::sleep}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnixSocketError` and `create_socket` [INFO] [stdout] --> src/exchanges/manager.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::unix_socket::{create_socket, UnixSocketError}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `broadcast` and `select` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot, watch}}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `commands::Command` and `messages::BinancePairMessage` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use super::{commands::Command, messages::BinancePairMessage}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream::SplitSink` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::{stream::SplitSink, SinkExt, StreamExt}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoinHandle`, `JoinSet`, and `net::TcpStream` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::{net::TcpStream, select, sync::{broadcast, mpsc, oneshot, watch, RwLock}, task::{JoinHandle, JoinSet}, time::{self, sleep}}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaybeTlsStream` and `WebSocketStream` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio_tungstenite::{tungstenite::Message, MaybeTlsStream, WebSocketStream}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/channels/pair.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `watch` [INFO] [stdout] --> src/channels/pair.rs:3:45 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, watch}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message` [INFO] [stdout] --> src/channels/pair.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio_tungstenite::tungstenite::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/exchanges/manager.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 51 | ExchangeName::Binance => { [INFO] [stdout] | --------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 54 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exchange_name` [INFO] [stdout] --> src/exchanges/manager.rs:63:37 [INFO] [stdout] | [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exchange_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pair` [INFO] [stdout] --> src/exchanges/manager.rs:63:66 [INFO] [stdout] | [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | let (tx, rx) = broadcast::channel::(1024); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `receiver` [INFO] [stdout] --> src/exchanges/exchange/handler.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | let (sender, receiver) = broadcast::channel(1024); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Exit` is never constructed [INFO] [stdout] --> src/control/control.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 187 | pub enum PromptResult { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 188 | Serve(String), [INFO] [stdout] 189 | Exit, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MainError` is never used [INFO] [stdout] --> src/errors.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum MainError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exchange` and `pair` are never read [INFO] [stdout] --> src/exchanges/messages.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ExchangePairPrice { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 6 | #[serde(skip)] [INFO] [stdout] 7 | pub exchange: ExchangeName, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 8 | #[serde(skip)] [INFO] [stdout] 9 | pub pair: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExchangePairPrice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExchangeApiError` is never used [INFO] [stdout] --> src/exchanges/errors.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ExchangeApiError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_pair` is never used [INFO] [stdout] --> src/exchanges/manager.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 16 | impl ExchangeManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `public_websocket_handle` is never read [INFO] [stdout] --> src/exchanges/binance/exchange.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct BinanceExchange { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 11 | public_websocket_handle: Option>, // TODO we should not need to keep the handle anymore, the oneshot sto... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinanceExchange` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_pair` is never used [INFO] [stdout] --> src/exchanges/binance/exchange.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl BinanceExchange { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub async fn remove_pair(&mut self, pair: &String) -> () { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_default_private_url` is never used [INFO] [stdout] --> src/exchanges/binance/exchange.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn get_default_private_url() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Command` is never used [INFO] [stdout] --> src/exchanges/binance/commands.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Command { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `stop_sender`, `task`, and `sender` are never read [INFO] [stdout] --> src/exchanges/exchange/handler.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ExchangeHandler { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 10 | pub stop_sender: oneshot::Sender<()>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 11 | pub task: JoinHandle<()>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | pub sender: broadcast::Sender, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExchangeHandler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 23s [INFO] running `Command { std: "docker" "inspect" "e3830cb4fcf05a6a02b9c2815a960f3a6cd73ce9e051b86a84f76d4a1e789f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3830cb4fcf05a6a02b9c2815a960f3a6cd73ce9e051b86a84f76d4a1e789f3e", kill_on_drop: false }` [INFO] [stdout] e3830cb4fcf05a6a02b9c2815a960f3a6cd73ce9e051b86a84f76d4a1e789f3e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7222f29d75b0215e553a19d98028bce79dfe20d6c458738b9534fa94e880ee81 [INFO] running `Command { std: "docker" "start" "-a" "7222f29d75b0215e553a19d98028bce79dfe20d6c458738b9534fa94e880ee81", kill_on_drop: false }` [INFO] [stderr] Compiling bittrade-websockets v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `time::Duration` [INFO] [stdout] --> src/exchanges/manager.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `broadcast`, `oneshot`, and `time::sleep` [INFO] [stdout] --> src/exchanges/manager.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot}, time::sleep}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnixSocketError` and `create_socket` [INFO] [stdout] --> src/exchanges/manager.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::unix_socket::{create_socket, UnixSocketError}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `broadcast` and `select` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot, watch}}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `commands::Command` and `messages::BinancePairMessage` [INFO] [stdout] --> src/exchanges/binance/exchange.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use super::{commands::Command, messages::BinancePairMessage}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream::SplitSink` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use futures::{stream::SplitSink, SinkExt, StreamExt}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoinHandle`, `JoinSet`, and `net::TcpStream` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::{net::TcpStream, select, sync::{broadcast, mpsc, oneshot, watch, RwLock}, task::{JoinHandle, JoinSet}, time::{self, sleep}}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaybeTlsStream` and `WebSocketStream` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:5:47 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio_tungstenite::{tungstenite::Message, MaybeTlsStream, WebSocketStream}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::exchanges::exchange::ExchangeName` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | use crate::exchanges::exchange::ExchangeName; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `mpsc` and `watch` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:171:23 [INFO] [stdout] | [INFO] [stdout] 171 | use tokio::sync::{mpsc, watch}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/channels/pair.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `watch` [INFO] [stdout] --> src/channels/pair.rs:3:45 [INFO] [stdout] | [INFO] [stdout] 3 | use tokio::{select, sync::{broadcast, mpsc, watch}}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_tungstenite::tungstenite::Message` [INFO] [stdout] --> src/channels/pair.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio_tungstenite::tungstenite::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/exchanges/manager.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 51 | ExchangeName::Binance => { [INFO] [stdout] | --------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 54 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exchange_name` [INFO] [stdout] --> src/exchanges/manager.rs:63:37 [INFO] [stdout] | [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exchange_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pair` [INFO] [stdout] --> src/exchanges/manager.rs:63:66 [INFO] [stdout] | [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> src/exchanges/binance/websocket/public.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | let (tx, rx) = broadcast::channel::(1024); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `receiver` [INFO] [stdout] --> src/exchanges/exchange/handler.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | let (sender, receiver) = broadcast::channel(1024); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Exit` is never constructed [INFO] [stdout] --> src/control/control.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 187 | pub enum PromptResult { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 188 | Serve(String), [INFO] [stdout] 189 | Exit, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MainError` is never used [INFO] [stdout] --> src/errors.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum MainError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exchange` and `pair` are never read [INFO] [stdout] --> src/exchanges/messages.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ExchangePairPrice { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 6 | #[serde(skip)] [INFO] [stdout] 7 | pub exchange: ExchangeName, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 8 | #[serde(skip)] [INFO] [stdout] 9 | pub pair: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExchangePairPrice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExchangeApiError` is never used [INFO] [stdout] --> src/exchanges/errors.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ExchangeApiError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_pair` is never used [INFO] [stdout] --> src/exchanges/manager.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 16 | impl ExchangeManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `public_websocket_handle` is never read [INFO] [stdout] --> src/exchanges/binance/exchange.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct BinanceExchange { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 11 | public_websocket_handle: Option>, // TODO we should not need to keep the handle anymore, the oneshot sto... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinanceExchange` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `remove_pair` is never used [INFO] [stdout] --> src/exchanges/binance/exchange.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl BinanceExchange { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub async fn remove_pair(&mut self, pair: &String) -> () { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_default_private_url` is never used [INFO] [stdout] --> src/exchanges/binance/exchange.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn get_default_private_url() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `AddKey` is never constructed [INFO] [stdout] --> src/exchanges/binance/commands.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum Command { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 6 | AddKey(String, String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `stop_sender`, `task`, and `sender` are never read [INFO] [stdout] --> src/exchanges/exchange/handler.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ExchangeHandler { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 10 | pub stop_sender: oneshot::Sender<()>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 11 | pub task: JoinHandle<()>, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | pub sender: broadcast::Sender, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExchangeHandler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.53s [INFO] running `Command { std: "docker" "inspect" "7222f29d75b0215e553a19d98028bce79dfe20d6c458738b9534fa94e880ee81", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7222f29d75b0215e553a19d98028bce79dfe20d6c458738b9534fa94e880ee81", kill_on_drop: false }` [INFO] [stdout] 7222f29d75b0215e553a19d98028bce79dfe20d6c458738b9534fa94e880ee81 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 43b8a87241243f7752004e6d84de734e1e45f3704954f5d510516add1eb0a69c [INFO] running `Command { std: "docker" "start" "-a" "43b8a87241243f7752004e6d84de734e1e45f3704954f5d510516add1eb0a69c", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `time::Duration` [INFO] [stderr] --> src/exchanges/manager.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{collections::HashMap, time::Duration}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `broadcast`, `oneshot`, and `time::sleep` [INFO] [stderr] --> src/exchanges/manager.rs:3:28 [INFO] [stderr] | [INFO] [stderr] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot}, time::sleep}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `UnixSocketError` and `create_socket` [INFO] [stderr] --> src/exchanges/manager.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::unix_socket::{create_socket, UnixSocketError}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/exchanges/binance/exchange.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `broadcast` and `select` [INFO] [stderr] --> src/exchanges/binance/exchange.rs:3:13 [INFO] [stderr] | [INFO] [stderr] 3 | use tokio::{select, sync::{broadcast, mpsc, oneshot, watch}}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `commands::Command` and `messages::BinancePairMessage` [INFO] [stderr] --> src/exchanges/binance/exchange.rs:7:13 [INFO] [stderr] | [INFO] [stderr] 7 | use super::{commands::Command, messages::BinancePairMessage}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `stream::SplitSink` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use futures::{stream::SplitSink, SinkExt, StreamExt}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `JoinHandle`, `JoinSet`, and `net::TcpStream` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use tokio::{net::TcpStream, select, sync::{broadcast, mpsc, oneshot, watch, RwLock}, task::{JoinHandle, JoinSet}, time::{self, sleep}}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `MaybeTlsStream` and `WebSocketStream` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:5:47 [INFO] [stderr] | [INFO] [stderr] 5 | use tokio_tungstenite::{tungstenite::Message, MaybeTlsStream, WebSocketStream}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::exchanges::exchange::ExchangeName` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | use crate::exchanges::exchange::ExchangeName; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `mpsc` and `watch` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:171:23 [INFO] [stderr] | [INFO] [stderr] 171 | use tokio::sync::{mpsc, watch}; [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration` and `sleep` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:172:23 [INFO] [stderr] | [INFO] [stderr] 172 | use tokio::time::{sleep, Duration}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/channels/pair.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `watch` [INFO] [stderr] --> src/channels/pair.rs:3:45 [INFO] [stderr] | [INFO] [stderr] 3 | use tokio::{select, sync::{broadcast, mpsc, watch}}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio_tungstenite::tungstenite::Message` [INFO] [stderr] --> src/channels/pair.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use tokio_tungstenite::tungstenite::Message; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/exchanges/manager.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 51 | ExchangeName::Binance => { [INFO] [stderr] | --------------------- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 54 | _ => { [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `exchange_name` [INFO] [stderr] --> src/exchanges/manager.rs:63:37 [INFO] [stderr] | [INFO] [stderr] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exchange_name` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pair` [INFO] [stderr] --> src/exchanges/manager.rs:63:66 [INFO] [stderr] | [INFO] [stderr] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pair` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rx` [INFO] [stderr] --> src/exchanges/binance/websocket/public.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | let (tx, rx) = broadcast::channel::(1024); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `receiver` [INFO] [stderr] --> src/exchanges/exchange/handler.rs:18:22 [INFO] [stderr] | [INFO] [stderr] 18 | let (sender, receiver) = broadcast::channel(1024); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stderr] [INFO] [stderr] warning: variant `Exit` is never constructed [INFO] [stderr] --> src/control/control.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 187 | pub enum PromptResult { [INFO] [stderr] | ------------ variant in this enum [INFO] [stderr] 188 | Serve(String), [INFO] [stderr] 189 | Exit, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: enum `MainError` is never used [INFO] [stderr] --> src/errors.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum MainError { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `exchange` and `pair` are never read [INFO] [stderr] --> src/exchanges/messages.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct ExchangePairPrice { [INFO] [stderr] | ----------------- fields in this struct [INFO] [stderr] 6 | #[serde(skip)] [INFO] [stderr] 7 | pub exchange: ExchangeName, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 8 | #[serde(skip)] [INFO] [stderr] 9 | pub pair: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExchangePairPrice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: enum `ExchangeApiError` is never used [INFO] [stderr] --> src/exchanges/errors.rs:5:10 [INFO] [stderr] | [INFO] [stderr] 5 | pub enum ExchangeApiError { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `remove_pair` is never used [INFO] [stderr] --> src/exchanges/manager.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 16 | impl ExchangeManager { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 63 | async fn remove_pair(&mut self, exchange_name: ExchangeName, pair: String) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `public_websocket_handle` is never read [INFO] [stderr] --> src/exchanges/binance/exchange.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct BinanceExchange { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] 11 | public_websocket_handle: Option>, // TODO we should not need to keep the handle anymore, the oneshot sto... [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BinanceExchange` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `remove_pair` is never used [INFO] [stderr] --> src/exchanges/binance/exchange.rs:57:18 [INFO] [stderr] | [INFO] [stderr] 17 | impl BinanceExchange { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 57 | pub async fn remove_pair(&mut self, pair: &String) -> () { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_default_private_url` is never used [INFO] [stderr] --> src/exchanges/binance/exchange.rs:94:8 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn get_default_private_url() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `AddKey` is never constructed [INFO] [stderr] --> src/exchanges/binance/commands.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 3 | pub enum Command { [INFO] [stderr] | ------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 6 | AddKey(String, String), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `stop_sender`, `task`, and `sender` are never read [INFO] [stderr] --> src/exchanges/exchange/handler.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct ExchangeHandler { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 10 | pub stop_sender: oneshot::Sender<()>, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 11 | pub task: JoinHandle<()>, [INFO] [stderr] | ^^^^ [INFO] [stderr] 12 | pub sender: broadcast::Sender, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExchangeHandler` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `bittrade-websockets` (bin "bittrade-websockets" test) generated 32 warnings (run `cargo fix --bin "bittrade-websockets" --tests` to apply 17 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bittrade_websockets-6b1b9becfbc86614) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test exchanges::binance::commands::tests::test_try_from_add_pair ... ok [INFO] [stdout] test exchanges::binance::commands::tests::test_try_from_invalid_command ... ok [INFO] [stdout] test exchanges::binance::commands::tests::test_try_from_remove_pair ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_empty_string ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_integer ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_float ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_invalid_string ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_json_integer ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_json_number_via_value ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_json_string ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_negative_integer ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_string ... ok [INFO] [stdout] test json::deserializers::f64::tests::test_deserialize_f64_from_string_without_decimal_places ... ok [INFO] [stdout] test unix_socket::tests::test_handle_connection_messages_broadcast_channel_fail ... ok [INFO] [stdout] test unix_socket::tests::test_handle_connection_messages_broadcast_channel_lag_is_acceptable ... ok [INFO] [stdout] test unix_socket::tests::test_handle_connection_messages_disconnect ... ok [INFO] [stdout] test websocket::pong::tests::test_pong_check_fails_on_no_pong ... ok [INFO] [stdout] test websocket::pong::tests::test_pong_check_fails_when_write_closed ... ok [INFO] [stdout] test unix_socket::tests::test_keep_latest_value_updates_watch_channel ... ok [INFO] [stdout] test websocket::pong::tests::test_pong_check_sends_ping ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "43b8a87241243f7752004e6d84de734e1e45f3704954f5d510516add1eb0a69c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "43b8a87241243f7752004e6d84de734e1e45f3704954f5d510516add1eb0a69c", kill_on_drop: false }` [INFO] [stdout] 43b8a87241243f7752004e6d84de734e1e45f3704954f5d510516add1eb0a69c