[INFO] cloning repository https://github.com/shaxxeno/lmax-trading-system [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shaxxeno/lmax-trading-system" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaxxeno%2Flmax-trading-system", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaxxeno%2Flmax-trading-system'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7ba6fa2ba2b602552e525e7de299663d25e473f2 [INFO] checking shaxxeno/lmax-trading-system against master#65407954098ca3c19f0d46092cb374b5d3e9dc3c for pr-157841 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaxxeno%2Flmax-trading-system" "/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/shaxxeno/lmax-trading-system [INFO] finished tweaking git repo https://github.com/shaxxeno/lmax-trading-system [INFO] tweaked toml for git repo https://github.com/shaxxeno/lmax-trading-system written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shaxxeno/lmax-trading-system on toolchain 65407954098ca3c19f0d46092cb374b5d3e9dc3c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65407954098ca3c19f0d46092cb374b5d3e9dc3c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shaxxeno/lmax-trading-system 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" "+65407954098ca3c19f0d46092cb374b5d3e9dc3c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml_write v0.1.2 [INFO] [stderr] Downloaded toml_datetime v0.6.11 [INFO] [stderr] Downloaded toml_edit v0.22.27 [INFO] [stderr] Downloaded toml v0.8.23 [INFO] [stderr] Downloaded serde_spanned v0.6.9 [INFO] [stderr] Downloaded convert_case v0.6.0 [INFO] [stderr] Downloaded winnow v0.7.15 [INFO] [stderr] Downloaded native-tls v0.2.18 [INFO] [stderr] Downloaded tokio-native-tls v0.3.1 [INFO] [stderr] Downloaded thiserror v1.0.69 [INFO] [stderr] Downloaded typenum v1.19.0 [INFO] [stderr] Downloaded ron v0.8.1 [INFO] [stderr] Downloaded serde-xml-rs v0.5.1 [INFO] [stderr] Downloaded ordered-multimap v0.7.3 [INFO] [stderr] Downloaded thiserror-impl v1.0.69 [INFO] [stderr] Downloaded tungstenite v0.24.0 [INFO] [stderr] Downloaded dlv-list v0.5.2 [INFO] [stderr] Downloaded time-core v0.1.8 [INFO] [stderr] Downloaded json5 v0.4.1 [INFO] [stderr] Downloaded pest_derive v2.8.6 [INFO] [stderr] Downloaded security-framework-sys v2.17.0 [INFO] [stderr] Downloaded num-conv v0.2.0 [INFO] [stderr] Downloaded getrandom v0.2.17 [INFO] [stderr] Downloaded core-foundation v0.10.1 [INFO] [stderr] Downloaded openssl-sys v0.9.112 [INFO] [stderr] Downloaded siphasher v1.0.2 [INFO] [stderr] Downloaded phf_codegen v0.11.3 [INFO] [stderr] Downloaded openssl-macros v0.1.1 [INFO] [stderr] Downloaded foreign-types-shared v0.1.1 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded data-encoding v2.10.0 [INFO] [stderr] Downloaded time-macros v0.2.27 [INFO] [stderr] Downloaded phf v0.11.3 [INFO] [stderr] Downloaded const-random v0.1.18 [INFO] [stderr] Downloaded const-random-macro v0.1.16 [INFO] [stderr] Downloaded tokio-tungstenite v0.24.0 [INFO] [stderr] Downloaded schannel v0.1.29 [INFO] [stderr] Downloaded hashlink v0.8.4 [INFO] [stderr] Downloaded openssl-probe v0.2.1 [INFO] [stderr] Downloaded deranged v0.5.8 [INFO] [stderr] Downloaded phf_shared v0.11.3 [INFO] [stderr] Downloaded pest_generator v2.8.6 [INFO] [stderr] Downloaded tempfile v3.27.0 [INFO] [stderr] Downloaded futures-macro v0.3.32 [INFO] [stderr] Downloaded core_affinity v0.8.3 [INFO] [stderr] Downloaded config v0.14.1 [INFO] [stderr] Downloaded pest_meta v2.8.6 [INFO] [stderr] Downloaded xml-rs v0.8.28 [INFO] [stderr] Downloaded ucd-trie v0.1.7 [INFO] [stderr] Downloaded security-framework v3.7.0 [INFO] [stderr] Downloaded cc v1.2.57 [INFO] [stderr] Downloaded parse-zoneinfo v0.3.1 [INFO] [stderr] Downloaded nom v7.1.3 [INFO] [stderr] Downloaded pest v2.8.6 [INFO] [stderr] Downloaded time v0.3.47 [INFO] [stderr] Downloaded yaml-rust2 v0.8.1 [INFO] [stderr] Downloaded arraydeque v0.5.1 [INFO] [stderr] Downloaded pathdiff v0.2.3 [INFO] [stderr] Downloaded openssl v0.10.76 [INFO] [stderr] Downloaded ibapi v1.2.2 [INFO] [stderr] Downloaded phf_generator v0.11.3 [INFO] [stderr] Downloaded rustix v1.1.4 [INFO] [stderr] Downloaded foreign-types v0.3.2 [INFO] [stderr] Downloaded time-tz v2.0.0 [INFO] [stderr] Downloaded encoding_rs v0.8.35 [INFO] [stderr] Downloaded linux-raw-sys v0.12.1 [INFO] [stderr] Downloaded rust-ini v0.20.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30 [INFO] running `Command { std: "docker" "start" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30", 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" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30" "/opt/rustwide/cargo-home/bin/cargo" "+65407954098ca3c19f0d46092cb374b5d3e9dc3c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30" "/opt/rustwide/cargo-home/bin/cargo" "+65407954098ca3c19f0d46092cb374b5d3e9dc3c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Checking bytes v1.11.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Checking openssl-probe v0.2.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Checking socket2 v0.6.3 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking dlv-list v0.5.2 [INFO] [stderr] Checking winnow v0.7.15 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Checking data-encoding v2.10.0 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Checking arraydeque v0.5.1 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking convert_case v0.6.0 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking nu-ansi-term v0.50.3 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Checking pathdiff v0.2.3 [INFO] [stderr] Checking core_affinity v0.8.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Compiling parse-zoneinfo v0.3.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ordered-multimap v0.7.3 [INFO] [stderr] Checking hashlink v0.8.4 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Checking rust-ini v0.20.0 [INFO] [stderr] Checking yaml-rust2 v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking tungstenite v0.24.0 [INFO] [stderr] Compiling serde-xml-rs v0.5.1 [INFO] [stderr] Checking tracing-subscriber v0.3.23 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Compiling time-tz v2.0.0 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tokio-tungstenite v0.24.0 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking config v0.14.1 [INFO] [stderr] Checking ibapi v1.2.2 [INFO] [stderr] Checking trading_engine_v2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `NoopStrategy` is never constructed [INFO] [stdout] --> src/main.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct NoopStrategy; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `max_open_trades` is never read [INFO] [stdout] --> src/core/config.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct RiskSettings { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub max_open_trades: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RiskSettings` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Config`, `Feed`, `Strategy`, `Risk`, and `Unexpected` are never constructed [INFO] [stdout] --> src/core/errors.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum AppError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 5 | #[error("Configuration error {0}")] [INFO] [stdout] 6 | Config(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | Feed(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | Strategy(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Risk(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Unexpected(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bar` is never constructed [INFO] [stdout] --> src/domain/entities/bar.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Bar { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TimeFrame` is never used [INFO] [stdout] --> src/domain/entities/bar.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum TimeFrame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BarBuffer` is never constructed [INFO] [stdout] --> src/domain/entities/bar.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct BarBuffer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `duration_nanos` and `index` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl TimeFrame { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 24 | pub fn duration_nanos(&self) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn index(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Bar { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | pub fn new(open: f64, high: f64, low: f64, close: f64, volume: u64, timestamp: i64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn update(&mut self, price: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, and `get` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl BarBuffer { [INFO] [stdout] | --------------------------------- associated items in this implementation [INFO] [stdout] 65 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn push(&mut self, bar: Bar) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn get(&self, offset: usize) -> Option<&Bar> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PriceEvent` is never constructed [INFO] [stdout] --> src/domain/entities/market.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PriceEvent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderBook` is never constructed [INFO] [stdout] --> src/domain/entities/market.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/entities/market.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl OrderBook { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(symbol: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn update(&mut self, event: PriceEvent) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OrderStatus` is never used [INFO] [stdout] --> src/domain/entities/order.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum OrderStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Order` is never constructed [INFO] [stdout] --> src/domain/entities/order.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Order { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pnl` is never used [INFO] [stdout] --> src/domain/entities/trade.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Position { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 27 | pub fn pnl(&self, current_price: f64) -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `symbol_str` is never used [INFO] [stdout] --> src/domain/events/market.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl MarketEvent { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn symbol_str(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/domain/events/trading.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 3 | OpenPosition { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] ... [INFO] [stdout] 8 | timestamp: i64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/domain/events/trading.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 10 | ClosePosition { [INFO] [stdout] | ------------- field in this variant [INFO] [stdout] ... [INFO] [stdout] 14 | timestamp: i64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` 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 `ClosePartial` and `ModifyStopLoss` are never constructed [INFO] [stdout] --> src/domain/events/trading.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum TradingEvent { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | ClosePartial { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | ModifyStopLoss { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` 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: method `symbol_str` is never used [INFO] [stdout] --> src/domain/events/trading.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl TradingEvent { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 34 | pub fn symbol_str(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TFS` is never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const TFS: usize = 3; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TIMEFRAMES` is never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const TIMEFRAMES: [TimeFrame; TFS] = [TimeFrame::Min15, TimeFrame::H1, TimeFrame::H4]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BarAggregator` is never constructed [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct BarAggregator { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl BarAggregator { [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn update(&mut self, price: f64, timestamp: i64) -> [bool; TFS] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `modify_sl`, `close_partial`, and `pnl` are never used [INFO] [stdout] --> src/domain/services/position/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait PositionTracker: Send { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 8 | fn modify_sl(&mut self, new_sl: f64); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | fn close_partial(&mut self, quantity: f64); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 10 | fn pnl(&self, current_price: f64) -> f64; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_pnl`, `trade_count`, and `win_rate` are never used [INFO] [stdout] --> src/domain/services/position/tracker.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl BasicPositionTracker { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn total_pnl(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn trade_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn win_rate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_order` and `check_drawdown` are never used [INFO] [stdout] --> src/domain/services/risk/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait RiskManager: Send { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 5 | fn check_order(&self, price: f64, quantity: f64) -> Result<(), AppError>; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 6 | fn check_drawdown(&self, current_balance: f64, initial_balance: f64) -> Result<(), AppError>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_drawdown_pct` and `initial_balance` are never read [INFO] [stdout] --> src/domain/services/risk/basic.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct BasicRiskManager { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 5 | max_position_pct: f64, [INFO] [stdout] 6 | max_drawdown_pct: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | initial_balance: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `name` is never used [INFO] [stdout] --> src/domain/services/strategies/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait Strategy: Send { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 5 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `balance` is never used [INFO] [stdout] --> src/infrastructure/execution/mod.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Executor: Send { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 9 | fn balance(&self) -> f64; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `symbol` is never used [INFO] [stdout] --> src/infrastructure/feed/mod.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Feed: Send { [INFO] [stdout] | ---- method in this trait [INFO] [stdout] 9 | fn stream(&mut self, producer: Producer); [INFO] [stdout] 10 | fn symbol(&self) -> &str; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NoopFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/mod.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct NoopFeed; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinanceTradeMessage` is never constructed [INFO] [stdout] --> src/infrastructure/feed/binance.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | struct BinanceTradeMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinanceFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/binance.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct BinanceFeed { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/infrastructure/feed/binance.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BinanceFeed { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 24 | pub fn new(symbol: String, ws_url: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IBFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/ib.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct IBFeed { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `make_contract` are never used [INFO] [stdout] --> src/infrastructure/feed/ib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl IBFeed { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 19 | pub fn new(symbol: String, host: String, port: u16, client_id: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn make_contract(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NoopStrategy` is never constructed [INFO] [stdout] --> src/main.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct NoopStrategy; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `max_open_trades` is never read [INFO] [stdout] --> src/core/config.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct RiskSettings { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | pub max_open_trades: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RiskSettings` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Config`, `Feed`, `Strategy`, `Risk`, and `Unexpected` are never constructed [INFO] [stdout] --> src/core/errors.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum AppError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 5 | #[error("Configuration error {0}")] [INFO] [stdout] 6 | Config(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | Feed(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | Strategy(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Risk(String), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | Unexpected(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bar` is never constructed [INFO] [stdout] --> src/domain/entities/bar.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Bar { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TimeFrame` is never used [INFO] [stdout] --> src/domain/entities/bar.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum TimeFrame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BarBuffer` is never constructed [INFO] [stdout] --> src/domain/entities/bar.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct BarBuffer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `duration_nanos` and `index` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl TimeFrame { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 24 | pub fn duration_nanos(&self) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn index(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Bar { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | pub fn new(open: f64, high: f64, low: f64, close: f64, volume: u64, timestamp: i64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn update(&mut self, price: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, and `get` are never used [INFO] [stdout] --> src/domain/entities/bar.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 64 | impl BarBuffer { [INFO] [stdout] | --------------------------------- associated items in this implementation [INFO] [stdout] 65 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn push(&mut self, bar: Bar) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn get(&self, offset: usize) -> Option<&Bar> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PriceEvent` is never constructed [INFO] [stdout] --> src/domain/entities/market.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct PriceEvent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderBook` is never constructed [INFO] [stdout] --> src/domain/entities/market.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/entities/market.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl OrderBook { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(symbol: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn update(&mut self, event: PriceEvent) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OrderStatus` is never used [INFO] [stdout] --> src/domain/entities/order.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum OrderStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Order` is never constructed [INFO] [stdout] --> src/domain/entities/order.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Order { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pnl` is never used [INFO] [stdout] --> src/domain/entities/trade.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Position { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 27 | pub fn pnl(&self, current_price: f64) -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `symbol_str` is never used [INFO] [stdout] --> src/domain/events/market.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl MarketEvent { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn symbol_str(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/domain/events/trading.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 3 | OpenPosition { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] ... [INFO] [stdout] 8 | timestamp: i64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/domain/events/trading.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 10 | ClosePosition { [INFO] [stdout] | ------------- field in this variant [INFO] [stdout] ... [INFO] [stdout] 14 | timestamp: i64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` 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 `ClosePartial` and `ModifyStopLoss` are never constructed [INFO] [stdout] --> src/domain/events/trading.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum TradingEvent { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | ClosePartial { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | ModifyStopLoss { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradingEvent` 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: method `symbol_str` is never used [INFO] [stdout] --> src/domain/events/trading.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl TradingEvent { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 34 | pub fn symbol_str(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TFS` is never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const TFS: usize = 3; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TIMEFRAMES` is never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const TIMEFRAMES: [TimeFrame; TFS] = [TimeFrame::Min15, TimeFrame::H1, TimeFrame::H4]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BarAggregator` is never constructed [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct BarAggregator { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `update` are never used [INFO] [stdout] --> src/domain/services/bar_aggregator.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl BarAggregator { [INFO] [stdout] | ------------------------------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn update(&mut self, price: f64, timestamp: i64) -> [bool; TFS] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `modify_sl`, `close_partial`, and `pnl` are never used [INFO] [stdout] --> src/domain/services/position/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait PositionTracker: Send { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 8 | fn modify_sl(&mut self, new_sl: f64); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | fn close_partial(&mut self, quantity: f64); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 10 | fn pnl(&self, current_price: f64) -> f64; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_pnl`, `trade_count`, and `win_rate` are never used [INFO] [stdout] --> src/domain/services/position/tracker.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl BasicPositionTracker { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn total_pnl(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn trade_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn win_rate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_order` and `check_drawdown` are never used [INFO] [stdout] --> src/domain/services/risk/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait RiskManager: Send { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 5 | fn check_order(&self, price: f64, quantity: f64) -> Result<(), AppError>; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 6 | fn check_drawdown(&self, current_balance: f64, initial_balance: f64) -> Result<(), AppError>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_drawdown_pct` and `initial_balance` are never read [INFO] [stdout] --> src/domain/services/risk/basic.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct BasicRiskManager { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 5 | max_position_pct: f64, [INFO] [stdout] 6 | max_drawdown_pct: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | initial_balance: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `name` is never used [INFO] [stdout] --> src/domain/services/strategies/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait Strategy: Send { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 5 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `balance` is never used [INFO] [stdout] --> src/infrastructure/execution/mod.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait Executor: Send { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 9 | fn balance(&self) -> f64; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `symbol` is never used [INFO] [stdout] --> src/infrastructure/feed/mod.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Feed: Send { [INFO] [stdout] | ---- method in this trait [INFO] [stdout] 9 | fn stream(&mut self, producer: Producer); [INFO] [stdout] 10 | fn symbol(&self) -> &str; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NoopFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/mod.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct NoopFeed; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinanceTradeMessage` is never constructed [INFO] [stdout] --> src/infrastructure/feed/binance.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | struct BinanceTradeMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinanceFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/binance.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct BinanceFeed { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/infrastructure/feed/binance.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BinanceFeed { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 24 | pub fn new(symbol: String, ws_url: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IBFeed` is never constructed [INFO] [stdout] --> src/infrastructure/feed/ib.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct IBFeed { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `make_contract` are never used [INFO] [stdout] --> src/infrastructure/feed/ib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl IBFeed { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 19 | pub fn new(symbol: String, host: String, port: u16, client_id: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn make_contract(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.06s [INFO] running `Command { std: "docker" "inspect" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30", kill_on_drop: false }` [INFO] [stdout] 84930dcd14c0e8d11a1b720ee4c5661d11380642540db63e5107e947843e9e30