[INFO] fetching crate nersent_pace 0.6.22... [INFO] linting nersent_pace-0.6.22 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate nersent_pace 0.6.22 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate nersent_pace 0.6.22 [INFO] finished tweaking crates.io crate nersent_pace 0.6.22 [INFO] tweaked toml for crates.io crate nersent_pace 0.6.22 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate nersent_pace 0.6.22 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 291 packages to latest compatible versions [INFO] [stderr] Adding colored v2.2.0 (available: v3.1.1) [INFO] [stderr] Adding itertools v0.10.5 (available: v0.14.0) [INFO] [stderr] Adding kdam v0.3.0 (available: v0.6.4) [INFO] [stderr] Adding ndarray v0.15.6 (available: v0.17.2) [INFO] [stderr] Adding num-derive v0.3.3 (available: v0.4.2) [INFO] [stderr] Adding polars v0.27.2 (available: v0.53.0) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded similar-asserts v1.7.0 [INFO] [stderr] Downloaded drawille v0.3.0 [INFO] [stderr] Downloaded polars-utils v0.27.2 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded wio v0.2.2 [INFO] [stderr] Downloaded dlib v0.5.3 [INFO] [stderr] Downloaded polars-ops v0.27.2 [INFO] [stderr] Downloaded mimalloc v0.1.48 [INFO] [stderr] Downloaded streaming-decompression v0.1.2 [INFO] [stderr] Downloaded array-init-cursor v0.2.1 [INFO] [stderr] Downloaded multiversion v0.6.1 [INFO] [stderr] Downloaded terminal_size v0.2.6 [INFO] [stderr] Downloaded dwrote v0.11.5 [INFO] [stderr] Downloaded kdam v0.3.0 [INFO] [stderr] Downloaded font-kit v0.14.3 [INFO] [stderr] Downloaded comfy-table v6.2.0 [INFO] [stderr] Downloaded polars-lazy v0.27.2 [INFO] [stderr] Downloaded sysinfo v0.27.8 [INFO] [stderr] Downloaded crossterm v0.26.1 [INFO] [stderr] Downloaded polars-plan v0.27.2 [INFO] [stderr] Downloaded textplots v0.8.7 [INFO] [stderr] Downloaded arrow-format v0.8.1 [INFO] [stderr] Downloaded ethnum v1.5.2 [INFO] [stderr] Downloaded polars-io v0.27.2 [INFO] [stderr] Downloaded parquet-format-safe v0.2.4 [INFO] [stderr] Downloaded polars-arrow v0.27.2 [INFO] [stderr] Downloaded polars v0.27.2 [INFO] [stderr] Downloaded polars-pipe v0.27.2 [INFO] [stderr] Downloaded planus v0.3.1 [INFO] [stderr] Downloaded polars-core v0.27.2 [INFO] [stderr] Downloaded hash_hasher v2.0.4 [INFO] [stderr] Downloaded polars-time v0.27.2 [INFO] [stderr] Downloaded core-text v20.1.0 [INFO] [stderr] Downloaded pathfinder_simd v0.5.5 [INFO] [stderr] Downloaded libmimalloc-sys v0.1.44 [INFO] [stderr] Downloaded parquet2 v0.17.2 [INFO] [stderr] Downloaded lexical v6.1.1 [INFO] [stderr] Downloaded float-ord v0.3.2 [INFO] [stderr] Downloaded yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Downloaded pathfinder_geometry v0.5.1 [INFO] [stderr] Downloaded plotters-bitmap v0.3.7 [INFO] [stderr] Downloaded now v0.1.3 [INFO] [stderr] Downloaded strum v0.24.1 [INFO] [stderr] Downloaded foreign_vec v0.1.0 [INFO] [stderr] Downloaded multiversion-macros v0.6.1 [INFO] [stderr] Downloaded lz4 v1.28.1 [INFO] [stderr] Downloaded arrow2 v0.16.0 [INFO] [stderr] Downloaded freetype-sys v0.20.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e890765e548b9f081b799dc61a6263f73d7708283d9b31fea792cb9dd9e8e1f5 [INFO] running `Command { std: "docker" "start" "-a" "e890765e548b9f081b799dc61a6263f73d7708283d9b31fea792cb9dd9e8e1f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e890765e548b9f081b799dc61a6263f73d7708283d9b31fea792cb9dd9e8e1f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e890765e548b9f081b799dc61a6263f73d7708283d9b31fea792cb9dd9e8e1f5", kill_on_drop: false }` [INFO] [stdout] e890765e548b9f081b799dc61a6263f73d7708283d9b31fea792cb9dd9e8e1f5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1ea30350b606c8b8a9459de78da69153f55d1aaf8b45f46356db0536f1ee9969 [INFO] running `Command { std: "docker" "start" "-a" "1ea30350b606c8b8a9459de78da69153f55d1aaf8b45f46356db0536f1ee9969", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking lexical-util v0.8.5 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Compiling zstd-safe v6.0.6 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling snap v1.1.1 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking brotli-decompressor v2.5.1 [INFO] [stderr] Checking array-init-cursor v0.2.1 [INFO] [stderr] Checking streaming-decompression v0.1.2 [INFO] [stderr] Compiling arrow2 v0.16.0 [INFO] [stderr] Checking planus v0.3.1 [INFO] [stderr] Compiling seq-macro v0.3.6 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking lexical-write-integer v0.8.5 [INFO] [stderr] Checking lexical-parse-integer v0.8.6 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Compiling smartstring v1.0.1 [INFO] [stderr] Checking ethnum v1.5.2 [INFO] [stderr] Checking lexical-parse-float v0.8.5 [INFO] [stderr] Checking hash_hasher v2.0.4 [INFO] [stderr] Checking lexical-write-float v0.8.5 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking foreign_vec v0.1.0 [INFO] [stderr] Checking simdutf8 v0.1.5 [INFO] [stderr] Checking dyn-clone v1.0.20 [INFO] [stderr] Checking strength_reduce v0.2.4 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking strum v0.24.1 [INFO] [stderr] Checking xxhash-rust v0.8.15 [INFO] [stderr] Checking lexical-core v0.8.5 [INFO] [stderr] Compiling pathfinder_simd v0.5.5 [INFO] [stderr] Checking lexical v6.1.1 [INFO] [stderr] Compiling yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling rustix v0.37.28 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking brotli v3.5.0 [INFO] [stderr] Checking dlib v0.5.3 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Checking linux-raw-sys v0.3.8 [INFO] [stderr] Compiling font-kit v0.14.3 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Checking pathfinder_geometry v0.5.1 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking gif v0.12.0 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Compiling polars v0.27.2 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking sysinfo v0.27.8 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking float-ord v0.3.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking drawille v0.3.0 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking now v0.1.3 [INFO] [stderr] Checking term v0.7.0 [INFO] [stderr] Checking crossterm v0.26.1 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking polars-utils v0.27.2 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking similar v2.7.0 [INFO] [stderr] Checking ttf-parser v0.20.0 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking prettytable-rs v0.10.0 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking similar-asserts v1.7.0 [INFO] [stderr] Checking terminal_size v0.2.6 [INFO] [stderr] Checking kdam v0.3.0 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling lz4-sys v1.11.1+lz4-1.10.0 [INFO] [stderr] Compiling freetype-sys v0.20.1 [INFO] [stderr] Compiling libmimalloc-sys v0.1.44 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling multiversion-macros v0.6.1 [INFO] [stderr] Compiling strum_macros v0.24.3 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Checking mimalloc v0.1.48 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Checking textplots v0.8.7 [INFO] [stderr] Checking multiversion v0.6.1 [INFO] [stderr] Checking comfy-table v6.2.0 [INFO] [stderr] Checking arrow-format v0.8.1 [INFO] [stderr] Checking plotters-bitmap v0.3.7 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Checking zstd v0.12.4 [INFO] [stderr] Checking parquet-format-safe v0.2.4 [INFO] [stderr] Checking lz4 v1.28.1 [INFO] [stderr] Checking parquet2 v0.17.2 [INFO] [stderr] Checking polars-arrow v0.27.2 [INFO] [stderr] Checking polars-core v0.27.2 [INFO] [stderr] Checking polars-ops v0.27.2 [INFO] [stderr] Checking polars-time v0.27.2 [INFO] [stderr] Checking polars-io v0.27.2 [INFO] [stderr] Checking polars-plan v0.27.2 [INFO] [stderr] Checking polars-pipe v0.27.2 [INFO] [stderr] Checking polars-lazy v0.27.2 [INFO] [stderr] Checking nersent_pace v0.6.22 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `TradeDirection` [INFO] [stdout] --> src/content/aroon.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `statistics::normalization::rescale` [INFO] [stdout] --> src/content/awesome_oscillator.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | statistics::normalization::rescale, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/balance_of_power.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, simple_moving_average::Sma, stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/bollinger_bands_width.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | ta::{ [INFO] [stdout] 12 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | lowest_bars::LowestBars, simple_moving_average::Sma, stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/chaikin_money_flow.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/chande_kroll_stop.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | average_true_range::Atr, cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | lowest::Lowest, lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:13:39 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | }, [INFO] [stdout] 19 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/choppiness_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | average_true_range::Atr, cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest::Lowest, lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, `statistics::normalization::rescale`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/commodity_channel_index.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | statistics::normalization::rescale, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, dev::Dev, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest_bars::LowestBars, simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:13:39 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, percent_rank::Prank, rate_of_change::Roc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/coppock_curve.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, rate_of_change::Roc, weighted_moving_average::Wma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/directional_movement_index.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/donchian_channels.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | lowest::Lowest, lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/macd.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/price_oscillator.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `println` [INFO] [stdout] --> src/content/relative_strength_index.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, println}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnyProcessor`, `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/relative_strength_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnyProcessor, AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `CrossMode`, `Cross`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/relative_vigor_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::{Cross, CrossMode}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/relative_volatility_index.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/ultimate_oscillator.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/volume_oscillator.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnyProcessor, AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/vortex.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/williams_percent_range.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest::Lowest, [INFO] [stdout] 20 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hash_map::Values` and `path::Path` [INFO] [stdout] --> src/core/asset.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | collections::{hash_map::Values, HashMap}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | fmt::{Display, Formatter}, [INFO] [stdout] 4 | path::Path, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::polars::io::read_df` [INFO] [stdout] --> src/core/asset.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::polars::io::read_df; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataProvider` and `in_memory_data_provider::InMemoryDataProvider` [INFO] [stdout] --> src/core/asset.rs:11:38 [INFO] [stdout] | [INFO] [stdout] 11 | data_provider::{AnyDataProvider, DataProvider}, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | in_memory_data_provider::InMemoryDataProvider, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`, `RefCell`, `RefMut`, and `UnsafeCell` [INFO] [stdout] --> src/core/context.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | borrow::{Borrow, BorrowMut}, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] 3 | cell::{Cell, RefCell, RefMut, UnsafeCell}, [INFO] [stdout] | ^^^^^^^ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `context::Context` [INFO] [stdout] --> src/core/features.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | core::{context::Context, incremental::Incremental, trend::Trend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync::Arc` [INFO] [stdout] --> src/core/in_memory_data_provider.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{sync::Arc, time::Duration}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::prelude::DataFrame` [INFO] [stdout] --> src/core/in_memory_data_provider.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use polars::prelude::DataFrame; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::common::src::Src` [INFO] [stdout] --> src/core/incremental.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::common::src::Src; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/pinescript/common.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / /// Returns the absolute value of a number. Same as `math.abs` in PineScript. [INFO] [stdout] 17 | | // fn ps_abs(value: f64) -> f64; [INFO] [stdout] 18 | | [INFO] [stdout] | |_^ [INFO] [stdout] 19 | impl PineScriptFloat64 for f64 { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 16 | // /// Returns the absolute value of a number. Same as `math.abs` in PineScript. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ffi::OsStr`, `path::Path`, and `time::Duration` [INFO] [stdout] --> src/polars/dataframe.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::OsStr, path::Path, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CsvReader`, `CsvWriter`, `DataType`, `IsFloat`, `ParquetReader`, `ParquetWriter`, `SerReader`, `SerWriter`, `TimeUnit`, and `series::Series` [INFO] [stdout] --> src/polars/dataframe.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | CsvReader, CsvWriter, DataFrame, DataType, IsFloat, ParquetReader, ParquetWriter, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 6 | SerReader, SerWriter, TimeUnit, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 7 | }, [INFO] [stdout] 8 | series::Series, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ensure_dir` and `get_filename_extension` [INFO] [stdout] --> src/polars/dataframe.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::utils::fs::{ensure_dir, get_filename_extension}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/polars/in_memory_data_provider.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `data_provider::DataProvider` [INFO] [stdout] --> src/polars/in_memory_data_provider.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::core::{data_provider::DataProvider, in_memory_data_provider::InMemoryDataProvider}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ffi::OsStr` and `path::Path` [INFO] [stdout] --> src/polars/series.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::OsStr, path::Path, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CsvReader`, `CsvWriter`, `DataFrame`, `ParquetReader`, `ParquetWriter`, `SerReader`, `SerWriter`, and `TimeUnit` [INFO] [stdout] --> src/polars/series.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | CsvReader, CsvWriter, DataFrame, DataType, IsFloat, ParquetReader, ParquetWriter, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 6 | SerReader, SerWriter, TimeUnit, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection` and `trade_direction_from_f64` [INFO] [stdout] --> src/polars/series.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{trade_direction_from_f64, StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `row` [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use prettytable::{color, row, Attr, Cell, Row, Table}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::Arc` [INFO] [stdout] --> src/common/tests/fixnan_test.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{rc::Rc, sync::Arc}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::Arc` [INFO] [stdout] --> src/common/tests/float_series_test.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{rc::Rc, sync::Arc}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrategyEvents` and `StrategyMetrics` [INFO] [stdout] --> src/strategy/metrics/equity_metrics.rs:4:30 [INFO] [stdout] | [INFO] [stdout] 4 | strategy::{Strategy, StrategyEvents, StrategyMetrics}, [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::data_provider::DataProvider` [INFO] [stdout] --> src/common/tests/float_series_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::core::data_provider::DataProvider; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `common::fixnan::FixNan`, `context::Context`, and `in_memory_data_provider::InMemoryDataProvider` [INFO] [stdout] --> src/common/tests/float_series_test.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | common::fixnan::FixNan, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | core::{context::Context, in_memory_data_provider::InMemoryDataProvider}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TradeDirection` [INFO] [stdout] --> src/content/aroon.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `statistics::normalization::rescale` [INFO] [stdout] --> src/content/awesome_oscillator.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | statistics::normalization::rescale, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/balance_of_power.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, simple_moving_average::Sma, stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/bollinger_bands_width.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | ta::{ [INFO] [stdout] 12 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | lowest_bars::LowestBars, simple_moving_average::Sma, stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `incremental::Incremental` [INFO] [stdout] --> src/strategy/optimization.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::core::{context::Context, data_provider::AnyDataProvider, incremental::Incremental}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection` and `strategy::Strategy` [INFO] [stdout] --> src/strategy/optimization.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | strategy::Strategy, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | trade::{SignalFixture, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/chaikin_money_flow.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefCell`, `RefMut`, `Ref`, and `rc::Rc` [INFO] [stdout] --> src/strategy/strategy.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | cell::{Ref, RefCell, RefMut}, [INFO] [stdout] | ^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] 3 | rc::Rc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `common::src::ohlc4` [INFO] [stdout] --> src/strategy/strategy.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | common::src::ohlc4, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/strategy/strategy.rs:320:79 [INFO] [stdout] | [INFO] [stdout] 320 | self.events.on_trade_entry = Some(StrategyOnTradeEntryEvent { trade: trade }); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `trade` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/chande_kroll_stop.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | average_true_range::Atr, cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | lowest::Lowest, lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:13:39 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | }, [INFO] [stdout] 19 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/strategy/strategy_runner.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, collections::HashMap, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `self` [INFO] [stdout] --> src/strategy/strategy_runner.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | context::Context, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | data_provider::{self, AnyDataProvider}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradingViewMetricsData`, `TradingViewMetrics`, `strategy::Strategy`, and `trade::StrategySignal` [INFO] [stdout] --> src/strategy/strategy_runner.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | metrics::tradingview_metrics::{TradingViewMetrics, TradingViewMetricsData}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | strategy::Strategy, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | trade::StrategySignal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ColoredString` and `Colorize` [INFO] [stdout] --> src/strategy/trade.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::{ColoredString, Colorize}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/choppiness_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | average_true_range::Atr, cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest::Lowest, lowest_bars::LowestBars, sum::Sum, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, `statistics::normalization::rescale`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/commodity_channel_index.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | statistics::normalization::rescale, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 15 | cross_under_threshold::CrossUnderThreshold, dev::Dev, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | lowest_bars::LowestBars, simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:13:39 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, percent_rank::Prank, rate_of_change::Roc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::export::ahash::HashMap` [INFO] [stdout] --> src/strategy/utils.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use polars::export::ahash::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `incremental::Incremental` [INFO] [stdout] --> src/strategy/utils.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::core::{context::Context, incremental::Incremental}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::strategy::Strategy` [INFO] [stdout] --> src/strategy/utils.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::strategy::Strategy; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::prelude::IsFloat` [INFO] [stdout] --> src/ta/bars.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use polars::prelude::IsFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/coppock_curve.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | cross_under_threshold::CrossUnderThreshold, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, rate_of_change::Roc, weighted_moving_average::Wma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `MaKind`, `Ma`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, `statistics::stdev::Stdev`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/ta/commodity_channel_index.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | statistics::stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | ta::{ [INFO] [stdout] 10 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 11 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | dev::Dev, [INFO] [stdout] 14 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/directional_movement_index.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_under` [INFO] [stdout] --> src/ta/cross_over_threshold.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_over` [INFO] [stdout] --> src/ta/cross_under.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_over` [INFO] [stdout] --> src/ta/cross_under_threshold.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/content/donchian_channels.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | cross::Cross, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | cross_under_threshold::CrossUnderThreshold, highest::Highest, highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | lowest::Lowest, lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/macd.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/price_oscillator.rs:11:39 [INFO] [stdout] | [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | ta::{ [INFO] [stdout] 13 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/rate_of_change.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/running_moving_average.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `pinescript::common::PineScriptFloat64` and `utils::float::Float64Utils` [INFO] [stdout] --> src/ta/simple_moving_average.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `println` [INFO] [stdout] --> src/content/relative_strength_index.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, println}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnyProcessor`, `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/relative_strength_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnyProcessor, AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/stoch.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `CrossMode`, `Cross`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/content/relative_vigor_index.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::{Cross, CrossMode}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/sum.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/symmetrically_weighted_moving_average.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/true_range.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/relative_volatility_index.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ColoredString` [INFO] [stdout] --> src/testing/array_snapshot.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::{ColoredString, Colorize}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/ultimate_oscillator.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `sync::Arc` [INFO] [stdout] --> src/testing/fixture.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 3 | sync::Arc, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strategy::trade::TradeDirection` [INFO] [stdout] --> src/testing/fixture.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `SrcKind`, `Src`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/volume_oscillator.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnyProcessor, AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `MaKind`, `Ma`, `SrcKind`, `Src`, `TradeDirection`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/vortex.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MaKind`, `Ma`, `TradeDirection`, `cross::Cross`, `highest_bars::HighestBars`, and `lowest_bars::LowestBars` [INFO] [stdout] --> src/content/williams_percent_range.rs:12:39 [INFO] [stdout] | [INFO] [stdout] 12 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | ta::{ [INFO] [stdout] 14 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | lowest::Lowest, [INFO] [stdout] 20 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataFrameFixtureUtils` and `ta::simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/aroon_test.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | ta::simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/awesome_oscillator_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `SrcKind`, `Src`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/balance_of_power_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/bollinger_bands_pb_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/bollinger_bands_width_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `SrcKind`, `Src`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/chaikin_money_flow_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, `SrcKind`, `Src`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/chande_kroll_stop_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/chande_momentum_oscillator_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | ta::{ [INFO] [stdout] 17 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 18 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `SrcKind`, `Src`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/choppiness_index_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/commodity_channel_index_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/connors_relative_strength_index_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | ta::{ [INFO] [stdout] 17 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 18 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/coppock_curve_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, `SrcKind`, `Src`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/directional_movement_index_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 18 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, `SrcKind`, `Src`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/donchian_channels_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/macd_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/price_oscillator_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `StrategySignal`, `TradeDirection`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/relative_strength_index_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | strategy::trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] 19 | ta::{ [INFO] [stdout] 20 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 21 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, `SrcKind`, `Src`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/relative_vigor_index_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/relative_volatility_index_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/stoch_relative_strength_index_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 18 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `SrcKind`, `Src`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/ultimate_oscillator_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `SrcKind`, `Src`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/volume_oscillator_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `DataFrameFixtureUtils`, `MaKind`, `Ma`, `SrcKind`, `Src`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/vortex_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | content::{ [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AroonConfig`, `Aroon`, `AwesomeOscillatorConfig`, `AwesomeOscillator`, `MaKind`, `Ma`, `polars::dataframe::DataFrameUtils`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/content/tests/williams_percent_range_test.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | aroon::{Aroon, AroonConfig}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 9 | awesome_oscillator::{AwesomeOscillator, AwesomeOscillatorConfig}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | polars::dataframe::DataFrameUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | ta::{ [INFO] [stdout] 15 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] 16 | simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `hash_map::Values` and `path::Path` [INFO] [stdout] --> src/core/asset.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | collections::{hash_map::Values, HashMap}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | fmt::{Display, Formatter}, [INFO] [stdout] 4 | path::Path, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::polars::io::read_df` [INFO] [stdout] --> src/core/asset.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::polars::io::read_df; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataProvider` and `in_memory_data_provider::InMemoryDataProvider` [INFO] [stdout] --> src/core/asset.rs:11:38 [INFO] [stdout] | [INFO] [stdout] 11 | data_provider::{AnyDataProvider, DataProvider}, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | in_memory_data_provider::InMemoryDataProvider, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow`, `RefCell`, `RefMut`, and `UnsafeCell` [INFO] [stdout] --> src/core/context.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | borrow::{Borrow, BorrowMut}, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] 3 | cell::{Cell, RefCell, RefMut, UnsafeCell}, [INFO] [stdout] | ^^^^^^^ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `context::Context` [INFO] [stdout] --> src/core/features.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | core::{context::Context, incremental::Incremental, trend::Trend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync::Arc` [INFO] [stdout] --> src/core/in_memory_data_provider.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{sync::Arc, time::Duration}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::prelude::DataFrame` [INFO] [stdout] --> src/core/in_memory_data_provider.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use polars::prelude::DataFrame; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::common::src::Src` [INFO] [stdout] --> src/core/incremental.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::common::src::Src; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/pinescript/common.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / /// Returns the absolute value of a number. Same as `math.abs` in PineScript. [INFO] [stdout] 17 | | // fn ps_abs(value: f64) -> f64; [INFO] [stdout] 18 | | [INFO] [stdout] | |_^ [INFO] [stdout] 19 | impl PineScriptFloat64 for f64 { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 16 | // /// Returns the absolute value of a number. Same as `math.abs` in PineScript. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::Arc` [INFO] [stdout] --> src/pinescript/tests/float_test.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{rc::Rc, sync::Arc}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::common::float_series::FloatSeries` [INFO] [stdout] --> src/pinescript/tests/float_test.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::common::float_series::FloatSeries; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::data_provider::DataProvider` [INFO] [stdout] --> src/pinescript/tests/float_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::core::data_provider::DataProvider; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `common::fixnan::FixNan`, `context::Context`, and `in_memory_data_provider::InMemoryDataProvider` [INFO] [stdout] --> src/pinescript/tests/float_test.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | common::fixnan::FixNan, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | core::{context::Context, in_memory_data_provider::InMemoryDataProvider}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ffi::OsStr`, `path::Path`, and `time::Duration` [INFO] [stdout] --> src/polars/dataframe.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::OsStr, path::Path, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CsvReader`, `CsvWriter`, `DataType`, `IsFloat`, `ParquetReader`, `ParquetWriter`, `SerReader`, `SerWriter`, `TimeUnit`, and `series::Series` [INFO] [stdout] --> src/polars/dataframe.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | CsvReader, CsvWriter, DataFrame, DataType, IsFloat, ParquetReader, ParquetWriter, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 6 | SerReader, SerWriter, TimeUnit, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 7 | }, [INFO] [stdout] 8 | series::Series, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ensure_dir` and `get_filename_extension` [INFO] [stdout] --> src/polars/dataframe.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::utils::fs::{ensure_dir, get_filename_extension}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/polars/in_memory_data_provider.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `data_provider::DataProvider` [INFO] [stdout] --> src/polars/in_memory_data_provider.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::core::{data_provider::DataProvider, in_memory_data_provider::InMemoryDataProvider}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ffi::OsStr` and `path::Path` [INFO] [stdout] --> src/polars/series.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{ffi::OsStr, path::Path, time::Duration}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CsvReader`, `CsvWriter`, `DataFrame`, `ParquetReader`, `ParquetWriter`, `SerReader`, `SerWriter`, and `TimeUnit` [INFO] [stdout] --> src/polars/series.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | CsvReader, CsvWriter, DataFrame, DataType, IsFloat, ParquetReader, ParquetWriter, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 6 | SerReader, SerWriter, TimeUnit, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection` and `trade_direction_from_f64` [INFO] [stdout] --> src/polars/series.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | strategy::trade::{trade_direction_from_f64, StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `row` [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use prettytable::{color, row, Attr, Cell, Row, Table}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StrategyEvents` and `StrategyMetrics` [INFO] [stdout] --> src/strategy/metrics/equity_metrics.rs:4:30 [INFO] [stdout] | [INFO] [stdout] 4 | strategy::{Strategy, StrategyEvents, StrategyMetrics}, [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Path` and `sync::Arc` [INFO] [stdout] --> src/strategy/metrics/tests/strategy_metrics_test.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 5 | sync::Arc, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TradeDirection` [INFO] [stdout] --> src/strategy/metrics/tests/strategy_metrics_test.rs:26:37 [INFO] [stdout] | [INFO] [stdout] 26 | trade::{StrategySignal, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `incremental::Incremental` [INFO] [stdout] --> src/strategy/optimization.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::core::{context::Context, data_provider::AnyDataProvider, incremental::Incremental}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradeDirection` and `strategy::Strategy` [INFO] [stdout] --> src/strategy/optimization.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | strategy::Strategy, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | trade::{SignalFixture, TradeDirection}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefCell`, `RefMut`, `Ref`, and `rc::Rc` [INFO] [stdout] --> src/strategy/strategy.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | cell::{Ref, RefCell, RefMut}, [INFO] [stdout] | ^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] 3 | rc::Rc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `common::src::ohlc4` [INFO] [stdout] --> src/strategy/strategy.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | common::src::ohlc4, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/strategy/strategy.rs:320:79 [INFO] [stdout] | [INFO] [stdout] 320 | self.events.on_trade_entry = Some(StrategyOnTradeEntryEvent { trade: trade }); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `trade` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::HashMap` [INFO] [stdout] --> src/strategy/strategy_runner.rs:1:21 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, collections::HashMap, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `self` [INFO] [stdout] --> src/strategy/strategy_runner.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | context::Context, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | data_provider::{self, AnyDataProvider}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TradingViewMetricsData`, `TradingViewMetrics`, `strategy::Strategy`, and `trade::StrategySignal` [INFO] [stdout] --> src/strategy/strategy_runner.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | metrics::tradingview_metrics::{TradingViewMetrics, TradingViewMetricsData}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | strategy::Strategy, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | trade::StrategySignal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ColoredString` and `Colorize` [INFO] [stdout] --> src/strategy/trade.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::{ColoredString, Colorize}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::export::ahash::HashMap` [INFO] [stdout] --> src/strategy/utils.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use polars::export::ahash::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `context::Context` and `incremental::Incremental` [INFO] [stdout] --> src/strategy/utils.rs:3:19 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::core::{context::Context, incremental::Incremental}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::strategy::Strategy` [INFO] [stdout] --> src/strategy/utils.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::strategy::Strategy; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/strategy/tests/strategy_test.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fixture::Fixture` [INFO] [stdout] --> src/strategy/tests/strategy_test.rs:22:44 [INFO] [stdout] | [INFO] [stdout] 22 | array_snapshot::ArraySnapshot, fixture::Fixture, pace::format_pace_fixture_path, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::prelude::IsFloat` [INFO] [stdout] --> src/ta/bars.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use polars::prelude::IsFloat; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `IncrementalDefault`, `MaKind`, `Ma`, `SrcKind`, `Src`, `cross::Cross`, `cross_over_threshold::CrossOverThreshold`, `cross_under_threshold::CrossUnderThreshold`, `highest_bars::HighestBars`, `lowest_bars::LowestBars`, `statistics::stdev::Stdev`, and `strategy::trade::TradeDirection` [INFO] [stdout] --> src/ta/commodity_channel_index.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | }, [INFO] [stdout] 7 | statistics::stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | ta::{ [INFO] [stdout] 10 | cross::Cross, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 11 | cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | dev::Dev, [INFO] [stdout] 14 | highest_bars::HighestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | lowest_bars::LowestBars, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | moving_average::{Ma, MaKind}, [INFO] [stdout] | ^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_under` [INFO] [stdout] --> src/ta/cross_over_threshold.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_over` [INFO] [stdout] --> src/ta/cross_under.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CrossMode` and `cross_over` [INFO] [stdout] --> src/ta/cross_under_threshold.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use super::cross::{cross_over, cross_under, CrossMode}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/rate_of_change.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/running_moving_average.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `pinescript::common::PineScriptFloat64` and `utils::float::Float64Utils` [INFO] [stdout] --> src/ta/simple_moving_average.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/stoch.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/sum.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/symmetrically_weighted_moving_average.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pinescript::common::PineScriptFloat64` [INFO] [stdout] --> src/ta/true_range.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | pinescript::common::PineScriptFloat64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/average_true_range_test.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | ta::{average_true_range::Atr, exponential_moving_average::Ema}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `dev::Dev`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/bars_since_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, bars_since::BarsSince, change::Change, dev::Dev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 10 | exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/change_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{average_true_range::Atr, change::Change, exponential_moving_average::Ema}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr` and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/commodity_channel_index_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, commodity_channel_index::Cci, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cross_over_threshold::CrossOverThreshold` [INFO] [stdout] --> src/ta/tests/cross_over_test.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | cross_over::CrossOver, cross_over_threshold::CrossOverThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/cross_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | change::Change, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 10 | cross::{Cross, CrossMode}, [INFO] [stdout] 11 | exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/cross_threshold_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, change::Change, cross::CrossMode, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] 9 | cross_threshold::CrossThreshold, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/cross_under_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, change::Change, cross_under::CrossUnder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] 9 | exponential_moving_average::Ema, relative_strength_index::Rsi, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/cross_under_threshold_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, change::Change, cross_under_threshold::CrossUnderThreshold, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] 9 | exponential_moving_average::Ema, relative_strength_index::Rsi, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/dev_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{average_true_range::Atr, change::Change, dev::Dev, exponential_moving_average::Ema}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/exponential_moving_average_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/highest_bars_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/highest_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/lowest_bars_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/lowest_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/ta/tests/nan_test.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AnySrc`, `Chained`, `DataFrameFixtureUtils`, `Fixture`, `SrcKind`, `Src`, `incremental::test_incremental`, and `utils::float::Float64Utils` [INFO] [stdout] --> src/ta/tests/nan_test.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | common::src::{AnySrc, Src, SrcKind}, [INFO] [stdout] | ^^^^^^ ^^^ ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | incremental::{Chained, Incremental}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] 27 | incremental::test_incremental, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | utils::float::Float64Utils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/percent_rank_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/rate_of_change_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataFrameFixtureUtils`, `Fixture`, `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `simple_moving_average::Sma` [INFO] [stdout] --> src/ta/tests/relative_strength_index_test.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | relative_strength_index::Rsi, simple_moving_average::Sma, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fixture::{DataFrameFixtureUtils, Fixture}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Chained`, `SrcKind`, `Src`, `incremental::test_incremental`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/simple_moving_average_test.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | common::src::{Src, SrcKind}, [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] 7 | core::incremental::{Chained, Incremental}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 8 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | incremental::test_incremental, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/stdev_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | ta::{ [INFO] [stdout] 9 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, stdev::Stdev, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/stoch_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, stoch::Stoch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, `exponential_moving_average::Ema`, and `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/sum_test.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | ta::{average_true_range::Atr, change::Change, exponential_moving_average::Ema, sum::Sum}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/symmetrically_weighted_moving_average_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `average_true_range::Atr`, `change::Change`, and `exponential_moving_average::Ema` [INFO] [stdout] --> src/ta/tests/true_range_test.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | average_true_range::Atr, change::Change, exponential_moving_average::Ema, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `polars::series::SeriesCastUtils` [INFO] [stdout] --> src/ta/tests/weighted_moving_average_test.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | polars::series::SeriesCastUtils, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ColoredString` [INFO] [stdout] --> src/testing/array_snapshot.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use colored::{ColoredString, Colorize}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `sync::Arc` [INFO] [stdout] --> src/testing/fixture.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | path::{Path, PathBuf}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 3 | sync::Arc, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strategy::trade::TradeDirection` [INFO] [stdout] --> src/testing/fixture.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | strategy::trade::TradeDirection, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rc::Rc` and `sync::Arc` [INFO] [stdout] --> src/tests/integration/a_test.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{rc::Rc, sync::Arc}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::data_provider::DataProvider` [INFO] [stdout] --> src/tests/integration/a_test.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::data_provider::DataProvider; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `common::fixnan::FixNan` and `in_memory_data_provider::InMemoryDataProvider` [INFO] [stdout] --> src/tests/integration/a_test.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | common::fixnan::FixNan, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | core::{context::Context, in_memory_data_provider::InMemoryDataProvider}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_millis`: use `DateTime::from_timestamp_millis` instead [INFO] [stdout] --> src/utils/time.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | return NaiveDateTime::from_timestamp_millis(time).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead [INFO] [stdout] --> src/utils/time.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | return dt.timestamp(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/balance_of_power.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/chaikin_money_flow.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Incremental` [INFO] [stdout] --> src/strategy/strategy_runner.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | incremental::{Incremental, RunPeriod}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/choppiness_index.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/ultimate_oscillator.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/directional_movement_index.rs:11:36 [INFO] [stdout] | [INFO] [stdout] 11 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/vortex.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DataProvider` [INFO] [stdout] --> src/core/context.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | use super::data_provider::{AnyDataProvider, DataProvider}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signal` [INFO] [stdout] --> src/content/macd.rs:181:21 [INFO] [stdout] | [INFO] [stdout] 181 | let (value, signal) = self.inner.next(()); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_signal` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/content/relative_vigor_index.rs:34:16 [INFO] [stdout] | [INFO] [stdout] 34 | fn default(ctx: Context) -> Self { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_tick` [INFO] [stdout] --> src/content/vortex.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let current_tick = self.ctx.bar.index(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_tick` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | let mut offset: i32 = -1; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | let mut cell = Cell::new(text) [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/strategy/metrics/equity_metrics.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | if let Some(e) = &strategy.events.on_trade_exit { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f_raw` [INFO] [stdout] --> src/strategy/metrics/tradingview_metrics.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | let f_raw = |value: f64| format!("{:0.2}", value); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_f_raw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/strategy/metrics/tradingview_metrics.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | if let Some(e) = &strategy.events.on_trade_exit { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `qty` [INFO] [stdout] --> src/strategy/strategy.rs:204:54 [INFO] [stdout] | [INFO] [stdout] 204 | if let StrategySignal::Sized(qty) = self.unfilled_signal { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_qty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `up_trend_confirmation` and `down_trend_confirmation` are never read [INFO] [stdout] --> src/content/aroon.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct AroonStrategy { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 81 | up_trend_confirmation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 82 | down_trend_confirmation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/fixnan.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Self { [INFO] [stdout] 12 | | ctx: ctx.clone(), [INFO] [stdout] 13 | | last_non_nan_value: f64::NAN, [INFO] [stdout] 14 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 ~ Self { [INFO] [stdout] 12 + ctx: ctx.clone(), [INFO] [stdout] 13 + last_non_nan_value: f64::NAN, [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/fixnan.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return value; [INFO] [stdout] 25 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Self { [INFO] [stdout] 12 | | ctx: ctx.clone(), [INFO] [stdout] 13 | | values: Vec::with_capacity(ctx.bars), [INFO] [stdout] 14 | | current_offset: 0, [INFO] [stdout] 15 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 ~ Self { [INFO] [stdout] 12 + ctx: ctx.clone(), [INFO] [stdout] 13 + values: Vec::with_capacity(ctx.bars), [INFO] [stdout] 14 + current_offset: 0, [INFO] [stdout] 15 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return self; [INFO] [stdout] 20 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return self.values.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return self.values.len(); [INFO] [stdout] 29 + self.values.len() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return self.values.len() >= size; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return self.values.len() >= size; [INFO] [stdout] 33 + self.values.len() >= size [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | return self.values[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 - return self.values[index]; [INFO] [stdout] 42 + self.values[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | return &self.values[self.values.len() - length..]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return &self.values[self.values.len() - length..]; [INFO] [stdout] 47 + &self.values[self.values.len() - length..] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/float_series.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | return &self.values[self.current_offset - index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return &self.values[self.current_offset - index]; [INFO] [stdout] 74 + &self.values[self.current_offset - index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Self { [INFO] [stdout] 12 | | ctx: ctx.clone(), [INFO] [stdout] 13 | | values: Vec::with_capacity(ctx.bars), [INFO] [stdout] 14 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 ~ Self { [INFO] [stdout] 12 + ctx: ctx.clone(), [INFO] [stdout] 13 + values: Vec::with_capacity(ctx.bars), [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return self.values.get(index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return self.values.get(index); [INFO] [stdout] 23 + self.values.get(index) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | return &self.values; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 27 - return &self.values; [INFO] [stdout] 27 + &self.values [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return self.values.last(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 31 - return self.values.last(); [INFO] [stdout] 31 + self.values.last() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return self.values.first(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return self.values.first(); [INFO] [stdout] 35 + self.values.first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | return self.values.len(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 - return self.values.len(); [INFO] [stdout] 39 + self.values.len() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/incremental_cache.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return self.values.remove(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return self.values.remove(0); [INFO] [stdout] 44 + self.values.remove(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/common/src.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | impl Into<&'static str> for SrcKind { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 24 ~ impl From for &'static str { [INFO] [stdout] 25 ~ fn from(val: SrcKind) -> Self { [INFO] [stdout] 26 ~ return match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | / return match self { [INFO] [stdout] 27 | | SrcKind::Open => "open", [INFO] [stdout] 28 | | SrcKind::High => "high", [INFO] [stdout] 29 | | SrcKind::Low => "low", [INFO] [stdout] ... | [INFO] [stdout] 34 | | SrcKind::HL2 => "hl2", [INFO] [stdout] 35 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ match self { [INFO] [stdout] 27 + SrcKind::Open => "open", [INFO] [stdout] 28 + SrcKind::High => "high", [INFO] [stdout] 29 + SrcKind::Low => "low", [INFO] [stdout] 30 + SrcKind::Close => "close", [INFO] [stdout] 31 + SrcKind::Volume => "volume", [INFO] [stdout] 32 + SrcKind::OHLC4 => "ohlc4", [INFO] [stdout] 33 + SrcKind::HLC3 => "hlc3", [INFO] [stdout] 34 + SrcKind::HL2 => "hl2", [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return (open + high + low + close) / 4.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return (open + high + low + close) / 4.0; [INFO] [stdout] 40 + (open + high + low + close) / 4.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return (high + low + close) / 3.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return (high + low + close) / 3.0; [INFO] [stdout] 44 + (high + low + close) / 3.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | return (high + low) / 2.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return (high + low) / 2.0; [INFO] [stdout] 48 + (high + low) / 2.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return Self::from_delegate(ctx.clone(), Self::create_delegate(ctx.clone(), kind)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return Self::from_delegate(ctx.clone(), Self::create_delegate(ctx.clone(), kind)); [INFO] [stdout] 58 + Self::from_delegate(ctx.clone(), Self::create_delegate(ctx.clone(), kind)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | return Self { ctx, delegate }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - return Self { ctx, delegate }; [INFO] [stdout] 62 + Self { ctx, delegate } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return Self::from_delegate(ctx.clone(), Box::new(move || consumer.next(src.next(())))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return Self::from_delegate(ctx.clone(), Box::new(move || consumer.next(src.next(())))); [INFO] [stdout] 70 + Self::from_delegate(ctx.clone(), Box::new(move || consumer.next(src.next(())))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return self.delegate.as_mut()(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 - return self.delegate.as_mut()(); [INFO] [stdout] 96 + self.delegate.as_mut()() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | return Self { ctx }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return Self { ctx }; [INFO] [stdout] 106 + Self { ctx } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/common/src.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | / return ( [INFO] [stdout] 113 | | self.ctx.bar.high(), [INFO] [stdout] 114 | | self.ctx.bar.low(), [INFO] [stdout] 115 | | self.ctx.bar.close(), [INFO] [stdout] 116 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 112 ~ ( [INFO] [stdout] 113 + self.ctx.bar.high(), [INFO] [stdout] 114 + self.ctx.bar.low(), [INFO] [stdout] 115 + self.ctx.bar.close(), [INFO] [stdout] 116 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / return Self { [INFO] [stdout] 45 | | ctx: ctx.clone(), [INFO] [stdout] 46 | | highest_bars: HighestBars::new(ctx.clone(), config.length), [INFO] [stdout] 47 | | lowest_bars: LowestBars::new(ctx.clone(), config.length), [INFO] [stdout] 48 | | config, [INFO] [stdout] 49 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 ~ Self { [INFO] [stdout] 45 + ctx: ctx.clone(), [INFO] [stdout] 46 + highest_bars: HighestBars::new(ctx.clone(), config.length), [INFO] [stdout] 47 + lowest_bars: LowestBars::new(ctx.clone(), config.length), [INFO] [stdout] 48 + config, [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | return AroonData { up, down }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return AroonData { up, down }; [INFO] [stdout] 66 + AroonData { up, down } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | / return AroonStrategy { [INFO] [stdout] 88 | | ctx: ctx.clone(), [INFO] [stdout] 89 | | cross: Cross::new(ctx.clone()), [INFO] [stdout] 90 | | up_trend_confirmation: false, [INFO] [stdout] ... | [INFO] [stdout] 96 | | }, [INFO] [stdout] 97 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 87 ~ AroonStrategy { [INFO] [stdout] 88 + ctx: ctx.clone(), [INFO] [stdout] 89 + cross: Cross::new(ctx.clone()), [INFO] [stdout] 90 + up_trend_confirmation: false, [INFO] [stdout] 91 + down_trend_confirmation: false, [INFO] [stdout] 92 + data: AroonStrategyData { [INFO] [stdout] 93 + up_trend_strength: 0.0, [INFO] [stdout] 94 + down_trend_strength: 0.0, [INFO] [stdout] 95 + cross_mode: false, [INFO] [stdout] 96 + }, [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 158 - return StrategySignal::Hold; [INFO] [stdout] 158 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | / return Self { [INFO] [stdout] 175 | | up: f64::NAN, [INFO] [stdout] 176 | | down: f64::NAN, [INFO] [stdout] 177 | | up_trend_strength: f64::NAN, [INFO] [stdout] ... | [INFO] [stdout] 180 | | signal: StrategySignal::Hold, [INFO] [stdout] 181 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 174 ~ Self { [INFO] [stdout] 175 + up: f64::NAN, [INFO] [stdout] 176 + down: f64::NAN, [INFO] [stdout] 177 + up_trend_strength: f64::NAN, [INFO] [stdout] 178 + down_trend_strength: f64::NAN, [INFO] [stdout] 179 + trend: None, [INFO] [stdout] 180 + signal: StrategySignal::Hold, [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 - return map; [INFO] [stdout] 205 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | / return Self { [INFO] [stdout] 219 | | inner, [INFO] [stdout] 220 | | inner_strategy, [INFO] [stdout] 221 | | ctx, [INFO] [stdout] 222 | | features: AroonFeatures::default(), [INFO] [stdout] 223 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 218 ~ Self { [INFO] [stdout] 219 + inner, [INFO] [stdout] 220 + inner_strategy, [INFO] [stdout] 221 + ctx, [INFO] [stdout] 222 + features: AroonFeatures::default(), [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return self.features.clone(); [INFO] [stdout] 249 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/aroon.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | return Box::new(Incremental::<(), AroonFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 - return Box::new(Incremental::<(), AroonFeatures>::next(self, ())); [INFO] [stdout] 255 + Box::new(Incremental::<(), AroonFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / return Self { [INFO] [stdout] 51 | | ctx: ctx.clone(), [INFO] [stdout] 52 | | config, [INFO] [stdout] 53 | | prev_ao: f64::NAN, [INFO] [stdout] 54 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 50 ~ Self { [INFO] [stdout] 51 + ctx: ctx.clone(), [INFO] [stdout] 52 + config, [INFO] [stdout] 53 + prev_ao: f64::NAN, [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | return osc; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return osc; [INFO] [stdout] 71 + osc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / return Self { [INFO] [stdout] 86 | | threshold_oversold: AWESOME_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 87 | | threshold_overbought: AWESOME_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 ~ Self { [INFO] [stdout] 86 + threshold_oversold: AWESOME_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 87 + threshold_overbought: AWESOME_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | / return Self { [INFO] [stdout] 103 | | ctx: ctx.clone(), [INFO] [stdout] 104 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 105 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 106 | | config, [INFO] [stdout] 107 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 102 ~ Self { [INFO] [stdout] 103 + ctx: ctx.clone(), [INFO] [stdout] 104 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 105 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 106 + config, [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 122 - return StrategySignal::Hold; [INFO] [stdout] 122 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | / return Self { [INFO] [stdout] 136 | | value: f64::NAN, [INFO] [stdout] 137 | | trend: None, [INFO] [stdout] 138 | | signal: StrategySignal::Hold, [INFO] [stdout] 139 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 ~ Self { [INFO] [stdout] 136 + value: f64::NAN, [INFO] [stdout] 137 + trend: None, [INFO] [stdout] 138 + signal: StrategySignal::Hold, [INFO] [stdout] 139 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 154 - return map; [INFO] [stdout] 154 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | / return Self { [INFO] [stdout] 172 | | inner, [INFO] [stdout] 173 | | inner_strategy, [INFO] [stdout] 174 | | ctx, [INFO] [stdout] 175 | | features: AwesomeOscillatorFeatures::default(), [INFO] [stdout] 176 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 171 ~ Self { [INFO] [stdout] 172 + inner, [INFO] [stdout] 173 + inner_strategy, [INFO] [stdout] 174 + ctx, [INFO] [stdout] 175 + features: AwesomeOscillatorFeatures::default(), [INFO] [stdout] 176 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return self.features.clone(); [INFO] [stdout] 198 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/awesome_oscillator.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | return Box::new(Incremental::<(), AwesomeOscillatorFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 204 - return Box::new(Incremental::<(), AwesomeOscillatorFeatures>::next(self, ())); [INFO] [stdout] 204 + Box::new(Incremental::<(), AwesomeOscillatorFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return Self { ctx }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return Self { ctx }; [INFO] [stdout] 32 + Self { ctx } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return value; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return value; [INFO] [stdout] 45 + value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / return Self { [INFO] [stdout] 60 | | threshold_oversold: BALANCE_OF_POWER_THRESHOLD_OVERSOLD, [INFO] [stdout] 61 | | threshold_overbought: BALANCE_OF_POWER_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 62 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 ~ Self { [INFO] [stdout] 60 + threshold_oversold: BALANCE_OF_POWER_THRESHOLD_OVERSOLD, [INFO] [stdout] 61 + threshold_overbought: BALANCE_OF_POWER_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 62 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return Self { [INFO] [stdout] 77 | | ctx: ctx.clone(), [INFO] [stdout] 78 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 79 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 80 | | config, [INFO] [stdout] 81 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 ~ Self { [INFO] [stdout] 77 + ctx: ctx.clone(), [INFO] [stdout] 78 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 79 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 80 + config, [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 - return StrategySignal::Hold; [INFO] [stdout] 96 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | / return Self { [INFO] [stdout] 110 | | value: f64::NAN, [INFO] [stdout] 111 | | trend: None, [INFO] [stdout] 112 | | signal: StrategySignal::Hold, [INFO] [stdout] 113 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 ~ Self { [INFO] [stdout] 110 + value: f64::NAN, [INFO] [stdout] 111 + trend: None, [INFO] [stdout] 112 + signal: StrategySignal::Hold, [INFO] [stdout] 113 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 - return map; [INFO] [stdout] 128 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | / return Self { [INFO] [stdout] 146 | | inner, [INFO] [stdout] 147 | | inner_strategy, [INFO] [stdout] 148 | | ctx, [INFO] [stdout] 149 | | features: BalanceOfPowerFeatures::default(), [INFO] [stdout] 150 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 ~ Self { [INFO] [stdout] 146 + inner, [INFO] [stdout] 147 + inner_strategy, [INFO] [stdout] 148 + ctx, [INFO] [stdout] 149 + features: BalanceOfPowerFeatures::default(), [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 172 - return self.features.clone(); [INFO] [stdout] 172 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/balance_of_power.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return Box::new(Incremental::<(), BalanceOfPowerFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - return Box::new(Incremental::<(), BalanceOfPowerFeatures>::next(self, ())); [INFO] [stdout] 178 + Box::new(Incremental::<(), BalanceOfPowerFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | / return Self { [INFO] [stdout] 49 | | ctx: ctx.clone(), [INFO] [stdout] 50 | | basis: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 51 | | stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 52 | | config, [INFO] [stdout] 53 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 ~ Self { [INFO] [stdout] 49 + ctx: ctx.clone(), [INFO] [stdout] 50 + basis: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 51 + stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 52 + config, [INFO] [stdout] 53 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | return bbr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return bbr; [INFO] [stdout] 74 + bbr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | / return Self { [INFO] [stdout] 89 | | threshold_overbought: BOLLINGER_BANDS_PERCENT_B_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 90 | | threshold_oversold: BOLLINGER_BANDS_PERCENT_B_THRESHOLD_OVERSOLD, [INFO] [stdout] 91 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 88 ~ Self { [INFO] [stdout] 89 + threshold_overbought: BOLLINGER_BANDS_PERCENT_B_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 90 + threshold_oversold: BOLLINGER_BANDS_PERCENT_B_THRESHOLD_OVERSOLD, [INFO] [stdout] 91 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / return Self { [INFO] [stdout] 108 | | ctx: ctx.clone(), [INFO] [stdout] 109 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 110 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 111 | | config, [INFO] [stdout] 112 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 ~ Self { [INFO] [stdout] 108 + ctx: ctx.clone(), [INFO] [stdout] 109 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 110 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 111 + config, [INFO] [stdout] 112 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 127 - return StrategySignal::Hold; [INFO] [stdout] 127 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | / return Self { [INFO] [stdout] 141 | | value: f64::NAN, [INFO] [stdout] 142 | | trend: None, [INFO] [stdout] 143 | | signal: StrategySignal::Hold, [INFO] [stdout] 144 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 140 ~ Self { [INFO] [stdout] 141 + value: f64::NAN, [INFO] [stdout] 142 + trend: None, [INFO] [stdout] 143 + signal: StrategySignal::Hold, [INFO] [stdout] 144 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 159 - return map; [INFO] [stdout] 159 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | / return Self { [INFO] [stdout] 177 | | inner, [INFO] [stdout] 178 | | inner_strategy, [INFO] [stdout] 179 | | ctx, [INFO] [stdout] 180 | | features: BollingerBandsPercentBFeatures::default(), [INFO] [stdout] 181 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 ~ Self { [INFO] [stdout] 177 + inner, [INFO] [stdout] 178 + inner_strategy, [INFO] [stdout] 179 + ctx, [INFO] [stdout] 180 + features: BollingerBandsPercentBFeatures::default(), [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 - return self.features.clone(); [INFO] [stdout] 205 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_pb.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | / return Box::new(Incremental::<(), BollingerBandsPercentBFeatures>::next( [INFO] [stdout] 212 | | self, [INFO] [stdout] 213 | | (), [INFO] [stdout] 214 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 ~ Box::new(Incremental::<(), BollingerBandsPercentBFeatures>::next( [INFO] [stdout] 212 + self, [INFO] [stdout] 213 + (), [INFO] [stdout] 214 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | / return Self { [INFO] [stdout] 48 | | ctx: ctx.clone(), [INFO] [stdout] 49 | | basis: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 50 | | stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 51 | | config, [INFO] [stdout] 52 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 ~ Self { [INFO] [stdout] 48 + ctx: ctx.clone(), [INFO] [stdout] 49 + basis: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 50 + stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 51 + config, [INFO] [stdout] 52 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | return bbw; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return bbw; [INFO] [stdout] 71 + bbw [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | return Self { value: f64::NAN }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 82 - return Self { value: f64::NAN }; [INFO] [stdout] 82 + Self { value: f64::NAN } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - return map; [INFO] [stdout] 92 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | / return Self { [INFO] [stdout] 105 | | inner, [INFO] [stdout] 106 | | ctx, [INFO] [stdout] 107 | | features: BollingerBandsWidthFeatures::default(), [INFO] [stdout] 108 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 104 ~ Self { [INFO] [stdout] 105 + inner, [INFO] [stdout] 106 + ctx, [INFO] [stdout] 107 + features: BollingerBandsWidthFeatures::default(), [INFO] [stdout] 108 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 - return self.features.clone(); [INFO] [stdout] 121 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/bollinger_bands_width.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | / return Box::new(Incremental::<(), BollingerBandsWidthFeatures>::next( [INFO] [stdout] 128 | | self, [INFO] [stdout] 129 | | (), [INFO] [stdout] 130 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 127 ~ Box::new(Incremental::<(), BollingerBandsWidthFeatures>::next( [INFO] [stdout] 128 + self, [INFO] [stdout] 129 + (), [INFO] [stdout] 130 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / return Self { [INFO] [stdout] 45 | | ctx: ctx.clone(), [INFO] [stdout] 46 | | volume_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 47 | | ad_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 48 | | config, [INFO] [stdout] 49 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 ~ Self { [INFO] [stdout] 45 + ctx: ctx.clone(), [INFO] [stdout] 46 + volume_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 47 + ad_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 48 + config, [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return cmf; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return cmf; [INFO] [stdout] 70 + cmf [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Self { [INFO] [stdout] 85 | | threshold_oversold: CHAIKIN_MONEY_FLOW_THRESHOLD_OVERSOLD, [INFO] [stdout] 86 | | threshold_overbought: CHAIKIN_MONEY_FLOW_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 87 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Self { [INFO] [stdout] 85 + threshold_oversold: CHAIKIN_MONEY_FLOW_THRESHOLD_OVERSOLD, [INFO] [stdout] 86 + threshold_overbought: CHAIKIN_MONEY_FLOW_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 87 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return Self { [INFO] [stdout] 102 | | ctx: ctx.clone(), [INFO] [stdout] 103 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 105 | | config, [INFO] [stdout] 106 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 ~ Self { [INFO] [stdout] 102 + ctx: ctx.clone(), [INFO] [stdout] 103 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 105 + config, [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 - return StrategySignal::Hold; [INFO] [stdout] 121 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / return Self { [INFO] [stdout] 135 | | value: f64::NAN, [INFO] [stdout] 136 | | trend: None, [INFO] [stdout] 137 | | signal: StrategySignal::Hold, [INFO] [stdout] 138 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 ~ Self { [INFO] [stdout] 135 + value: f64::NAN, [INFO] [stdout] 136 + trend: None, [INFO] [stdout] 137 + signal: StrategySignal::Hold, [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 153 - return map; [INFO] [stdout] 153 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | / return Self { [INFO] [stdout] 171 | | inner, [INFO] [stdout] 172 | | inner_strategy, [INFO] [stdout] 173 | | ctx, [INFO] [stdout] 174 | | features: ChaikinMoneyFlowFeatures::default(), [INFO] [stdout] 175 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 ~ Self { [INFO] [stdout] 171 + inner, [INFO] [stdout] 172 + inner_strategy, [INFO] [stdout] 173 + ctx, [INFO] [stdout] 174 + features: ChaikinMoneyFlowFeatures::default(), [INFO] [stdout] 175 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 197 - return self.features.clone(); [INFO] [stdout] 197 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chaikin_money_flow.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | return Box::new(Incremental::<(), ChaikinMoneyFlowFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 203 - return Box::new(Incremental::<(), ChaikinMoneyFlowFeatures>::next(self, ())); [INFO] [stdout] 203 + Box::new(Incremental::<(), ChaikinMoneyFlowFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_kroll_stop.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | / return Self { [INFO] [stdout] 52 | | ctx: ctx.clone(), [INFO] [stdout] 53 | | atr: Atr::new(ctx.clone(), config.p), [INFO] [stdout] 54 | | first_high_stop_highest: Highest::new(ctx.clone(), config.p), [INFO] [stdout] ... | [INFO] [stdout] 58 | | config, [INFO] [stdout] 59 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 ~ Self { [INFO] [stdout] 52 + ctx: ctx.clone(), [INFO] [stdout] 53 + atr: Atr::new(ctx.clone(), config.p), [INFO] [stdout] 54 + first_high_stop_highest: Highest::new(ctx.clone(), config.p), [INFO] [stdout] 55 + first_low_stop_lowest: Lowest::new(ctx.clone(), config.p), [INFO] [stdout] 56 + stop_short_highest: Highest::new(ctx.clone(), config.q), [INFO] [stdout] 57 + stop_long_lowest: Lowest::new(ctx.clone(), config.q), [INFO] [stdout] 58 + config, [INFO] [stdout] 59 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_kroll_stop.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / return ChandeKrollStopData { [INFO] [stdout] 76 | | first_high_stop, [INFO] [stdout] 77 | | first_low_stop, [INFO] [stdout] 78 | | stop_short, [INFO] [stdout] 79 | | stop_long, [INFO] [stdout] 80 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 75 ~ ChandeKrollStopData { [INFO] [stdout] 76 + first_high_stop, [INFO] [stdout] 77 + first_low_stop, [INFO] [stdout] 78 + stop_short, [INFO] [stdout] 79 + stop_long, [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | / return Self { [INFO] [stdout] 55 | | ctx: ctx.clone(), [INFO] [stdout] 56 | | prev_src: f64::NAN, [INFO] [stdout] 57 | | sm1: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 58 | | sm2: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 59 | | config, [INFO] [stdout] 60 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 ~ Self { [INFO] [stdout] 55 + ctx: ctx.clone(), [INFO] [stdout] 56 + prev_src: f64::NAN, [INFO] [stdout] 57 + sm1: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 58 + sm2: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 59 + config, [INFO] [stdout] 60 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | return chande_mo; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 82 - return chande_mo; [INFO] [stdout] 82 + chande_mo [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | / return Self { [INFO] [stdout] 97 | | threshold_oversold: CHANDE_MOMENTUM_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 98 | | threshold_overbought: CHANDE_MOMENTUM_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 99 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 ~ Self { [INFO] [stdout] 97 + threshold_oversold: CHANDE_MOMENTUM_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 98 + threshold_overbought: CHANDE_MOMENTUM_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 99 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | / return Self { [INFO] [stdout] 114 | | ctx: ctx.clone(), [INFO] [stdout] 115 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 116 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 117 | | config, [INFO] [stdout] 118 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 ~ Self { [INFO] [stdout] 114 + ctx: ctx.clone(), [INFO] [stdout] 115 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 116 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 117 + config, [INFO] [stdout] 118 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 133 - return StrategySignal::Hold; [INFO] [stdout] 133 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | / return Self { [INFO] [stdout] 147 | | value: f64::NAN, [INFO] [stdout] 148 | | trend: None, [INFO] [stdout] 149 | | signal: StrategySignal::Hold, [INFO] [stdout] 150 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 ~ Self { [INFO] [stdout] 147 + value: f64::NAN, [INFO] [stdout] 148 + trend: None, [INFO] [stdout] 149 + signal: StrategySignal::Hold, [INFO] [stdout] 150 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 165 - return map; [INFO] [stdout] 165 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | / return Self { [INFO] [stdout] 183 | | inner, [INFO] [stdout] 184 | | inner_strategy, [INFO] [stdout] 185 | | ctx, [INFO] [stdout] 186 | | features: ChandeMomentumOscillatorFeatures::default(), [INFO] [stdout] 187 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 182 ~ Self { [INFO] [stdout] 183 + inner, [INFO] [stdout] 184 + inner_strategy, [INFO] [stdout] 185 + ctx, [INFO] [stdout] 186 + features: ChandeMomentumOscillatorFeatures::default(), [INFO] [stdout] 187 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 217 - return self.features.clone(); [INFO] [stdout] 217 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/chande_momentum_oscillator.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | / return Box::new(Incremental::<(), ChandeMomentumOscillatorFeatures>::next( [INFO] [stdout] 224 | | self, [INFO] [stdout] 225 | | (), [INFO] [stdout] 226 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 223 ~ Box::new(Incremental::<(), ChandeMomentumOscillatorFeatures>::next( [INFO] [stdout] 224 + self, [INFO] [stdout] 225 + (), [INFO] [stdout] 226 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / return Self { [INFO] [stdout] 50 | | ctx: ctx.clone(), [INFO] [stdout] 51 | | atr: Atr::new(ctx.clone(), 1), [INFO] [stdout] 52 | | atr_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] ... | [INFO] [stdout] 56 | | config, [INFO] [stdout] 57 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 ~ Self { [INFO] [stdout] 50 + ctx: ctx.clone(), [INFO] [stdout] 51 + atr: Atr::new(ctx.clone(), 1), [INFO] [stdout] 52 + atr_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 53 + log10_length: f64::log10(config.length as f64), [INFO] [stdout] 54 + highest: Highest::new(ctx.clone(), config.length), [INFO] [stdout] 55 + lowest: Lowest::new(ctx.clone(), config.length), [INFO] [stdout] 56 + config, [INFO] [stdout] 57 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | return chop; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return chop; [INFO] [stdout] 71 + chop [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Self { [INFO] [stdout] 85 | | value: f64::NAN, [INFO] [stdout] 86 | | trend: None, [INFO] [stdout] 87 | | signal: 0, [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Self { [INFO] [stdout] 85 + value: f64::NAN, [INFO] [stdout] 86 + trend: None, [INFO] [stdout] 87 + signal: 0, [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return map; [INFO] [stdout] 113 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | / return Self { [INFO] [stdout] 128 | | threshold_sideways: CHOPPINESS_INDEX_THRESHOLD_SIDEWAYS, [INFO] [stdout] 129 | | threshold_trending: CHOPPINESS_INDEX_THRESHOLD_TRENDING, [INFO] [stdout] 130 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 127 ~ Self { [INFO] [stdout] 128 + threshold_sideways: CHOPPINESS_INDEX_THRESHOLD_SIDEWAYS, [INFO] [stdout] 129 + threshold_trending: CHOPPINESS_INDEX_THRESHOLD_TRENDING, [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | / return Self { [INFO] [stdout] 149 | | inner, [INFO] [stdout] 150 | | ctx: ctx.clone(), [INFO] [stdout] 151 | | features: ChoppinessIndexFeatures::default(), [INFO] [stdout] 152 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_sideways), [INFO] [stdout] 153 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_trending), [INFO] [stdout] 154 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 148 ~ Self { [INFO] [stdout] 149 + inner, [INFO] [stdout] 150 + ctx: ctx.clone(), [INFO] [stdout] 151 + features: ChoppinessIndexFeatures::default(), [INFO] [stdout] 152 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_sideways), [INFO] [stdout] 153 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_trending), [INFO] [stdout] 154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 - return self.features.clone(); [INFO] [stdout] 187 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/choppiness_index.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | return Box::new(Incremental::<(), ChoppinessIndexFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 193 - return Box::new(Incremental::<(), ChoppinessIndexFeatures>::next(self, ())); [INFO] [stdout] 193 + Box::new(Incremental::<(), ChoppinessIndexFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | / return Self { [INFO] [stdout] 46 | | ctx: ctx.clone(), [INFO] [stdout] 47 | | sma: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 48 | | dev: Dev::new(ctx.clone(), config.length), [INFO] [stdout] 49 | | config, [INFO] [stdout] 50 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 ~ Self { [INFO] [stdout] 46 + ctx: ctx.clone(), [INFO] [stdout] 47 + sma: Sma::new(ctx.clone(), config.length), [INFO] [stdout] 48 + dev: Dev::new(ctx.clone(), config.length), [INFO] [stdout] 49 + config, [INFO] [stdout] 50 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | return cci; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - return cci; [INFO] [stdout] 62 + cci [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return Self { [INFO] [stdout] 77 | | threshold_oversold: COMMODITY_CHANNEL_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 | | threshold_overbought: COMMODITY_CHANNEL_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 ~ Self { [INFO] [stdout] 77 + threshold_oversold: COMMODITY_CHANNEL_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 + threshold_overbought: COMMODITY_CHANNEL_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | / return Self { [INFO] [stdout] 94 | | ctx: ctx.clone(), [INFO] [stdout] 95 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 96 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 97 | | config, [INFO] [stdout] 98 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 ~ Self { [INFO] [stdout] 94 + ctx: ctx.clone(), [INFO] [stdout] 95 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 96 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 97 + config, [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return StrategySignal::Hold; [INFO] [stdout] 113 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | / return Self { [INFO] [stdout] 127 | | value: f64::NAN, [INFO] [stdout] 128 | | trend: None, [INFO] [stdout] 129 | | signal: StrategySignal::Hold, [INFO] [stdout] 130 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 ~ Self { [INFO] [stdout] 127 + value: f64::NAN, [INFO] [stdout] 128 + trend: None, [INFO] [stdout] 129 + signal: StrategySignal::Hold, [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return map; [INFO] [stdout] 145 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Self { [INFO] [stdout] 163 | | inner, [INFO] [stdout] 164 | | inner_strategy, [INFO] [stdout] 165 | | ctx, [INFO] [stdout] 166 | | features: CommodityChannelIndexFeatures::default(), [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Self { [INFO] [stdout] 163 + inner, [INFO] [stdout] 164 + inner_strategy, [INFO] [stdout] 165 + ctx, [INFO] [stdout] 166 + features: CommodityChannelIndexFeatures::default(), [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 191 - return self.features.clone(); [INFO] [stdout] 191 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/commodity_channel_index.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | / return Box::new(Incremental::<(), CommodityChannelIndexFeatures>::next( [INFO] [stdout] 198 | | self, [INFO] [stdout] 199 | | (), [INFO] [stdout] 200 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 197 ~ Box::new(Incremental::<(), CommodityChannelIndexFeatures>::next( [INFO] [stdout] 198 + self, [INFO] [stdout] 199 + (), [INFO] [stdout] 200 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / return Self { [INFO] [stdout] 35 | | length_rsi: 3, [INFO] [stdout] 36 | | length_up_down: 2, [INFO] [stdout] 37 | | length_roc: 100, [INFO] [stdout] 38 | | src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 39 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 ~ Self { [INFO] [stdout] 35 + length_rsi: 3, [INFO] [stdout] 36 + length_up_down: 2, [INFO] [stdout] 37 + length_roc: 100, [INFO] [stdout] 38 + src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 39 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / return Self { [INFO] [stdout] 58 | | ctx: ctx.clone(), [INFO] [stdout] 59 | | rsi: Rsi::new(ctx.clone(), config.length_rsi), [INFO] [stdout] 60 | | up_down_rsi: Rsi::new(ctx.clone(), config.length_up_down), [INFO] [stdout] ... | [INFO] [stdout] 65 | | prev_ud: f64::NAN, [INFO] [stdout] 66 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 ~ Self { [INFO] [stdout] 58 + ctx: ctx.clone(), [INFO] [stdout] 59 + rsi: Rsi::new(ctx.clone(), config.length_rsi), [INFO] [stdout] 60 + up_down_rsi: Rsi::new(ctx.clone(), config.length_up_down), [INFO] [stdout] 61 + percent_rank: Prank::new(ctx.clone(), config.length_roc), [INFO] [stdout] 62 + roc: Roc::new(ctx.clone(), 1), [INFO] [stdout] 63 + config, [INFO] [stdout] 64 + prev_src: f64::NAN, [INFO] [stdout] 65 + prev_ud: f64::NAN, [INFO] [stdout] 66 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | return 1.0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return 1.0; [INFO] [stdout] 76 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | return prev_ud + 1.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return prev_ud + 1.0; [INFO] [stdout] 78 + prev_ud + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | return -1.0; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 - return -1.0; [INFO] [stdout] 81 + -1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | return prev_ud - 1.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return prev_ud - 1.0; [INFO] [stdout] 83 + prev_ud - 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return crsi; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 105 - return crsi; [INFO] [stdout] 105 + crsi [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | / return Self { [INFO] [stdout] 120 | | threshold_oversold: CONNORS_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 121 | | threshold_overbought: CONNORS_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 122 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 119 ~ Self { [INFO] [stdout] 120 + threshold_oversold: CONNORS_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 121 + threshold_overbought: CONNORS_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 122 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | / return Self { [INFO] [stdout] 137 | | ctx: ctx.clone(), [INFO] [stdout] 138 | | cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 139 | | cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 140 | | config, [INFO] [stdout] 141 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 136 ~ Self { [INFO] [stdout] 137 + ctx: ctx.clone(), [INFO] [stdout] 138 + cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 139 + cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 140 + config, [INFO] [stdout] 141 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return StrategySignal::Hold; [INFO] [stdout] 156 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | / return Self { [INFO] [stdout] 170 | | value: f64::NAN, [INFO] [stdout] 171 | | trend: None, [INFO] [stdout] 172 | | signal: StrategySignal::Hold, [INFO] [stdout] 173 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 169 ~ Self { [INFO] [stdout] 170 + value: f64::NAN, [INFO] [stdout] 171 + trend: None, [INFO] [stdout] 172 + signal: StrategySignal::Hold, [INFO] [stdout] 173 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 - return map; [INFO] [stdout] 188 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | / return Self { [INFO] [stdout] 206 | | inner, [INFO] [stdout] 207 | | inner_strategy, [INFO] [stdout] 208 | | ctx, [INFO] [stdout] 209 | | features: ConnorsRelativeStrengthIndexFeatures::default(), [INFO] [stdout] 210 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 205 ~ Self { [INFO] [stdout] 206 + inner, [INFO] [stdout] 207 + inner_strategy, [INFO] [stdout] 208 + ctx, [INFO] [stdout] 209 + features: ConnorsRelativeStrengthIndexFeatures::default(), [INFO] [stdout] 210 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 243 - return self.features.clone(); [INFO] [stdout] 243 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/connors_relative_strength_index.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | return Box::new(Incremental::<(), ConnorsRelativeStrengthIndexFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return Box::new(Incremental::<(), ConnorsRelativeStrengthIndexFeatures>::next(self, ())); [INFO] [stdout] 249 + Box::new(Incremental::<(), ConnorsRelativeStrengthIndexFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | / return Self { [INFO] [stdout] 49 | | ctx: ctx.clone(), [INFO] [stdout] 50 | | ma: Wma::new(ctx.clone(), config.length), [INFO] [stdout] 51 | | long_roc: Roc::new(ctx.clone(), config.long_roc_length), [INFO] [stdout] 52 | | short_roc: Roc::new(ctx.clone(), config.short_roc_length), [INFO] [stdout] 53 | | config, [INFO] [stdout] 54 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 ~ Self { [INFO] [stdout] 49 + ctx: ctx.clone(), [INFO] [stdout] 50 + ma: Wma::new(ctx.clone(), config.length), [INFO] [stdout] 51 + long_roc: Roc::new(ctx.clone(), config.long_roc_length), [INFO] [stdout] 52 + short_roc: Roc::new(ctx.clone(), config.short_roc_length), [INFO] [stdout] 53 + config, [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | return curve; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 - return curve; [INFO] [stdout] 67 + curve [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | / return Self { [INFO] [stdout] 82 | | threshold_oversold: COPPOCK_CURVE_THRESHOLD_OVERSOLD, [INFO] [stdout] 83 | | threshold_overbought: COPPOCK_CURVE_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 84 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 ~ Self { [INFO] [stdout] 82 + threshold_oversold: COPPOCK_CURVE_THRESHOLD_OVERSOLD, [INFO] [stdout] 83 + threshold_overbought: COPPOCK_CURVE_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | / return Self { [INFO] [stdout] 99 | | ctx: ctx.clone(), [INFO] [stdout] 100 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 101 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 102 | | config, [INFO] [stdout] 103 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 98 ~ Self { [INFO] [stdout] 99 + ctx: ctx.clone(), [INFO] [stdout] 100 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 101 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 102 + config, [INFO] [stdout] 103 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 - return StrategySignal::Hold; [INFO] [stdout] 118 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | / return Self { [INFO] [stdout] 132 | | value: f64::NAN, [INFO] [stdout] 133 | | trend: None, [INFO] [stdout] 134 | | signal: StrategySignal::Hold, [INFO] [stdout] 135 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 ~ Self { [INFO] [stdout] 132 + value: f64::NAN, [INFO] [stdout] 133 + trend: None, [INFO] [stdout] 134 + signal: StrategySignal::Hold, [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 150 - return map; [INFO] [stdout] 150 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | / return Self { [INFO] [stdout] 164 | | inner, [INFO] [stdout] 165 | | inner_strategy, [INFO] [stdout] 166 | | ctx, [INFO] [stdout] 167 | | features: CoppockCurveFeatures::default(), [INFO] [stdout] 168 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 163 ~ Self { [INFO] [stdout] 164 + inner, [INFO] [stdout] 165 + inner_strategy, [INFO] [stdout] 166 + ctx, [INFO] [stdout] 167 + features: CoppockCurveFeatures::default(), [INFO] [stdout] 168 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 190 - return self.features.clone(); [INFO] [stdout] 190 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/coppock_curve.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | return Box::new(Incremental::<(), CoppockCurveFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 196 - return Box::new(Incremental::<(), CoppockCurveFeatures>::next(self, ())); [INFO] [stdout] 196 + Box::new(Incremental::<(), CoppockCurveFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | / return Self { [INFO] [stdout] 67 | | ctx: ctx.clone(), [INFO] [stdout] 68 | | true_range: Tr::new(ctx.clone(), false), [INFO] [stdout] 69 | | true_range_rma: Rma::new(ctx.clone(), config.length), [INFO] [stdout] ... | [INFO] [stdout] 75 | | config, [INFO] [stdout] 76 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 ~ Self { [INFO] [stdout] 67 + ctx: ctx.clone(), [INFO] [stdout] 68 + true_range: Tr::new(ctx.clone(), false), [INFO] [stdout] 69 + true_range_rma: Rma::new(ctx.clone(), config.length), [INFO] [stdout] 70 + plus_dm_rma: Rma::new(ctx.clone(), config.length), [INFO] [stdout] 71 + minus_dm_rma: Rma::new(ctx.clone(), config.length), [INFO] [stdout] 72 + plus_fix_nan: FixNan::new(ctx.clone()), [INFO] [stdout] 73 + minus_fix_nan: FixNan::new(ctx.clone()), [INFO] [stdout] 74 + adx: Rma::new(ctx.clone(), config.lensig), [INFO] [stdout] 75 + config, [INFO] [stdout] 76 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | return DirectionalMovementIndexData { plus, minus, adx }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 127 - return DirectionalMovementIndexData { plus, minus, adx }; [INFO] [stdout] 127 + DirectionalMovementIndexData { plus, minus, adx } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | / return Self { [INFO] [stdout] 142 | | threshold_strong_trend: DIRECTIONAL_MOVEMENT_INDEX_THRESHOLD_STRONG_TREND, [INFO] [stdout] 143 | | threshold_weak_trend: DIRECTIONAL_MOVEMENT_INDEX_THRESHOLD_WEAK_TREND, [INFO] [stdout] 144 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 141 ~ Self { [INFO] [stdout] 142 + threshold_strong_trend: DIRECTIONAL_MOVEMENT_INDEX_THRESHOLD_STRONG_TREND, [INFO] [stdout] 143 + threshold_weak_trend: DIRECTIONAL_MOVEMENT_INDEX_THRESHOLD_WEAK_TREND, [INFO] [stdout] 144 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | / return Self { [INFO] [stdout] 158 | | ctx: ctx.clone(), [INFO] [stdout] 159 | | cross: Cross::new(ctx.clone()), [INFO] [stdout] 160 | | config, [INFO] [stdout] 161 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 ~ Self { [INFO] [stdout] 158 + ctx: ctx.clone(), [INFO] [stdout] 159 + cross: Cross::new(ctx.clone()), [INFO] [stdout] 160 + config, [INFO] [stdout] 161 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 193 - return StrategySignal::Hold; [INFO] [stdout] 193 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | / return Self { [INFO] [stdout] 209 | | adx: f64::NAN, [INFO] [stdout] 210 | | adx_plus: f64::NAN, [INFO] [stdout] 211 | | adx_minus: f64::NAN, [INFO] [stdout] 212 | | trend: None, [INFO] [stdout] 213 | | signal: StrategySignal::Hold, [INFO] [stdout] 214 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 208 ~ Self { [INFO] [stdout] 209 + adx: f64::NAN, [INFO] [stdout] 210 + adx_plus: f64::NAN, [INFO] [stdout] 211 + adx_minus: f64::NAN, [INFO] [stdout] 212 + trend: None, [INFO] [stdout] 213 + signal: StrategySignal::Hold, [INFO] [stdout] 214 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 231 - return map; [INFO] [stdout] 231 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | / return Self { [INFO] [stdout] 249 | | inner, [INFO] [stdout] 250 | | inner_strategy, [INFO] [stdout] 251 | | ctx, [INFO] [stdout] 252 | | features: DirectionalMovementIndexFeatures::default(), [INFO] [stdout] 253 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 248 ~ Self { [INFO] [stdout] 249 + inner, [INFO] [stdout] 250 + inner_strategy, [INFO] [stdout] 251 + ctx, [INFO] [stdout] 252 + features: DirectionalMovementIndexFeatures::default(), [INFO] [stdout] 253 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:297:9 [INFO] [stdout] | [INFO] [stdout] 297 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 297 - return self.features.clone(); [INFO] [stdout] 297 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/directional_movement_index.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | / return Box::new(Incremental::<(), DirectionalMovementIndexFeatures>::next( [INFO] [stdout] 304 | | self, [INFO] [stdout] 305 | | (), [INFO] [stdout] 306 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 303 ~ Box::new(Incremental::<(), DirectionalMovementIndexFeatures>::next( [INFO] [stdout] 304 + self, [INFO] [stdout] 305 + (), [INFO] [stdout] 306 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/donchian_channels.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / return Self { [INFO] [stdout] 42 | | ctx: ctx.clone(), [INFO] [stdout] 43 | | highest: Highest::new(ctx.clone(), config.length), [INFO] [stdout] 44 | | lowest: Lowest::new(ctx.clone(), config.length), [INFO] [stdout] 45 | | config, [INFO] [stdout] 46 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 ~ Self { [INFO] [stdout] 42 + ctx: ctx.clone(), [INFO] [stdout] 43 + highest: Highest::new(ctx.clone(), config.length), [INFO] [stdout] 44 + lowest: Lowest::new(ctx.clone(), config.length), [INFO] [stdout] 45 + config, [INFO] [stdout] 46 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/donchian_channels.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / return DonchianChannelsData { [INFO] [stdout] 58 | | upper, [INFO] [stdout] 59 | | basis, [INFO] [stdout] 60 | | lower, [INFO] [stdout] 61 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 ~ DonchianChannelsData { [INFO] [stdout] 58 + upper, [INFO] [stdout] 59 + basis, [INFO] [stdout] 60 + lower, [INFO] [stdout] 61 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / return Self { [INFO] [stdout] 53 | | ctx: ctx.clone(), [INFO] [stdout] 54 | | config, [INFO] [stdout] 55 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 ~ Self { [INFO] [stdout] 53 + ctx: ctx.clone(), [INFO] [stdout] 54 + config, [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | return (macd, signal); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return (macd, signal); [INFO] [stdout] 71 + (macd, signal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / return Self { [INFO] [stdout] 86 | | threshold_overbought: MACD_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 87 | | threshold_oversold: MACD_THRESHOLD_OVERSOLD, [INFO] [stdout] 88 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 ~ Self { [INFO] [stdout] 86 + threshold_overbought: MACD_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 87 + threshold_oversold: MACD_THRESHOLD_OVERSOLD, [INFO] [stdout] 88 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return Self { [INFO] [stdout] 102 | | ctx: ctx.clone(), [INFO] [stdout] 103 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 105 | | config, [INFO] [stdout] 106 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 ~ Self { [INFO] [stdout] 102 + ctx: ctx.clone(), [INFO] [stdout] 103 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 105 + config, [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 - return StrategySignal::Hold; [INFO] [stdout] 121 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | / return Self { [INFO] [stdout] 135 | | value: f64::NAN, [INFO] [stdout] 136 | | trend: None, [INFO] [stdout] 137 | | signal: StrategySignal::Hold, [INFO] [stdout] 138 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 ~ Self { [INFO] [stdout] 135 + value: f64::NAN, [INFO] [stdout] 136 + trend: None, [INFO] [stdout] 137 + signal: StrategySignal::Hold, [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 153 - return map; [INFO] [stdout] 153 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | / return Self { [INFO] [stdout] 167 | | inner, [INFO] [stdout] 168 | | inner_strategy, [INFO] [stdout] 169 | | ctx, [INFO] [stdout] 170 | | features: MacdFeatures::default(), [INFO] [stdout] 171 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 166 ~ Self { [INFO] [stdout] 167 + inner, [INFO] [stdout] 168 + inner_strategy, [INFO] [stdout] 169 + ctx, [INFO] [stdout] 170 + features: MacdFeatures::default(), [INFO] [stdout] 171 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 193 - return self.features.clone(); [INFO] [stdout] 193 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/macd.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | return Box::new(Incremental::<(), MacdFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 199 - return Box::new(Incremental::<(), MacdFeatures>::next(self, ())); [INFO] [stdout] 199 + Box::new(Incremental::<(), MacdFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | / return Self { [INFO] [stdout] 48 | | ctx: ctx.clone(), [INFO] [stdout] 49 | | config, [INFO] [stdout] 50 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 ~ Self { [INFO] [stdout] 48 + ctx: ctx.clone(), [INFO] [stdout] 49 + config, [INFO] [stdout] 50 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | return po.normalize(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 62 - return po.normalize(); [INFO] [stdout] 62 + po.normalize() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return Self { [INFO] [stdout] 77 | | threshold_oversold: PRICE_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 | | threshold_overbought: PRICE_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 ~ Self { [INFO] [stdout] 77 + threshold_oversold: PRICE_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 + threshold_overbought: PRICE_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | / return Self { [INFO] [stdout] 94 | | ctx: ctx.clone(), [INFO] [stdout] 95 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 96 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 97 | | config, [INFO] [stdout] 98 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 ~ Self { [INFO] [stdout] 94 + ctx: ctx.clone(), [INFO] [stdout] 95 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 96 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 97 + config, [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return StrategySignal::Hold; [INFO] [stdout] 113 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | / return Self { [INFO] [stdout] 127 | | value: f64::NAN, [INFO] [stdout] 128 | | trend: None, [INFO] [stdout] 129 | | signal: StrategySignal::Hold, [INFO] [stdout] 130 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 ~ Self { [INFO] [stdout] 127 + value: f64::NAN, [INFO] [stdout] 128 + trend: None, [INFO] [stdout] 129 + signal: StrategySignal::Hold, [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return map; [INFO] [stdout] 145 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Self { [INFO] [stdout] 163 | | inner, [INFO] [stdout] 164 | | inner_strategy, [INFO] [stdout] 165 | | ctx, [INFO] [stdout] 166 | | features: PriceOscillatorFeatures::default(), [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Self { [INFO] [stdout] 163 + inner, [INFO] [stdout] 164 + inner_strategy, [INFO] [stdout] 165 + ctx, [INFO] [stdout] 166 + features: PriceOscillatorFeatures::default(), [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 189 - return self.features.clone(); [INFO] [stdout] 189 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/price_oscillator.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return Box::new(Incremental::<(), PriceOscillatorFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 - return Box::new(Incremental::<(), PriceOscillatorFeatures>::next(self, ())); [INFO] [stdout] 195 + Box::new(Incremental::<(), PriceOscillatorFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / return Self { [INFO] [stdout] 35 | | length: 14, [INFO] [stdout] 36 | | src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 37 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 ~ Self { [INFO] [stdout] 35 + length: 14, [INFO] [stdout] 36 + src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 37 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | / return Self { [INFO] [stdout] 51 | | ctx: ctx.clone(), [INFO] [stdout] 52 | | rsi: Rsi::new(ctx.clone(), config.length), [INFO] [stdout] 53 | | config, [INFO] [stdout] 54 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 50 ~ Self { [INFO] [stdout] 51 + ctx: ctx.clone(), [INFO] [stdout] 52 + rsi: Rsi::new(ctx.clone(), config.length), [INFO] [stdout] 53 + config, [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return self.rsi.next(src); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return self.rsi.next(src); [INFO] [stdout] 61 + self.rsi.next(src) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return Self { [INFO] [stdout] 77 | | threshold_oversold: RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 | | threshold_overbought: RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 ~ Self { [INFO] [stdout] 77 + threshold_oversold: RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 78 + threshold_overbought: RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 79 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | / return Self { [INFO] [stdout] 93 | | ctx: ctx.clone(), [INFO] [stdout] 94 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 95 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 96 | | config, [INFO] [stdout] 97 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 ~ Self { [INFO] [stdout] 93 + ctx: ctx.clone(), [INFO] [stdout] 94 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 95 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 96 + config, [INFO] [stdout] 97 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 112 - return StrategySignal::Hold; [INFO] [stdout] 112 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / return Self { [INFO] [stdout] 126 | | value: f64::NAN, [INFO] [stdout] 127 | | trend: None, [INFO] [stdout] 128 | | signal: StrategySignal::Hold, [INFO] [stdout] 129 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 ~ Self { [INFO] [stdout] 126 + value: f64::NAN, [INFO] [stdout] 127 + trend: None, [INFO] [stdout] 128 + signal: StrategySignal::Hold, [INFO] [stdout] 129 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 144 - return map; [INFO] [stdout] 144 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | / return Self { [INFO] [stdout] 162 | | inner, [INFO] [stdout] 163 | | inner_strategy, [INFO] [stdout] 164 | | ctx, [INFO] [stdout] 165 | | features: RelativeStrengthIndexFeatures::default(), [INFO] [stdout] 166 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 ~ Self { [INFO] [stdout] 162 + inner, [INFO] [stdout] 163 + inner_strategy, [INFO] [stdout] 164 + ctx, [INFO] [stdout] 165 + features: RelativeStrengthIndexFeatures::default(), [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 196 - return self.features.clone(); [INFO] [stdout] 196 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_strength_index.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | / return Box::new(Incremental::<(), RelativeStrengthIndexFeatures>::next( [INFO] [stdout] 203 | | self, [INFO] [stdout] 204 | | (), [INFO] [stdout] 205 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 ~ Box::new(Incremental::<(), RelativeStrengthIndexFeatures>::next( [INFO] [stdout] 203 + self, [INFO] [stdout] 204 + (), [INFO] [stdout] 205 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / return Self { [INFO] [stdout] 58 | | ctx: ctx.clone(), [INFO] [stdout] 59 | | swma_close_open: Swma::new(ctx.clone()), [INFO] [stdout] 60 | | swma_high_low: Swma::new(ctx.clone()), [INFO] [stdout] ... | [INFO] [stdout] 64 | | config, [INFO] [stdout] 65 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 ~ Self { [INFO] [stdout] 58 + ctx: ctx.clone(), [INFO] [stdout] 59 + swma_close_open: Swma::new(ctx.clone()), [INFO] [stdout] 60 + swma_high_low: Swma::new(ctx.clone()), [INFO] [stdout] 61 + sum_close_open: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 62 + sum_high_low: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 63 + swma_sig: Swma::new(ctx.clone()), [INFO] [stdout] 64 + config, [INFO] [stdout] 65 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return RelativeVigorIndexData { rvi, sig }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return RelativeVigorIndexData { rvi, sig }; [INFO] [stdout] 89 + RelativeVigorIndexData { rvi, sig } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / return Self { [INFO] [stdout] 104 | | threshold_oversold: RELATIVE_VIGOR_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 105 | | threshold_overbought: RELATIVE_VIGOR_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 106 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 103 ~ Self { [INFO] [stdout] 104 + threshold_oversold: RELATIVE_VIGOR_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 105 + threshold_overbought: RELATIVE_VIGOR_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | / return Self { [INFO] [stdout] 122 | | ctx: ctx.clone(), [INFO] [stdout] 123 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 124 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] ... | [INFO] [stdout] 127 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 ~ Self { [INFO] [stdout] 122 + ctx: ctx.clone(), [INFO] [stdout] 123 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 124 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 125 + config, [INFO] [stdout] 126 + // cross: Cross::new(ctx.clone()), [INFO] [stdout] 127 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 142 - return StrategySignal::Hold; [INFO] [stdout] 142 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | / return Self { [INFO] [stdout] 167 | | value: f64::NAN, [INFO] [stdout] 168 | | trend: None, [INFO] [stdout] 169 | | signal: StrategySignal::Hold, [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 166 ~ Self { [INFO] [stdout] 167 + value: f64::NAN, [INFO] [stdout] 168 + trend: None, [INFO] [stdout] 169 + signal: StrategySignal::Hold, [INFO] [stdout] 170 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 185 - return map; [INFO] [stdout] 185 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | / return Self { [INFO] [stdout] 203 | | inner, [INFO] [stdout] 204 | | inner_strategy, [INFO] [stdout] 205 | | ctx, [INFO] [stdout] 206 | | features: RelativeVigorIndexFeatures::default(), [INFO] [stdout] 207 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 ~ Self { [INFO] [stdout] 203 + inner, [INFO] [stdout] 204 + inner_strategy, [INFO] [stdout] 205 + ctx, [INFO] [stdout] 206 + features: RelativeVigorIndexFeatures::default(), [INFO] [stdout] 207 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 235 - return self.features.clone(); [INFO] [stdout] 235 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_vigor_index.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | / return Box::new(Incremental::<(), RelativeVigorIndexFeatures>::next( [INFO] [stdout] 242 | | self, [INFO] [stdout] 243 | | (), [INFO] [stdout] 244 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 241 ~ Box::new(Incremental::<(), RelativeVigorIndexFeatures>::next( [INFO] [stdout] 242 + self, [INFO] [stdout] 243 + (), [INFO] [stdout] 244 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / return Self { [INFO] [stdout] 57 | | ctx: ctx.clone(), [INFO] [stdout] 58 | | stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 59 | | upper_ema: Ema::new(ctx.clone(), config.ma_length), [INFO] [stdout] ... | [INFO] [stdout] 62 | | prev_src: f64::NAN, [INFO] [stdout] 63 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 ~ Self { [INFO] [stdout] 57 + ctx: ctx.clone(), [INFO] [stdout] 58 + stdev: Stdev::new(ctx.clone(), config.length, true), [INFO] [stdout] 59 + upper_ema: Ema::new(ctx.clone(), config.ma_length), [INFO] [stdout] 60 + lower_ema: Ema::new(ctx.clone(), config.ma_length), [INFO] [stdout] 61 + config, [INFO] [stdout] 62 + prev_src: f64::NAN, [INFO] [stdout] 63 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return rvi; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - return rvi; [INFO] [stdout] 92 + rvi [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / return Self { [INFO] [stdout] 107 | | threshold_oversold: RELATIVE_VOLATILITY_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 108 | | threshold_overbought: RELATIVE_VOLATILITY_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 109 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 ~ Self { [INFO] [stdout] 107 + threshold_oversold: RELATIVE_VOLATILITY_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 108 + threshold_overbought: RELATIVE_VOLATILITY_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 109 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | / return Self { [INFO] [stdout] 124 | | ctx: ctx.clone(), [INFO] [stdout] 125 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 126 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 127 | | config, [INFO] [stdout] 128 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 123 ~ Self { [INFO] [stdout] 124 + ctx: ctx.clone(), [INFO] [stdout] 125 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 126 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 127 + config, [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 - return StrategySignal::Hold; [INFO] [stdout] 143 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | / return Self { [INFO] [stdout] 157 | | value: f64::NAN, [INFO] [stdout] 158 | | trend: None, [INFO] [stdout] 159 | | signal: StrategySignal::Hold, [INFO] [stdout] 160 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 ~ Self { [INFO] [stdout] 157 + value: f64::NAN, [INFO] [stdout] 158 + trend: None, [INFO] [stdout] 159 + signal: StrategySignal::Hold, [INFO] [stdout] 160 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 175 - return map; [INFO] [stdout] 175 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / return Self { [INFO] [stdout] 193 | | inner, [INFO] [stdout] 194 | | inner_strategy, [INFO] [stdout] 195 | | ctx, [INFO] [stdout] 196 | | features: RelativeVolatilityIndexFeatures::default(), [INFO] [stdout] 197 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 ~ Self { [INFO] [stdout] 193 + inner, [INFO] [stdout] 194 + inner_strategy, [INFO] [stdout] 195 + ctx, [INFO] [stdout] 196 + features: RelativeVolatilityIndexFeatures::default(), [INFO] [stdout] 197 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 227 - return self.features.clone(); [INFO] [stdout] 227 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/relative_volatility_index.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / return Box::new(Incremental::<(), RelativeVolatilityIndexFeatures>::next( [INFO] [stdout] 234 | | self, [INFO] [stdout] 235 | | (), [INFO] [stdout] 236 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 233 ~ Box::new(Incremental::<(), RelativeVolatilityIndexFeatures>::next( [INFO] [stdout] 234 + self, [INFO] [stdout] 235 + (), [INFO] [stdout] 236 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / return Self { [INFO] [stdout] 40 | | length_rsi: 14, [INFO] [stdout] 41 | | length_stoch: 14, [INFO] [stdout] 42 | | smooth_k: 3, [INFO] [stdout] 43 | | smooth_d: 3, [INFO] [stdout] 44 | | src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 45 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 ~ Self { [INFO] [stdout] 40 + length_rsi: 14, [INFO] [stdout] 41 + length_stoch: 14, [INFO] [stdout] 42 + smooth_k: 3, [INFO] [stdout] 43 + smooth_d: 3, [INFO] [stdout] 44 + src: Src::new(ctx.clone(), SrcKind::Close).to_box(), [INFO] [stdout] 45 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | / return Self { [INFO] [stdout] 66 | | ctx: ctx.clone(), [INFO] [stdout] 67 | | rsi: Rsi::new(ctx.clone(), config.length_rsi), [INFO] [stdout] 68 | | k_stoch: Stoch::new(ctx.clone(), config.length_stoch), [INFO] [stdout] ... | [INFO] [stdout] 71 | | config, [INFO] [stdout] 72 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 65 ~ Self { [INFO] [stdout] 66 + ctx: ctx.clone(), [INFO] [stdout] 67 + rsi: Rsi::new(ctx.clone(), config.length_rsi), [INFO] [stdout] 68 + k_stoch: Stoch::new(ctx.clone(), config.length_stoch), [INFO] [stdout] 69 + k_sma: Sma::new(ctx.clone(), config.smooth_k), [INFO] [stdout] 70 + d_sma: Sma::new(ctx.clone(), config.smooth_d), [INFO] [stdout] 71 + config, [INFO] [stdout] 72 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | return StochRelativeStrengthIndexData { k: k_sma, d: d_sma }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 85 - return StochRelativeStrengthIndexData { k: k_sma, d: d_sma }; [INFO] [stdout] 85 + StochRelativeStrengthIndexData { k: k_sma, d: d_sma } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / return Self { [INFO] [stdout] 100 | | threshold_oversold: STOCH_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 101 | | threshold_overbought: STOCH_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 102 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 ~ Self { [INFO] [stdout] 100 + threshold_oversold: STOCH_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERSOLD, [INFO] [stdout] 101 + threshold_overbought: STOCH_RELATIVE_STRENGTH_INDEX_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | / return Self { [INFO] [stdout] 117 | | ctx: ctx.clone(), [INFO] [stdout] 118 | | cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 119 | | cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 120 | | config, [INFO] [stdout] 121 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 116 ~ Self { [INFO] [stdout] 117 + ctx: ctx.clone(), [INFO] [stdout] 118 + cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 119 + cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 120 + config, [INFO] [stdout] 121 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 138 - return StrategySignal::Hold; [INFO] [stdout] 138 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | / return Self { [INFO] [stdout] 152 | | k: f64::NAN, [INFO] [stdout] 153 | | trend: None, [INFO] [stdout] 154 | | signal: StrategySignal::Hold, [INFO] [stdout] 155 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 151 ~ Self { [INFO] [stdout] 152 + k: f64::NAN, [INFO] [stdout] 153 + trend: None, [INFO] [stdout] 154 + signal: StrategySignal::Hold, [INFO] [stdout] 155 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 - return map; [INFO] [stdout] 170 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | / return Self { [INFO] [stdout] 188 | | inner, [INFO] [stdout] 189 | | inner_strategy, [INFO] [stdout] 190 | | ctx, [INFO] [stdout] 191 | | features: StochRelativeStrengthIndexFeatures::default(), [INFO] [stdout] 192 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 ~ Self { [INFO] [stdout] 188 + inner, [INFO] [stdout] 189 + inner_strategy, [INFO] [stdout] 190 + ctx, [INFO] [stdout] 191 + features: StochRelativeStrengthIndexFeatures::default(), [INFO] [stdout] 192 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 224 - return self.features.clone(); [INFO] [stdout] 224 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/stoch_relative_strength_index.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | / return Box::new(Incremental::<(), StochRelativeStrengthIndexFeatures>::next( [INFO] [stdout] 231 | | self, [INFO] [stdout] 232 | | (), [INFO] [stdout] 233 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 230 ~ Box::new(Incremental::<(), StochRelativeStrengthIndexFeatures>::next( [INFO] [stdout] 231 + self, [INFO] [stdout] 232 + (), [INFO] [stdout] 233 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | / return Self { [INFO] [stdout] 59 | | ctx: ctx.clone(), [INFO] [stdout] 60 | | short_sum_bp: Sum::new(ctx.clone(), config.short_length), [INFO] [stdout] 61 | | short_sum_tr: Sum::new(ctx.clone(), config.short_length), [INFO] [stdout] ... | [INFO] [stdout] 66 | | config, [INFO] [stdout] 67 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 ~ Self { [INFO] [stdout] 59 + ctx: ctx.clone(), [INFO] [stdout] 60 + short_sum_bp: Sum::new(ctx.clone(), config.short_length), [INFO] [stdout] 61 + short_sum_tr: Sum::new(ctx.clone(), config.short_length), [INFO] [stdout] 62 + mid_sum_bp: Sum::new(ctx.clone(), config.mid_length), [INFO] [stdout] 63 + mid_sum_tr: Sum::new(ctx.clone(), config.mid_length), [INFO] [stdout] 64 + long_sum_bp: Sum::new(ctx.clone(), config.long_length), [INFO] [stdout] 65 + long_sum_tr: Sum::new(ctx.clone(), config.long_length), [INFO] [stdout] 66 + config, [INFO] [stdout] 67 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | return uo; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 - return uo; [INFO] [stdout] 99 + uo [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | / return Self { [INFO] [stdout] 114 | | threshold_oversold: ULTIMATE_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 115 | | threshold_overbought: ULTIMATE_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 116 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 ~ Self { [INFO] [stdout] 114 + threshold_oversold: ULTIMATE_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 115 + threshold_overbought: ULTIMATE_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 116 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / return Self { [INFO] [stdout] 131 | | ctx: ctx.clone(), [INFO] [stdout] 132 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 133 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 134 | | config, [INFO] [stdout] 135 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 ~ Self { [INFO] [stdout] 131 + ctx: ctx.clone(), [INFO] [stdout] 132 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 133 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 134 + config, [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 150 - return StrategySignal::Hold; [INFO] [stdout] 150 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | / return Self { [INFO] [stdout] 164 | | value: f64::NAN, [INFO] [stdout] 165 | | trend: None, [INFO] [stdout] 166 | | signal: StrategySignal::Hold, [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 163 ~ Self { [INFO] [stdout] 164 + value: f64::NAN, [INFO] [stdout] 165 + trend: None, [INFO] [stdout] 166 + signal: StrategySignal::Hold, [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 182 - return map; [INFO] [stdout] 182 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / return Self { [INFO] [stdout] 200 | | inner, [INFO] [stdout] 201 | | inner_strategy, [INFO] [stdout] 202 | | ctx, [INFO] [stdout] 203 | | features: UltimateOscillatorFeatures::default(), [INFO] [stdout] 204 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 199 ~ Self { [INFO] [stdout] 200 + inner, [INFO] [stdout] 201 + inner_strategy, [INFO] [stdout] 202 + ctx, [INFO] [stdout] 203 + features: UltimateOscillatorFeatures::default(), [INFO] [stdout] 204 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return self.features.clone(); [INFO] [stdout] 232 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/ultimate_oscillator.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | / return Box::new(Incremental::<(), UltimateOscillatorFeatures>::next( [INFO] [stdout] 239 | | self, [INFO] [stdout] 240 | | (), [INFO] [stdout] 241 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 238 ~ Box::new(Incremental::<(), UltimateOscillatorFeatures>::next( [INFO] [stdout] 239 + self, [INFO] [stdout] 240 + (), [INFO] [stdout] 241 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | / return Self { [INFO] [stdout] 49 | | ctx: ctx.clone(), [INFO] [stdout] 50 | | config, [INFO] [stdout] 51 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 ~ Self { [INFO] [stdout] 49 + ctx: ctx.clone(), [INFO] [stdout] 50 + config, [INFO] [stdout] 51 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | return osc; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - return osc; [INFO] [stdout] 64 + osc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / return Self { [INFO] [stdout] 79 | | threshold_oversold: VOLUME_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 80 | | threshold_overbought: VOLUME_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 81 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 ~ Self { [INFO] [stdout] 79 + threshold_oversold: VOLUME_OSCILLATOR_THRESHOLD_OVERSOLD, [INFO] [stdout] 80 + threshold_overbought: VOLUME_OSCILLATOR_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | / return Self { [INFO] [stdout] 95 | | ctx: ctx.clone(), [INFO] [stdout] 96 | | cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 97 | | cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 98 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 94 ~ Self { [INFO] [stdout] 95 + ctx: ctx.clone(), [INFO] [stdout] 96 + cross_over: CrossOverThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 97 + cross_under: CrossUnderThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 113 - return StrategySignal::Hold; [INFO] [stdout] 113 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | / return Self { [INFO] [stdout] 127 | | value: f64::NAN, [INFO] [stdout] 128 | | trend: None, [INFO] [stdout] 129 | | signal: StrategySignal::Hold, [INFO] [stdout] 130 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 ~ Self { [INFO] [stdout] 127 + value: f64::NAN, [INFO] [stdout] 128 + trend: None, [INFO] [stdout] 129 + signal: StrategySignal::Hold, [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return map; [INFO] [stdout] 145 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Self { [INFO] [stdout] 163 | | inner, [INFO] [stdout] 164 | | inner_strategy, [INFO] [stdout] 165 | | ctx, [INFO] [stdout] 166 | | features: VolumeOscillatorFeatures::default(), [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Self { [INFO] [stdout] 163 + inner, [INFO] [stdout] 164 + inner_strategy, [INFO] [stdout] 165 + ctx, [INFO] [stdout] 166 + features: VolumeOscillatorFeatures::default(), [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 - return self.features.clone(); [INFO] [stdout] 195 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/volume_oscillator.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | return Box::new(Incremental::<(), VolumeOscillatorFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 201 - return Box::new(Incremental::<(), VolumeOscillatorFeatures>::next(self, ())); [INFO] [stdout] 201 + Box::new(Incremental::<(), VolumeOscillatorFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | / return Self { [INFO] [stdout] 52 | | ctx: ctx.clone(), [INFO] [stdout] 53 | | vmp_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 54 | | vmm_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] ... | [INFO] [stdout] 57 | | config, [INFO] [stdout] 58 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 ~ Self { [INFO] [stdout] 52 + ctx: ctx.clone(), [INFO] [stdout] 53 + vmp_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 54 + vmm_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 55 + atr_sum: Sum::new(ctx.clone(), config.length), [INFO] [stdout] 56 + atr: Atr::new(ctx.clone(), 1), [INFO] [stdout] 57 + config, [INFO] [stdout] 58 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / return VortexData { [INFO] [stdout] 83 | | plus: vip, [INFO] [stdout] 84 | | minus: vim, [INFO] [stdout] 85 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 82 ~ VortexData { [INFO] [stdout] 83 + plus: vip, [INFO] [stdout] 84 + minus: vim, [INFO] [stdout] 85 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | / return Self { [INFO] [stdout] 98 | | ctx: ctx.clone(), [INFO] [stdout] 99 | | cross: Cross::new(ctx.clone()), [INFO] [stdout] 100 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 97 ~ Self { [INFO] [stdout] 98 + ctx: ctx.clone(), [INFO] [stdout] 99 + cross: Cross::new(ctx.clone()), [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 116 - return StrategySignal::Hold; [INFO] [stdout] 116 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / return Self { [INFO] [stdout] 131 | | vortex_plus: f64::NAN, [INFO] [stdout] 132 | | vortex_minus: f64::NAN, [INFO] [stdout] 133 | | trend: None, [INFO] [stdout] 134 | | signal: StrategySignal::Hold, [INFO] [stdout] 135 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 ~ Self { [INFO] [stdout] 131 + vortex_plus: f64::NAN, [INFO] [stdout] 132 + vortex_minus: f64::NAN, [INFO] [stdout] 133 + trend: None, [INFO] [stdout] 134 + signal: StrategySignal::Hold, [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 151 - return map; [INFO] [stdout] 151 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | / return Self { [INFO] [stdout] 165 | | inner, [INFO] [stdout] 166 | | inner_strategy, [INFO] [stdout] 167 | | ctx, [INFO] [stdout] 168 | | features: VortexFeatures::default(), [INFO] [stdout] 169 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 164 ~ Self { [INFO] [stdout] 165 + inner, [INFO] [stdout] 166 + inner_strategy, [INFO] [stdout] 167 + ctx, [INFO] [stdout] 168 + features: VortexFeatures::default(), [INFO] [stdout] 169 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 - return self.features.clone(); [INFO] [stdout] 192 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/vortex.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return Box::new(Incremental::<(), VortexFeatures>::next(self, ())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 198 - return Box::new(Incremental::<(), VortexFeatures>::next(self, ())); [INFO] [stdout] 198 + Box::new(Incremental::<(), VortexFeatures>::next(self, ())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / return Self { [INFO] [stdout] 53 | | ctx: ctx.clone(), [INFO] [stdout] 54 | | highest: Highest::new(ctx.clone(), config.length), [INFO] [stdout] 55 | | lowest: Lowest::new(ctx.clone(), config.length), [INFO] [stdout] 56 | | config, [INFO] [stdout] 57 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 ~ Self { [INFO] [stdout] 53 + ctx: ctx.clone(), [INFO] [stdout] 54 + highest: Highest::new(ctx.clone(), config.length), [INFO] [stdout] 55 + lowest: Lowest::new(ctx.clone(), config.length), [INFO] [stdout] 56 + config, [INFO] [stdout] 57 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return pr; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return pr; [INFO] [stdout] 69 + pr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / return Self { [INFO] [stdout] 84 | | threshold_oversold: WILLIAMS_PERCENT_RANGE_THRESHOLD_OVERSOLD, [INFO] [stdout] 85 | | threshold_overbought: WILLIAMS_PERCENT_RANGE_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 86 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ Self { [INFO] [stdout] 84 + threshold_oversold: WILLIAMS_PERCENT_RANGE_THRESHOLD_OVERSOLD, [INFO] [stdout] 85 + threshold_overbought: WILLIAMS_PERCENT_RANGE_THRESHOLD_OVERBOUGHT, [INFO] [stdout] 86 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / return Self { [INFO] [stdout] 101 | | ctx: ctx.clone(), [INFO] [stdout] 102 | | cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 103 | | cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 | | config, [INFO] [stdout] 105 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 100 ~ Self { [INFO] [stdout] 101 + ctx: ctx.clone(), [INFO] [stdout] 102 + cross_overbought: CrossOverThreshold::new(ctx.clone(), config.threshold_overbought), [INFO] [stdout] 103 + cross_oversold: CrossUnderThreshold::new(ctx.clone(), config.threshold_oversold), [INFO] [stdout] 104 + config, [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return StrategySignal::Hold; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return StrategySignal::Hold; [INFO] [stdout] 120 + StrategySignal::Hold [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | / return Self { [INFO] [stdout] 134 | | value: f64::NAN, [INFO] [stdout] 135 | | trend: None, [INFO] [stdout] 136 | | signal: StrategySignal::Hold, [INFO] [stdout] 137 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 133 ~ Self { [INFO] [stdout] 134 + value: f64::NAN, [INFO] [stdout] 135 + trend: None, [INFO] [stdout] 136 + signal: StrategySignal::Hold, [INFO] [stdout] 137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return map; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 152 - return map; [INFO] [stdout] 152 + map [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | / return Self { [INFO] [stdout] 170 | | inner, [INFO] [stdout] 171 | | inner_strategy, [INFO] [stdout] 172 | | ctx, [INFO] [stdout] 173 | | features: WilliamsPercentRangeFeatures::default(), [INFO] [stdout] 174 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 169 ~ Self { [INFO] [stdout] 170 + inner, [INFO] [stdout] 171 + inner_strategy, [INFO] [stdout] 172 + ctx, [INFO] [stdout] 173 + features: WilliamsPercentRangeFeatures::default(), [INFO] [stdout] 174 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | return self.features.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 204 - return self.features.clone(); [INFO] [stdout] 204 + self.features.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/content/williams_percent_range.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | / return Box::new(Incremental::<(), WilliamsPercentRangeFeatures>::next( [INFO] [stdout] 211 | | self, [INFO] [stdout] 212 | | (), [INFO] [stdout] 213 | | )); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 210 ~ Box::new(Incremental::<(), WilliamsPercentRangeFeatures>::next( [INFO] [stdout] 211 + self, [INFO] [stdout] 212 + (), [INFO] [stdout] 213 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/asset.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return write!(f, "{}.{} ({})", self.asset.id, self.asset.symbol, tf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 31 - return write!(f, "{}.{} ({})", self.asset.id, self.asset.symbol, tf); [INFO] [stdout] 31 + write!(f, "{}.{} ({})", self.asset.id, self.asset.symbol, tf) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `AssetRegistry` [INFO] [stdout] --> src/core/asset.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / pub fn new() -> Self { [INFO] [stdout] 41 | | return Self { [INFO] [stdout] 42 | | map: HashMap::new(), [INFO] [stdout] 43 | | }; [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 39 + impl Default for AssetRegistry { [INFO] [stdout] 40 + fn default() -> Self { [INFO] [stdout] 41 + Self::new() [INFO] [stdout] 42 + } [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/asset.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / return Self { [INFO] [stdout] 42 | | map: HashMap::new(), [INFO] [stdout] 43 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 ~ Self { [INFO] [stdout] 42 + map: HashMap::new(), [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/asset.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return asset.data_provider.as_ref().map(|x| Arc::clone(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return asset.data_provider.as_ref().map(|x| Arc::clone(x)); [INFO] [stdout] 56 + asset.data_provider.as_ref().map(|x| Arc::clone(x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/core/asset.rs:56:49 [INFO] [stdout] | [INFO] [stdout] 56 | return asset.data_provider.as_ref().map(|x| Arc::clone(x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `Arc::clone` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return self.index.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return self.index.get(); [INFO] [stdout] 25 + self.index.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return self.data.get_time(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return self.data.get_time(self.index.get()); [INFO] [stdout] 32 + self.data.get_time(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | return self.time().map(|time| to_datetime(time.as_millis() as i64)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 - return self.time().map(|time| to_datetime(time.as_millis() as i64)); [INFO] [stdout] 39 + self.time().map(|time| to_datetime(time.as_millis() as i64)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return self.close() >= self.open(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return self.close() >= self.open(); [INFO] [stdout] 44 + self.close() >= self.open() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return self.index.get() + 1 >= length; // [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return self.index.get() + 1 >= length; // [INFO] [stdout] 49 + self.index.get() + 1 >= length// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | return self.data.get_open(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return self.data.get_open(self.index.get()); [INFO] [stdout] 54 + self.data.get_open(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return self.data.get_high(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return self.data.get_high(self.index.get()); [INFO] [stdout] 59 + self.data.get_high(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | return self.data.get_low(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - return self.data.get_low(self.index.get()); [INFO] [stdout] 64 + self.data.get_low(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return self.data.get_close(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return self.data.get_close(self.index.get()); [INFO] [stdout] 69 + self.data.get_close(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | return self.data.get_volume(self.index.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 74 - return self.data.get_volume(self.index.get()); [INFO] [stdout] 74 + self.data.get_volume(self.index.get()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / return Self { [INFO] [stdout] 104 | | data, [INFO] [stdout] 105 | | first_bar_index, [INFO] [stdout] 106 | | last_bar_index, [INFO] [stdout] ... | [INFO] [stdout] 109 | | is_running: Rc::new(Cell::new(false)), [INFO] [stdout] 110 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 103 ~ Self { [INFO] [stdout] 104 + data, [INFO] [stdout] 105 + first_bar_index, [INFO] [stdout] 106 + last_bar_index, [INFO] [stdout] 107 + bar, [INFO] [stdout] 108 + bars, [INFO] [stdout] 109 + is_running: Rc::new(Cell::new(false)), [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clone` can be confused for the standard trait method `std::clone::Clone::clone` [INFO] [stdout] --> src/core/context.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | / pub fn clone(&self) -> Self { [INFO] [stdout] 115 | | return Self { [INFO] [stdout] 116 | | data: Arc::clone(&self.data), [INFO] [stdout] 117 | | first_bar_index: self.first_bar_index, [INFO] [stdout] ... | [INFO] [stdout] 125 | | }; [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::clone::Clone` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | / return Self { [INFO] [stdout] 116 | | data: Arc::clone(&self.data), [INFO] [stdout] 117 | | first_bar_index: self.first_bar_index, [INFO] [stdout] 118 | | last_bar_index: self.last_bar_index, [INFO] [stdout] ... | [INFO] [stdout] 124 | | is_running: Rc::clone(&self.is_running), [INFO] [stdout] 125 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 115 ~ Self { [INFO] [stdout] 116 + data: Arc::clone(&self.data), [INFO] [stdout] 117 + first_bar_index: self.first_bar_index, [INFO] [stdout] 118 + last_bar_index: self.last_bar_index, [INFO] [stdout] 119 + bars: self.bars, [INFO] [stdout] 120 + bar: Bar { [INFO] [stdout] 121 + index: Rc::clone(&self.bar.index), [INFO] [stdout] 122 + data: Arc::clone(&self.data), [INFO] [stdout] 123 + }, [INFO] [stdout] 124 + is_running: Rc::clone(&self.is_running), [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | return self.data.get_high(tick - n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return self.data.get_high(tick - n); [INFO] [stdout] 134 + self.data.get_high(tick - n) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return self.data.get_low(tick - n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 - return self.data.get_low(tick - n); [INFO] [stdout] 143 + self.data.get_low(tick - n) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return self.data.get_close(tick - n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 152 - return self.data.get_close(tick - n); [INFO] [stdout] 152 + self.data.get_close(tick - n) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | return self.data.get_volume(tick - n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return self.data.get_volume(tick - n); [INFO] [stdout] 161 + self.data.get_volume(tick - n) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | return self.data.get_open_for_range(tick - (length - 1), tick); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 167 - return self.data.get_open_for_range(tick - (length - 1), tick); [INFO] [stdout] 167 + self.data.get_open_for_range(tick - (length - 1), tick) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | return self.data.get_high_for_range(tick - (length - 1), tick); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 173 - return self.data.get_high_for_range(tick - (length - 1), tick); [INFO] [stdout] 173 + self.data.get_high_for_range(tick - (length - 1), tick) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return self.data.get_low_for_range(tick - (length - 1), tick); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 179 - return self.data.get_low_for_range(tick - (length - 1), tick); [INFO] [stdout] 179 + self.data.get_low_for_range(tick - (length - 1), tick) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | return self.data.get_close_for_range(tick - (length - 1), tick); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 185 - return self.data.get_close_for_range(tick - (length - 1), tick); [INFO] [stdout] 185 + self.data.get_close_for_range(tick - (length - 1), tick) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | return self.data.get_volume_for_range(tick - (length - 1), tick); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 191 - return self.data.get_volume_for_range(tick - (length - 1), tick); [INFO] [stdout] 191 + self.data.get_volume_for_range(tick - (length - 1), tick) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/context.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return None; [INFO] [stdout] 211 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | impl Into for f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 24 ~ impl From for FeatureValue { [INFO] [stdout] 25 ~ fn from(val: f64) -> Self { [INFO] [stdout] 26 ~ return FeatureValue::Continous(val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return FeatureValue::Continous(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return FeatureValue::Continous(self); [INFO] [stdout] 26 + FeatureValue::Continous(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | impl Into for bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 30 ~ impl From for FeatureValue { [INFO] [stdout] 31 ~ fn from(val: bool) -> Self { [INFO] [stdout] 32 ~ return FeatureValue::Discrete(val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return FeatureValue::Discrete(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return FeatureValue::Discrete(self); [INFO] [stdout] 32 + FeatureValue::Discrete(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 36 | impl Into for String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 36 ~ impl From for FeatureValue { [INFO] [stdout] 37 ~ fn from(val: String) -> Self { [INFO] [stdout] 38 ~ return FeatureValue::Raw(val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return FeatureValue::Raw(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return FeatureValue::Raw(self); [INFO] [stdout] 38 + FeatureValue::Raw(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | impl Into for Trend { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 42 ~ impl From for FeatureValue { [INFO] [stdout] 43 ~ fn from(val: Trend) -> Self { [INFO] [stdout] 44 ~ return FeatureValue::Trend(val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | return FeatureValue::Trend(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return FeatureValue::Trend(self); [INFO] [stdout] 44 + FeatureValue::Trend(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:48:1 [INFO] [stdout] | [INFO] [stdout] 48 | impl Into for StrategySignal { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 48 ~ impl From for FeatureValue { [INFO] [stdout] 49 ~ fn from(val: StrategySignal) -> Self { [INFO] [stdout] 50 ~ return FeatureValue::Signal(val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | return FeatureValue::Signal(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 50 - return FeatureValue::Signal(self); [INFO] [stdout] 50 + FeatureValue::Signal(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | impl Into for i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 54 ~ impl From for FeatureValue { [INFO] [stdout] 55 ~ fn from(val: i64) -> Self { [INFO] [stdout] 56 ~ return FeatureValue::Continous(val as f64); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return FeatureValue::Continous(self as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return FeatureValue::Continous(self as f64); [INFO] [stdout] 56 + FeatureValue::Continous(self as f64) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | impl Into for FeatureValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 60 ~ impl From for String { [INFO] [stdout] 61 ~ fn from(val: FeatureValue) -> Self { [INFO] [stdout] 62 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/features.rs:73:1 [INFO] [stdout] | [INFO] [stdout] 73 | impl Into for FeatureValue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 73 ~ impl From for f64 { [INFO] [stdout] 74 ~ fn from(val: FeatureValue) -> Self { [INFO] [stdout] 75 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | return Box::new(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 97 - return Box::new(self); [INFO] [stdout] 97 + Box::new(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FeatureRegistry` [INFO] [stdout] --> src/core/features.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / pub fn new() -> Self { [INFO] [stdout] 107 | | return Self { [INFO] [stdout] 108 | | map: HashMap::new(), [INFO] [stdout] 109 | | }; [INFO] [stdout] 110 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 105 + impl Default for FeatureRegistry { [INFO] [stdout] 106 + fn default() -> Self { [INFO] [stdout] 107 + Self::new() [INFO] [stdout] 108 + } [INFO] [stdout] 109 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / return Self { [INFO] [stdout] 108 | | map: HashMap::new(), [INFO] [stdout] 109 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 ~ Self { [INFO] [stdout] 108 + map: HashMap::new(), [INFO] [stdout] 109 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/core/features.rs:113:53 [INFO] [stdout] | [INFO] [stdout] 113 | let values = self.map.entry(id.to_string()).or_insert(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | return self.map.get(id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 - return self.map.get(id); [INFO] [stdout] 118 + self.map.get(id) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | return list; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 133 - return list; [INFO] [stdout] 133 + list [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/features.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | return df; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 139 - return df; [INFO] [stdout] 139 + df [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return self; [INFO] [stdout] 23 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return self.start_tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return self.start_tick; [INFO] [stdout] 29 + self.start_tick [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return self.end_tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 33 - return self.end_tick; [INFO] [stdout] 33 + self.end_tick [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return self.open[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return self.open[index]; [INFO] [stdout] 37 + self.open[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return self.high[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return self.high[index]; [INFO] [stdout] 41 + self.high[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return self.low[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return self.low[index]; [INFO] [stdout] 45 + self.low[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return self.close[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return self.close[index]; [INFO] [stdout] 49 + self.close[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return self.volume[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return self.volume[index]; [INFO] [stdout] 53 + self.volume[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return self.time[index]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return self.time[index]; [INFO] [stdout] 57 + self.time[index] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | return &self.open[start_index..end_index + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 61 - return &self.open[start_index..end_index + 1]; [INFO] [stdout] 61 + &self.open[start_index..end_index + 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | return &self.high[start_index..end_index + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 65 - return &self.high[start_index..end_index + 1]; [INFO] [stdout] 65 + &self.high[start_index..end_index + 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return &self.low[start_index..end_index + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return &self.low[start_index..end_index + 1]; [INFO] [stdout] 69 + &self.low[start_index..end_index + 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return &self.close[start_index..end_index + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return &self.close[start_index..end_index + 1]; [INFO] [stdout] 73 + &self.close[start_index..end_index + 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | return &self.volume[start_index..end_index + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 77 - return &self.volume[start_index..end_index + 1]; [INFO] [stdout] 77 + &self.volume[start_index..end_index + 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return None; [INFO] [stdout] 90 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | return self.timeframe; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 94 - return self.timeframe; [INFO] [stdout] 94 + self.timeframe [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | / return Self { [INFO] [stdout] 111 | | open, [INFO] [stdout] 112 | | high, [INFO] [stdout] 113 | | low, [INFO] [stdout] ... | [INFO] [stdout] 119 | | timeframe: Timeframe::Unknown, [INFO] [stdout] 120 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 110 ~ Self { [INFO] [stdout] 111 + open, [INFO] [stdout] 112 + high, [INFO] [stdout] 113 + low, [INFO] [stdout] 114 + close, [INFO] [stdout] 115 + volume, [INFO] [stdout] 116 + start_tick, [INFO] [stdout] 117 + end_tick, [INFO] [stdout] 118 + time, [INFO] [stdout] 119 + timeframe: Timeframe::Unknown, [INFO] [stdout] 120 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/in_memory_data_provider.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / return Self { [INFO] [stdout] 125 | | open: values.clone(), [INFO] [stdout] 126 | | high: values.clone(), [INFO] [stdout] 127 | | low: values.clone(), [INFO] [stdout] ... | [INFO] [stdout] 133 | | timeframe: Timeframe::Unknown, [INFO] [stdout] 134 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 ~ Self { [INFO] [stdout] 125 + open: values.clone(), [INFO] [stdout] 126 + high: values.clone(), [INFO] [stdout] 127 + low: values.clone(), [INFO] [stdout] 128 + close: values.clone(), [INFO] [stdout] 129 + volume: values.clone(), [INFO] [stdout] 130 + start_tick: 0, [INFO] [stdout] 131 + end_tick: values.len() - 1, [INFO] [stdout] 132 + time: vec![None; values.len()], [INFO] [stdout] 133 + timeframe: Timeframe::Unknown, [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/incremental.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | return Box::new(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 - return Box::new(self); [INFO] [stdout] 14 + Box::new(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/incremental.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return Self { ctx, current, next }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return Self { ctx, current, next }; [INFO] [stdout] 38 + Self { ctx, current, next } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/incremental.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return self.next.next(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return self.next.next(result); [INFO] [stdout] 45 + self.next.next(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/core/incremental.rs:52:30 [INFO] [stdout] | [INFO] [stdout] 52 | fn next(&mut self, _: ()) -> () {} [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/incremental.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | return Self { ctx, inner }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - return Self { ctx, inner }; [INFO] [stdout] 64 + Self { ctx, inner } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/incremental.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return self.inner.next(()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return self.inner.next(()); [INFO] [stdout] 70 + self.inner.next(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/timeframe.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | impl Into for Timeframe { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 11 ~ impl From for String { [INFO] [stdout] 12 ~ fn from(val: Timeframe) -> Self { [INFO] [stdout] 13 ~ return match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/timeframe.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return match self { [INFO] [stdout] 14 | | Timeframe::Months(value) => format!("{}M", value), [INFO] [stdout] 15 | | Timeframe::Weeks(value) => format!("{}W", value), [INFO] [stdout] 16 | | Timeframe::Days(value) => format!("{}D", value), [INFO] [stdout] ... | [INFO] [stdout] 19 | | Timeframe::Unknown => String::from("UNKNOWN"), [INFO] [stdout] 20 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ match self { [INFO] [stdout] 14 + Timeframe::Months(value) => format!("{}M", value), [INFO] [stdout] 15 + Timeframe::Weeks(value) => format!("{}W", value), [INFO] [stdout] 16 + Timeframe::Days(value) => format!("{}D", value), [INFO] [stdout] 17 + Timeframe::Hours(value) => format!("{}h", value), [INFO] [stdout] 18 + Timeframe::Seconds(value) => format!("{}s", value), [INFO] [stdout] 19 + Timeframe::Unknown => String::from("UNKNOWN"), [INFO] [stdout] 20 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/trend.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | return Trend::Consolidation; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return Trend::Consolidation; [INFO] [stdout] 19 + Trend::Consolidation [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/trend.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | impl Into for Trend { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 23 ~ impl From for i32 { [INFO] [stdout] 24 ~ fn from(val: Trend) -> Self { [INFO] [stdout] 25 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/core/trend.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | impl Into for Trend { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 34 ~ impl From for f64 { [INFO] [stdout] 35 ~ fn from(val: Trend) -> Self { [INFO] [stdout] 36 ~ let i: i32 = val.into(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/trend.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return i as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return i as f64; [INFO] [stdout] 37 + i as f64 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/pinescript/common.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | /// [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] = note: `#[warn(clippy::empty_docs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/common.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return self; [INFO] [stdout] 24 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/common.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 31 - return self; [INFO] [stdout] 31 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/common.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return f64::max(self, other); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return f64::max(self, other); [INFO] [stdout] 38 + f64::max(self, other) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/common.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return f64::min(self, other); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return f64::min(self, other); [INFO] [stdout] 45 + f64::min(self, other) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/common.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return !self.is_zero(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return !self.is_zero(); [INFO] [stdout] 49 + !self.is_zero() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/float.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / return Self { [INFO] [stdout] 17 | | ctx: ctx.clone(), [INFO] [stdout] 18 | | series: FloatSeries::new(ctx), [INFO] [stdout] 19 | | _value: f64::NAN, [INFO] [stdout] 20 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ Self { [INFO] [stdout] 17 + ctx: ctx.clone(), [INFO] [stdout] 18 + series: FloatSeries::new(ctx), [INFO] [stdout] 19 + _value: f64::NAN, [INFO] [stdout] 20 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/float.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return self; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return self; [INFO] [stdout] 25 + self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/float.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | return self._value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return self._value; [INFO] [stdout] 34 + self._value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/float.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return self.series.get(index - 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return self.series.get(index - 1); [INFO] [stdout] 41 + self.series.get(index - 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/pinescript/float.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | impl Into for Float { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 53 ~ impl From for f64 { [INFO] [stdout] 54 ~ fn from(val: Float) -> Self { [INFO] [stdout] 55 ~ return val.get(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/float.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return self.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return self.get(); [INFO] [stdout] 55 + self.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / return Self { [INFO] [stdout] 13 | | title: "Pace Strategy".to_string(), [INFO] [stdout] 14 | | currency: "USD".to_string(), [INFO] [stdout] 15 | | risk_free_rate: 0.0, [INFO] [stdout] 16 | | include_cobra_metrics: false, [INFO] [stdout] 17 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 12 ~ Self { [INFO] [stdout] 13 + title: "Pace Strategy".to_string(), [INFO] [stdout] 14 + currency: "USD".to_string(), [INFO] [stdout] 15 + risk_free_rate: 0.0, [INFO] [stdout] 16 + include_cobra_metrics: false, [INFO] [stdout] 17 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PineScriptExporter` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub fn new() -> Self { [INFO] [stdout] 25 | | return Self {}; [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 23 + impl Default for PineScriptExporter { [INFO] [stdout] 24 + fn default() -> Self { [INFO] [stdout] 25 + Self::new() [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | return Self {}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 - return Self {}; [INFO] [stdout] 25 + Self {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return format!("array.from({})", joined_items); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return format!("array.from({})", joined_items); [INFO] [stdout] 30 + format!("array.from({})", joined_items) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `trade.exit_tick` after checking its variant with `is_some` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:95:37 [INFO] [stdout] | [INFO] [stdout] 94 | if trade.exit_tick.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = trade.exit_tick` [INFO] [stdout] 95 | long_exits.push(trade.exit_tick.unwrap() as i32 + offset); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `trade.exit_tick` after checking its variant with `is_some` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:100:38 [INFO] [stdout] | [INFO] [stdout] 99 | if trade.exit_tick.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = trade.exit_tick` [INFO] [stdout] 100 | short_exits.push(trade.exit_tick.unwrap() as i32 + offset); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | return ps.trim().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 142 - return ps.trim().to_string(); [INFO] [stdout] 142 + ps.trim().to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:42:25 [INFO] [stdout] | [INFO] [stdout] 42 | ps_options.push(format!("overlay = false")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"overlay = false".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:43:25 [INFO] [stdout] | [INFO] [stdout] 43 | ps_options.push(format!("pyramiding = 0")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"pyramiding = 0".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | ps_options.push(format!("default_qty_type = strategy.percent_of_equity")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"default_qty_type = strategy.percent_of_equity".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:52:29 [INFO] [stdout] | [INFO] [stdout] 52 | ps_options.push(format!("default_qty_value = 100")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"default_qty_value = 100".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/pinescript/pinescript_exporter.rs:125:22 [INFO] [stdout] | [INFO] [stdout] 125 | ps.push_str(&format!( [INFO] [stdout] | ______________________^ [INFO] [stdout] 126 | | r#" [INFO] [stdout] 127 | | // --------- EXECUTE ---------- [INFO] [stdout] 128 | | if array.indexof(long_entries, bar_index) != -1 [INFO] [stdout] ... | [INFO] [stdout] 139 | | "#, [INFO] [stdout] 140 | | )); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 125 ~ ps.push_str(&r#" [INFO] [stdout] 126 + // --------- EXECUTE ---------- [INFO] [stdout] 127 + if array.indexof(long_entries, bar_index) != -1 [INFO] [stdout] 128 + strategy.entry("long_entry", strategy.long) [INFO] [stdout] 129 + [INFO] [stdout] 130 + if array.indexof(long_exits, bar_index) != -1 [INFO] [stdout] 131 + strategy.close("long_entry", "long_exit") [INFO] [stdout] 132 + [INFO] [stdout] 133 + if array.indexof(short_entries, bar_index) != -1 [INFO] [stdout] 134 + strategy.entry("short_entry", strategy.short) [INFO] [stdout] 135 + [INFO] [stdout] 136 + if array.indexof(short_exits, bar_index) != -1 [INFO] [stdout] 137 + strategy.close("short_entry", "short_exit") [INFO] [stdout] 138 ~ "#.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/dataframe.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return arr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 36 - return arr; [INFO] [stdout] 36 + arr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/dataframe.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return arr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return arr; [INFO] [stdout] 49 + arr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/dataframe.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | return arr; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return arr; [INFO] [stdout] 70 + arr [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/in_memory_data_provider.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | return Self::new(open, high, low, close, volume, time); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 18 - return Self::new(open, high, low, close, volume, time); [INFO] [stdout] 18 + Self::new(open, high, low, close, volume, time) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/io.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return df; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return df; [INFO] [stdout] 15 + df [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_millis`: use `DateTime::from_timestamp_millis` instead [INFO] [stdout] --> src/utils/time.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | return NaiveDateTime::from_timestamp_millis(time).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead [INFO] [stdout] --> src/utils/time.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | return dt.timestamp(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/io.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | return df; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return df; [INFO] [stdout] 21 + df [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/balance_of_power.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/chaikin_money_flow.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/choppiness_index.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/directional_movement_index.rs:11:36 [INFO] [stdout] | [INFO] [stdout] 11 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/ultimate_oscillator.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IncrementalDefault` [INFO] [stdout] --> src/content/vortex.rs:8:36 [INFO] [stdout] | [INFO] [stdout] 8 | incremental::{Incremental, IncrementalDefault}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DataProvider` [INFO] [stdout] --> src/core/context.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | use super::data_provider::{AnyDataProvider, DataProvider}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Incremental` [INFO] [stdout] --> src/strategy/strategy_runner.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | incremental::{Incremental, RunPeriod}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | / return self [INFO] [stdout] 30 | | .cast(&DataType::Boolean) [INFO] [stdout] 31 | | .unwrap() [INFO] [stdout] 32 | | .bool() [INFO] [stdout] ... | [INFO] [stdout] 41 | | }) [INFO] [stdout] 42 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 ~ self [INFO] [stdout] 30 + .cast(&DataType::Boolean) [INFO] [stdout] 31 + .unwrap() [INFO] [stdout] 32 + .bool() [INFO] [stdout] 33 + .unwrap() [INFO] [stdout] 34 + .into_iter() [INFO] [stdout] 35 + .map(|val| { [INFO] [stdout] 36 + if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] 37 + None [INFO] [stdout] 38 + } else { [INFO] [stdout] 39 + val [INFO] [stdout] 40 + } [INFO] [stdout] 41 + }) [INFO] [stdout] 42 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / return self [INFO] [stdout] 47 | | .cast(&DataType::Float64) [INFO] [stdout] 48 | | .unwrap() [INFO] [stdout] 49 | | .f64() [INFO] [stdout] ... | [INFO] [stdout] 58 | | }) [INFO] [stdout] 59 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 ~ self [INFO] [stdout] 47 + .cast(&DataType::Float64) [INFO] [stdout] 48 + .unwrap() [INFO] [stdout] 49 + .f64() [INFO] [stdout] 50 + .unwrap() [INFO] [stdout] 51 + .into_iter() [INFO] [stdout] 52 + .map(|val| { [INFO] [stdout] 53 + if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] 54 + f64::NAN [INFO] [stdout] 55 + } else { [INFO] [stdout] 56 + val.unwrap() [INFO] [stdout] 57 + } [INFO] [stdout] 58 + }) [INFO] [stdout] 59 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `val` after checking its variant with `is_none` [INFO] [stdout] --> src/polars/series.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 53 | if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 56 | val.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | / return self [INFO] [stdout] 64 | | .cast(&DataType::Int32) [INFO] [stdout] 65 | | .unwrap() [INFO] [stdout] 66 | | .i32() [INFO] [stdout] ... | [INFO] [stdout] 75 | | }) [INFO] [stdout] 76 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 ~ self [INFO] [stdout] 64 + .cast(&DataType::Int32) [INFO] [stdout] 65 + .unwrap() [INFO] [stdout] 66 + .i32() [INFO] [stdout] 67 + .unwrap() [INFO] [stdout] 68 + .into_iter() [INFO] [stdout] 69 + .map(|val| { [INFO] [stdout] 70 + if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] 71 + None [INFO] [stdout] 72 + } else { [INFO] [stdout] 73 + val [INFO] [stdout] 74 + } [INFO] [stdout] 75 + }) [INFO] [stdout] 76 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | / return self [INFO] [stdout] 81 | | .cast(&DataType::UInt64) [INFO] [stdout] 82 | | .unwrap() [INFO] [stdout] 83 | | .u64() [INFO] [stdout] ... | [INFO] [stdout] 92 | | }) [INFO] [stdout] 93 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 80 ~ self [INFO] [stdout] 81 + .cast(&DataType::UInt64) [INFO] [stdout] 82 + .unwrap() [INFO] [stdout] 83 + .u64() [INFO] [stdout] 84 + .unwrap() [INFO] [stdout] 85 + .into_iter() [INFO] [stdout] 86 + .map(|val| { [INFO] [stdout] 87 + if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] 88 + None [INFO] [stdout] 89 + } else { [INFO] [stdout] 90 + val.map(|x| x as usize) [INFO] [stdout] 91 + } [INFO] [stdout] 92 + }) [INFO] [stdout] 93 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | / return self [INFO] [stdout] 98 | | .cast(&DataType::Float64) [INFO] [stdout] 99 | | .unwrap() [INFO] [stdout] 100 | | .f64() [INFO] [stdout] ... | [INFO] [stdout] 109 | | }) [INFO] [stdout] 110 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 97 ~ self [INFO] [stdout] 98 + .cast(&DataType::Float64) [INFO] [stdout] 99 + .unwrap() [INFO] [stdout] 100 + .f64() [INFO] [stdout] 101 + .unwrap() [INFO] [stdout] 102 + .into_iter() [INFO] [stdout] 103 + .map(|val| { [INFO] [stdout] 104 + if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] 105 + None [INFO] [stdout] 106 + } else { [INFO] [stdout] 107 + Some(Duration::from_secs_f64(val.unwrap())) [INFO] [stdout] 108 + } [INFO] [stdout] 109 + }) [INFO] [stdout] 110 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `val` after checking its variant with `is_none` [INFO] [stdout] --> src/polars/series.rs:107:50 [INFO] [stdout] | [INFO] [stdout] 104 | if val.is_none() || val.unwrap().is_nan() { [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 107 | Some(Duration::from_secs_f64(val.unwrap())) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / return self [INFO] [stdout] 115 | | .cast(&DataType::Float64) [INFO] [stdout] 116 | | .unwrap() [INFO] [stdout] 117 | | .f64() [INFO] [stdout] ... | [INFO] [stdout] 126 | | }) [INFO] [stdout] 127 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 114 ~ self [INFO] [stdout] 115 + .cast(&DataType::Float64) [INFO] [stdout] 116 + .unwrap() [INFO] [stdout] 117 + .f64() [INFO] [stdout] 118 + .unwrap() [INFO] [stdout] 119 + .into_iter() [INFO] [stdout] 120 + .map(|val| { [INFO] [stdout] 121 + let val = val.unwrap_nan(); [INFO] [stdout] 122 + if val.is_nan() { [INFO] [stdout] 123 + return StrategySignal::Hold; [INFO] [stdout] 124 + } [INFO] [stdout] 125 + return StrategySignal::from(val); [INFO] [stdout] 126 + }) [INFO] [stdout] 127 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | return StrategySignal::from(val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 - return StrategySignal::from(val); [INFO] [stdout] 125 + StrategySignal::from(val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | / return self [INFO] [stdout] 132 | | .cast(&DataType::Float64) [INFO] [stdout] 133 | | .unwrap() [INFO] [stdout] 134 | | .f64() [INFO] [stdout] ... | [INFO] [stdout] 140 | | }) [INFO] [stdout] 141 | | .collect::>(); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 ~ self [INFO] [stdout] 132 + .cast(&DataType::Float64) [INFO] [stdout] 133 + .unwrap() [INFO] [stdout] 134 + .f64() [INFO] [stdout] 135 + .unwrap() [INFO] [stdout] 136 + .into_iter() [INFO] [stdout] 137 + .map(|val| { [INFO] [stdout] 138 + let val = val.unwrap_nan(); [INFO] [stdout] 139 + return Trend::from(val); [INFO] [stdout] 140 + }) [INFO] [stdout] 141 ~ .collect::>() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polars/series.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | return Trend::from(val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 139 - return Trend::from(val); [INFO] [stdout] 139 + Trend::from(val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/common.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | return mean; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 5 - return mean; [INFO] [stdout] 5 + mean [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/common.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | return values.iter().map(|x| (x - mean).powi(2)).sum::() / values.len() as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - return values.iter().map(|x| (x - mean).powi(2)).sum::() / values.len() as f64; [INFO] [stdout] 9 + values.iter().map(|x| (x - mean).powi(2)).sum::() / values.len() as f64 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/common.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return var_from_mean(values, mean(values)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return var_from_mean(values, mean(values)); [INFO] [stdout] 13 + var_from_mean(values, mean(values)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/common.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return stdev_from_var(var(values)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return stdev_from_var(var(values)); [INFO] [stdout] 17 + stdev_from_var(var(values)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/common.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | return var.sqrt(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return var.sqrt(); [INFO] [stdout] 21 + var.sqrt() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/math.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | return max_value_index; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 - return max_value_index; [INFO] [stdout] 20 + max_value_index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/math.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | return min_value_index; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return min_value_index; [INFO] [stdout] 43 + min_value_index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/mean.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / return Self { [INFO] [stdout] 13 | | ctx: ctx.clone(), [INFO] [stdout] 14 | | sum: 0.0, [INFO] [stdout] 15 | | n: 0, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 12 ~ Self { [INFO] [stdout] 13 + ctx: ctx.clone(), [INFO] [stdout] 14 + sum: 0.0, [INFO] [stdout] 15 + n: 0, [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/mean.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | return self.sum / self.n as f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return self.sum / self.n as f64; [INFO] [stdout] 24 + self.sum / self.n as f64 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | return f64::min(f64::max(value, min), max); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - return f64::min(f64::max(value, min), max); [INFO] [stdout] 9 + f64::min(f64::max(value, min), max) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return (value - min) / (max - min); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return (value - min) / (max - min); [INFO] [stdout] 13 + (value - min) / (max - min) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | return clip_value(delta / mean, 0.0, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return clip_value(delta / mean, 0.0, 1.0); [INFO] [stdout] 24 + clip_value(delta / mean, 0.0, 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return clip_value(delta / mean, 0.0, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return clip_value(delta / mean, 0.0, 1.0); [INFO] [stdout] 34 + clip_value(delta / mean, 0.0, 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return clip_value(1.0 - abs_diff / distance, 0.0, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return clip_value(1.0 - abs_diff / distance, 0.0, 1.0); [INFO] [stdout] 40 + clip_value(1.0 - abs_diff / distance, 0.0, 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return (2.0 * value - mean) / mean; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return (2.0 * value - mean) / mean; [INFO] [stdout] 44 + (2.0 * value - mean) / mean [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | return scale_value_around_mean(value, mean); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return scale_value_around_mean(value, mean); [INFO] [stdout] 58 + scale_value_around_mean(value, mean) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / return new_min [INFO] [stdout] 69 | | + (new_max - new_min) * (src - old_min) / f64::max(old_max - old_min, f64::EPSILON); [INFO] [stdout] | |___________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 ~ new_min [INFO] [stdout] 69 ~ + (new_max - new_min) * (src - old_min) / f64::max(old_max - old_min, f64::EPSILON) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | return (value - mean) / f64::max(std, f64::EPSILON); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return (value - mean) / f64::max(std, f64::EPSILON); [INFO] [stdout] 73 + (value - mean) / f64::max(std, f64::EPSILON) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / return Self { [INFO] [stdout] 84 | | min: -1.0, [INFO] [stdout] 85 | | max: 1.0, [INFO] [stdout] 86 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ Self { [INFO] [stdout] 84 + min: -1.0, [INFO] [stdout] 85 + max: 1.0, [INFO] [stdout] 86 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / return Self { [INFO] [stdout] 101 | | ctx, [INFO] [stdout] 102 | | config, [INFO] [stdout] 103 | | data_min: f64::MAX, [INFO] [stdout] 104 | | data_max: f64::MIN, [INFO] [stdout] 105 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 100 ~ Self { [INFO] [stdout] 101 + ctx, [INFO] [stdout] 102 + config, [INFO] [stdout] 103 + data_min: f64::MAX, [INFO] [stdout] 104 + data_max: f64::MIN, [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / return rescale( [INFO] [stdout] 115 | | value, [INFO] [stdout] 116 | | self.data_min, [INFO] [stdout] 117 | | self.data_max, [INFO] [stdout] 118 | | self.config.min, [INFO] [stdout] 119 | | self.config.max, [INFO] [stdout] 120 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 114 ~ rescale( [INFO] [stdout] 115 + value, [INFO] [stdout] 116 + self.data_min, [INFO] [stdout] 117 + self.data_max, [INFO] [stdout] 118 + self.config.min, [INFO] [stdout] 119 + self.config.max, [INFO] [stdout] 120 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | return Self { ctx, config }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 139 - return Self { ctx, config }; [INFO] [stdout] 139 + Self { ctx, config } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | / return rescale( [INFO] [stdout] 146 | | value, [INFO] [stdout] 147 | | self.config.data_min, [INFO] [stdout] 148 | | self.config.data_max, [INFO] [stdout] 149 | | self.config.min, [INFO] [stdout] 150 | | self.config.max, [INFO] [stdout] 151 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 ~ rescale( [INFO] [stdout] 146 + value, [INFO] [stdout] 147 + self.config.data_min, [INFO] [stdout] 148 + self.config.data_max, [INFO] [stdout] 149 + self.config.min, [INFO] [stdout] 150 + self.config.max, [INFO] [stdout] 151 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | return Self { estimate: true }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return Self { estimate: true }; [INFO] [stdout] 161 + Self { estimate: true } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | / return Self { [INFO] [stdout] 176 | | ctx: ctx.clone(), [INFO] [stdout] 177 | | stdev: Stdev::build(ctx.clone(), config.estimate), [INFO] [stdout] 178 | | mean: Mean::new(ctx.clone()), [INFO] [stdout] 179 | | config, [INFO] [stdout] 180 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 175 ~ Self { [INFO] [stdout] 176 + ctx: ctx.clone(), [INFO] [stdout] 177 + stdev: Stdev::build(ctx.clone(), config.estimate), [INFO] [stdout] 178 + mean: Mean::new(ctx.clone()), [INFO] [stdout] 179 + config, [INFO] [stdout] 180 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/normalization.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | return zscore(value, self.mean.next(value), self.stdev.next(value)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 186 - return zscore(value, self.mean.next(value), self.stdev.next(value)); [INFO] [stdout] 186 + zscore(value, self.mean.next(value), self.stdev.next(value)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/stdev.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return Self { [INFO] [stdout] 21 | | ctx: ctx.clone(), [INFO] [stdout] 22 | | fast, [INFO] [stdout] 23 | | variance: Var::build(ctx.clone(), fast), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 20 ~ Self { [INFO] [stdout] 21 + ctx: ctx.clone(), [INFO] [stdout] 22 + fast, [INFO] [stdout] 23 + variance: Var::build(ctx.clone(), fast), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/stdev.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | return Self::build(ctx, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 28 - return Self::build(ctx, false); [INFO] [stdout] 28 + Self::build(ctx, false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/stdev.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return Self::build(ctx, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return Self::build(ctx, true); [INFO] [stdout] 32 + Self::build(ctx, true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/stdev.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | return stdev_from_var(self.variance.next(value)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return stdev_from_var(self.variance.next(value)); [INFO] [stdout] 38 + stdev_from_var(self.variance.next(value)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/var.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / return Self { [INFO] [stdout] 26 | | ctx: ctx.clone(), [INFO] [stdout] 27 | | fast, [INFO] [stdout] 28 | | welfords_var: WelfordsVar::new(ctx.clone()), [INFO] [stdout] 29 | | input_series: FloatSeries::new(ctx.clone()), [INFO] [stdout] 30 | | mean: Mean::new(ctx.clone()), [INFO] [stdout] 31 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 ~ Self { [INFO] [stdout] 26 + ctx: ctx.clone(), [INFO] [stdout] 27 + fast, [INFO] [stdout] 28 + welfords_var: WelfordsVar::new(ctx.clone()), [INFO] [stdout] 29 + input_series: FloatSeries::new(ctx.clone()), [INFO] [stdout] 30 + mean: Mean::new(ctx.clone()), [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/var.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return Self::build(ctx, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return Self::build(ctx, false); [INFO] [stdout] 35 + Self::build(ctx, false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/var.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | return Self::build(ctx, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 - return Self::build(ctx, true); [INFO] [stdout] 39 + Self::build(ctx, true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/var.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | return var_from_mean(values, mean); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 54 - return var_from_mean(values, mean); [INFO] [stdout] 54 + var_from_mean(values, mean) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/welfords_stdev.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / return Self { [INFO] [stdout] 13 | | ctx: ctx.clone(), [INFO] [stdout] 14 | | variance: WelfordsVar::new(ctx.clone()), [INFO] [stdout] 15 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 12 ~ Self { [INFO] [stdout] 13 + ctx: ctx.clone(), [INFO] [stdout] 14 + variance: WelfordsVar::new(ctx.clone()), [INFO] [stdout] 15 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/welfords_stdev.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return stdev_from_var(self.variance.next(value)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return stdev_from_var(self.variance.next(value)); [INFO] [stdout] 21 + stdev_from_var(self.variance.next(value)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/welfords_var.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return Self { [INFO] [stdout] 14 | | ctx: ctx.clone(), [INFO] [stdout] 15 | | mean: 0.0, [INFO] [stdout] 16 | | deviation: 0.0, [INFO] [stdout] 17 | | n: 0, [INFO] [stdout] 18 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ Self { [INFO] [stdout] 14 + ctx: ctx.clone(), [INFO] [stdout] 15 + mean: 0.0, [INFO] [stdout] 16 + deviation: 0.0, [INFO] [stdout] 17 + n: 0, [INFO] [stdout] 18 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/statistics/welfords_var.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return self.deviation / (self.n as f64 - 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return self.deviation / (self.n as f64 - 1.0); [INFO] [stdout] 35 + self.deviation / (self.n as f64 - 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn default() -> Self { [INFO] [stdout] 34 | | return Self { [INFO] [stdout] 35 | | equity_curve_max_dd: 0.0, [INFO] [stdout] 36 | | intra_trade_max_dd: 0.0, [INFO] [stdout] ... | [INFO] [stdout] 44 | | }; [INFO] [stdout] 45 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | / return Self { [INFO] [stdout] 35 | | equity_curve_max_dd: 0.0, [INFO] [stdout] 36 | | intra_trade_max_dd: 0.0, [INFO] [stdout] 37 | | sortino: 0.0, [INFO] [stdout] ... | [INFO] [stdout] 43 | | net_profit_l_s_ratio: 0.0, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 ~ Self { [INFO] [stdout] 35 + equity_curve_max_dd: 0.0, [INFO] [stdout] 36 + intra_trade_max_dd: 0.0, [INFO] [stdout] 37 + sortino: 0.0, [INFO] [stdout] 38 + sharpe: 0.0, [INFO] [stdout] 39 + profit_factor: 0.0, [INFO] [stdout] 40 + profitable: 0.0, [INFO] [stdout] 41 + trades: 0, [INFO] [stdout] 42 + omega: 0.0, [INFO] [stdout] 43 + net_profit_l_s_ratio: 0.0, [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | return cell; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return cell; [INFO] [stdout] 55 + cell [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | return cell; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return cell; [INFO] [stdout] 69 + cell [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:151:26 [INFO] [stdout] | [INFO] [stdout] 151 | x if x >= 20 && x <= 80 => 1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `(20..=80).contains(&x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/strategy/metrics/cobra_metrics.rs:152:26 [INFO] [stdout] | [INFO] [stdout] 152 | x if x < 15 || x > 80 => -1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use: `!(15..=80).contains(&x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [WARN] too many lines in the log, truncating it