[INFO] cloning repository https://github.com/hubermann/inbestia-nexus-yew [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hubermann/inbestia-nexus-yew" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhubermann%2Finbestia-nexus-yew", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhubermann%2Finbestia-nexus-yew'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7422c6a3c0ad5d30cbb693fb7fbd0ac399e969bd [INFO] testing hubermann/inbestia-nexus-yew against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhubermann%2Finbestia-nexus-yew" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hubermann/inbestia-nexus-yew [INFO] finished tweaking git repo https://github.com/hubermann/inbestia-nexus-yew [INFO] tweaked toml for git repo https://github.com/hubermann/inbestia-nexus-yew written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hubermann/inbestia-nexus-yew on toolchain 1.99.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hubermann/inbestia-nexus-yew already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e [INFO] running `Command { std: "docker" "start" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.105 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling bumpalo v3.19.0 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling boolinator v2.4.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling wasm-bindgen v0.2.105 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling litrs v0.4.2 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling route-recognizer v0.3.1 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.105 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling gloo-worker-macros v0.1.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling implicit-clone-derive v0.1.2 [INFO] [stderr] Compiling yew-router-macro v0.18.0 [INFO] [stderr] Compiling implicit-clone v0.4.9 [INFO] [stderr] Compiling yew-macro v0.21.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.105 [INFO] [stderr] Compiling yewdux-macros v0.11.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling js-sys v0.3.82 [INFO] [stderr] Compiling console_error_panic_hook v0.1.7 [INFO] [stderr] Compiling stylist-core v0.13.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling pinned v0.1.0 [INFO] [stderr] Compiling prokio v0.1.0 [INFO] [stderr] Compiling stylist-macros v0.13.0 [INFO] [stderr] Compiling web-sys v0.3.82 [INFO] [stderr] Compiling wasm-bindgen-futures v0.4.55 [INFO] [stderr] Compiling serde-wasm-bindgen v0.6.5 [INFO] [stderr] Compiling gloo-timers v0.3.0 [INFO] [stderr] Compiling gloo-utils v0.2.0 [INFO] [stderr] Compiling gloo-events v0.2.0 [INFO] [stderr] Compiling gloo-dialogs v0.2.0 [INFO] [stderr] Compiling gloo-render v0.2.0 [INFO] [stderr] Compiling wasm-logger v0.2.0 [INFO] [stderr] Compiling gloo-console v0.3.0 [INFO] [stderr] Compiling gloo-net v0.4.0 [INFO] [stderr] Compiling gloo-storage v0.3.0 [INFO] [stderr] Compiling gloo-worker v0.4.0 [INFO] [stderr] Compiling gloo-net v0.6.0 [INFO] [stderr] Compiling gloo-history v0.2.2 [INFO] [stderr] Compiling gloo-file v0.3.0 [INFO] [stderr] Compiling gloo v0.10.0 [INFO] [stderr] Compiling yew v0.21.0 [INFO] [stderr] Compiling yew-router v0.18.0 [INFO] [stderr] Compiling yewdux v0.11.0 [INFO] [stderr] Compiling stylist v0.13.0 [INFO] [stderr] Compiling inbestia_nexus v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/services/inbestia_api.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use serde::{Deserialize, Serialize}; [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: `AlertCondition` and `AlertStatus` [INFO] [stdout] --> src/services/alert_service.rs:2:35 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::types::alerts::{Alert, AlertCondition, AlertStatus, AlertTrigger}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/services/fibo_api.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `js_sys::Date` [INFO] [stdout] --> src/routes/alerts/alerts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use js_sys::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FiboError` [INFO] [stdout] --> src/routes/auth/login.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::services::fibo_api::{FiboApiClient, FiboError}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `login::Login` [INFO] [stdout] --> src/routes/auth/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use login::Login; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `signup::Signup` [INFO] [stdout] --> src/routes/auth/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use signup::Signup; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::components::scoring::dual_score_card::DualScoreCard` [INFO] [stdout] --> src/routes/scoring/details.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::components::scoring::dual_score_card::DualScoreCard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::api::CandleData` [INFO] [stdout] --> src/routes/scoring/history.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::api::CandleData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::AppRoute` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::app::AppRoute; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `js_sys::Date` [INFO] [stdout] --> src/components/dashboard/news_feed.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use js_sys::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `yew_router::prelude` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use yew_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `yew_router::prelude` [INFO] [stdout] --> src/routes/watchlist.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use yew_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `url_clone` [INFO] [stdout] --> src/services/websocket_client.rs:155:25 [INFO] [stdout] | [INFO] [stdout] 155 | let url_clone = url.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_url_clone` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_timeframe_change` [INFO] [stdout] --> src/routes/dashboard.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | let on_timeframe_change = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_timeframe_change` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loading` [INFO] [stdout] --> src/routes/watchlist.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | let loading = loading.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_context` [INFO] [stdout] --> src/routes/watchlist.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | let auth_context = auth_context.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plan_code` [INFO] [stdout] --> src/routes/settings.rs:363:39 [INFO] [stdout] | [INFO] [stdout] 363 | {if let Some((plan_code, plan_color, plan_name)) = plan_info { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plan_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/routes/settings.rs:533:63 [INFO] [stdout] | [INFO] [stdout] 533 | {for (*sessions).iter().enumerate().map(|(idx, session)| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `load_alerts` [INFO] [stdout] --> src/routes/alerts/alerts.rs:134:53 [INFO] [stdout] | [INFO] [stdout] 134 | ... let load_alerts = load_alerts.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_load_alerts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `navigator` [INFO] [stdout] --> src/routes/billing/success.rs:310:41 [INFO] [stdout] | [INFO] [stdout] 310 | ... let navigator = navigator.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_navigator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `long_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let long_class = get_score_class(score.long_score, true); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `short_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let short_class = get_score_class(score.short_score, false); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `confidence_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let confidence_class = get_confidence_class(score.confidence); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_confidence_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `long_width` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let long_width = format!("{}%", score.long_score * 10.0); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `short_width` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let short_width = format!("{}%", score.short_score * 10.0); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/components/scoring/score_chart.rs:53:17 [INFO] [stdout] | [INFO] [stdout] 53 | let y = e.offset_y() as f64; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_mouse_move` [INFO] [stdout] --> src/components/scoring/score_chart.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let on_mouse_move = { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_mouse_move_drag` [INFO] [stdout] --> src/components/scoring/score_chart.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let on_mouse_move_drag = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move_drag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_price` [INFO] [stdout] --> src/components/scoring/score_chart.rs:134:21 [INFO] [stdout] | [INFO] [stdout] 134 | let (min_price, max_price, price_range) = if has_candles { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_price` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SubscriptionTier` is never used [INFO] [stdout] --> src/services/mock_auth.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum SubscriptionTier { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `User` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct User { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TierLimits` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct TierLimits { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_limits` is never used [INFO] [stdout] --> src/services/mock_auth.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl SubscriptionTier { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 31 | pub fn get_limits(&self) -> TierLimits { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockAuthService` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct MockAuthService; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_current_user` is never used [INFO] [stdout] --> src/services/mock_auth.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl MockAuthService { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 67 | pub fn get_current_user() -> User { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `analyze_asset`, `analyze_multi_timeframe`, `get_fundamental_data`, and `get_dual_scores_batch` are never used [INFO] [stdout] --> src/services/inbestia_api.rs:26:18 [INFO] [stdout] | [INFO] [stdout] 21 | impl InBestiaApiClient { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub async fn analyze_asset( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn analyze_multi_timeframe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn get_fundamental_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub async fn get_dual_scores_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoringService` is never constructed [INFO] [stdout] --> src/services/scoring_service.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ScoringService { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/services/scoring_service.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl ScoringService { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 12 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send_message` is never used [INFO] [stdout] --> src/services/websocket_client.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl WebSocketClient { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn send_message(&self, msg: &WebSocketMessage) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_by_id` and `get_active` are never used [INFO] [stdout] --> src/services/alert_service.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl AlertService { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn get_by_id(alert_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_active() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_error` is never used [INFO] [stdout] --> src/contexts/app_state.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ShortScore` and `Symbol` are never constructed [INFO] [stdout] --> src/routes/dashboard.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | enum SortBy { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 21 | LongScore, [INFO] [stdout] 22 | ShortScore, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 23 | Confidence, [INFO] [stdout] 24 | Symbol, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SortBy` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/auth/protected_route.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_score_text_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:228:4 [INFO] [stdout] | [INFO] [stdout] 228 | fn get_score_text_color(score: f64, is_long: bool) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_score_label` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn get_score_label(score: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_confidence_text_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn get_confidence_text_color(confidence: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_confidence_bar_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:275:4 [INFO] [stdout] | [INFO] [stdout] 275 | fn get_confidence_bar_color(confidence: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_action_recommendation` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:283:4 [INFO] [stdout] | [INFO] [stdout] 283 | fn get_action_recommendation(score: &DualScoreResponse) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_action_with_emoji` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn get_action_with_emoji(score: &DualScoreResponse) -> (String, &'static str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top_drivers` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:385:4 [INFO] [stdout] | [INFO] [stdout] 385 | fn get_top_drivers(breakdown: &crate::types::api::ScoreBreakdown) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiniProps` is never constructed [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:413:12 [INFO] [stdout] | [INFO] [stdout] 413 | pub struct MiniProps { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/category_breakdown.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/confidence_meter.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/explanation_panel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/charts/candlestick.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/charts/line_chart.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/button.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ButtonVariant` is never used [INFO] [stdout] --> src/components/common/button.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ButtonVariant { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/card.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/modal.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_score` is never used [INFO] [stdout] --> src/utils/format.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn format_score(score: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_percentage` is never used [INFO] [stdout] --> src/utils/format.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn format_percentage(value: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_currency` is never used [INFO] [stdout] --> src/utils/format.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn format_currency(value: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_timestamp` is never used [INFO] [stdout] --> src/utils/format.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn format_timestamp(timestamp: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_api_error` is never used [INFO] [stdout] --> src/utils/api_client.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn handle_api_error(error: &ApiError) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_claims_from_token` is never used [INFO] [stdout] --> src/utils/jwt.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn get_claims_from_token(token: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_current_token_expired` is never used [INFO] [stdout] --> src/utils/jwt.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn is_current_token_expired() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_rate_limits_from_token` is never used [INFO] [stdout] --> src/utils/jwt.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn get_rate_limits_from_token(token: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Size` is never used [INFO] [stdout] --> src/types/scoring.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | pub enum Size { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnalysisRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct AnalysisRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeAnalysisRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MultiTimeframeAnalysisRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct CompareRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoreResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct ScoreResponse { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CategoryScores` is never constructed [INFO] [stdout] --> src/types/api.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct CategoryScores { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeframeAnalysisResult` is never constructed [INFO] [stdout] --> src/types/api.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 161 | pub struct TimeframeAnalysisResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfluenceAnalysis` is never constructed [INFO] [stdout] --> src/types/api.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 174 | pub struct ConfluenceAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PerformanceMetrics` is never constructed [INFO] [stdout] --> src/types/api.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct PerformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeMetadata` is never constructed [INFO] [stdout] --> src/types/api.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 196 | pub struct MultiTimeframeMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeAnalysisResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 206 | pub struct MultiTimeframeAnalysisResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FundamentalResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub struct FundamentalResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareResult` is never constructed [INFO] [stdout] --> src/types/api.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct CompareResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct CompareResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateWatchlistRequest` is never constructed [INFO] [stdout] --> src/types/fibo.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct UpdateWatchlistRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `display_name` is never used [INFO] [stdout] --> src/i18n/mod.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Language { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn display_name(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 50s [INFO] running `Command { std: "docker" "inspect" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling inbestia_nexus v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/services/inbestia_api.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use serde::{Deserialize, Serialize}; [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: `AlertCondition` and `AlertStatus` [INFO] [stdout] --> src/services/alert_service.rs:2:35 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::types::alerts::{Alert, AlertCondition, AlertStatus, AlertTrigger}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/services/fibo_api.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `js_sys::Date` [INFO] [stdout] --> src/routes/alerts/alerts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use js_sys::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FiboError` [INFO] [stdout] --> src/routes/auth/login.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::services::fibo_api::{FiboApiClient, FiboError}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `login::Login` [INFO] [stdout] --> src/routes/auth/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use login::Login; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `signup::Signup` [INFO] [stdout] --> src/routes/auth/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use signup::Signup; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::components::scoring::dual_score_card::DualScoreCard` [INFO] [stdout] --> src/routes/scoring/details.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::components::scoring::dual_score_card::DualScoreCard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::api::CandleData` [INFO] [stdout] --> src/routes/scoring/history.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::types::api::CandleData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::AppRoute` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::app::AppRoute; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `js_sys::Date` [INFO] [stdout] --> src/components/dashboard/news_feed.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use js_sys::Date; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `yew_router::prelude` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use yew_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `yew_router::prelude` [INFO] [stdout] --> src/routes/watchlist.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use yew_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `url_clone` [INFO] [stdout] --> src/services/websocket_client.rs:155:25 [INFO] [stdout] | [INFO] [stdout] 155 | let url_clone = url.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_url_clone` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_timeframe_change` [INFO] [stdout] --> src/routes/dashboard.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | let on_timeframe_change = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_timeframe_change` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loading` [INFO] [stdout] --> src/routes/watchlist.rs:79:17 [INFO] [stdout] | [INFO] [stdout] 79 | let loading = loading.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_context` [INFO] [stdout] --> src/routes/watchlist.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | let auth_context = auth_context.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plan_code` [INFO] [stdout] --> src/routes/settings.rs:363:39 [INFO] [stdout] | [INFO] [stdout] 363 | {if let Some((plan_code, plan_color, plan_name)) = plan_info { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plan_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/routes/settings.rs:533:63 [INFO] [stdout] | [INFO] [stdout] 533 | {for (*sessions).iter().enumerate().map(|(idx, session)| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `load_alerts` [INFO] [stdout] --> src/routes/alerts/alerts.rs:134:53 [INFO] [stdout] | [INFO] [stdout] 134 | ... let load_alerts = load_alerts.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_load_alerts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `navigator` [INFO] [stdout] --> src/routes/billing/success.rs:310:41 [INFO] [stdout] | [INFO] [stdout] 310 | ... let navigator = navigator.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_navigator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `long_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let long_class = get_score_class(score.long_score, true); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `short_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let short_class = get_score_class(score.short_score, false); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `confidence_class` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let confidence_class = get_confidence_class(score.confidence); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_confidence_class` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `long_width` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let long_width = format!("{}%", score.long_score * 10.0); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `short_width` [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let short_width = format!("{}%", score.short_score * 10.0); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/components/scoring/score_chart.rs:53:17 [INFO] [stdout] | [INFO] [stdout] 53 | let y = e.offset_y() as f64; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_mouse_move` [INFO] [stdout] --> src/components/scoring/score_chart.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | let on_mouse_move = { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `on_mouse_move_drag` [INFO] [stdout] --> src/components/scoring/score_chart.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let on_mouse_move_drag = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move_drag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_price` [INFO] [stdout] --> src/components/scoring/score_chart.rs:134:21 [INFO] [stdout] | [INFO] [stdout] 134 | let (min_price, max_price, price_range) = if has_candles { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_price` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SubscriptionTier` is never used [INFO] [stdout] --> src/services/mock_auth.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum SubscriptionTier { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `User` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct User { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TierLimits` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct TierLimits { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_limits` is never used [INFO] [stdout] --> src/services/mock_auth.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl SubscriptionTier { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 31 | pub fn get_limits(&self) -> TierLimits { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockAuthService` is never constructed [INFO] [stdout] --> src/services/mock_auth.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct MockAuthService; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_current_user` is never used [INFO] [stdout] --> src/services/mock_auth.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl MockAuthService { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 67 | pub fn get_current_user() -> User { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `analyze_asset`, `analyze_multi_timeframe`, `get_fundamental_data`, and `get_dual_scores_batch` are never used [INFO] [stdout] --> src/services/inbestia_api.rs:26:18 [INFO] [stdout] | [INFO] [stdout] 21 | impl InBestiaApiClient { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub async fn analyze_asset( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn analyze_multi_timeframe( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn get_fundamental_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub async fn get_dual_scores_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoringService` is never constructed [INFO] [stdout] --> src/services/scoring_service.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ScoringService { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/services/scoring_service.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl ScoringService { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 12 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send_message` is never used [INFO] [stdout] --> src/services/websocket_client.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl WebSocketClient { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn send_message(&self, msg: &WebSocketMessage) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_by_id` and `get_active` are never used [INFO] [stdout] --> src/services/alert_service.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl AlertService { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn get_by_id(alert_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_active() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_error` is never used [INFO] [stdout] --> src/contexts/app_state.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 15 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ShortScore` and `Symbol` are never constructed [INFO] [stdout] --> src/routes/dashboard.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | enum SortBy { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 21 | LongScore, [INFO] [stdout] 22 | ShortScore, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 23 | Confidence, [INFO] [stdout] 24 | Symbol, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SortBy` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/auth/protected_route.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_score_text_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:228:4 [INFO] [stdout] | [INFO] [stdout] 228 | fn get_score_text_color(score: f64, is_long: bool) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_score_label` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:238:4 [INFO] [stdout] | [INFO] [stdout] 238 | fn get_score_label(score: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_confidence_text_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn get_confidence_text_color(confidence: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_confidence_bar_color` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:275:4 [INFO] [stdout] | [INFO] [stdout] 275 | fn get_confidence_bar_color(confidence: f64) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_action_recommendation` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:283:4 [INFO] [stdout] | [INFO] [stdout] 283 | fn get_action_recommendation(score: &DualScoreResponse) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_action_with_emoji` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn get_action_with_emoji(score: &DualScoreResponse) -> (String, &'static str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top_drivers` is never used [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:385:4 [INFO] [stdout] | [INFO] [stdout] 385 | fn get_top_drivers(breakdown: &crate::types::api::ScoreBreakdown) -> Html { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiniProps` is never constructed [INFO] [stdout] --> src/components/scoring/dual_score_card.rs:413:12 [INFO] [stdout] | [INFO] [stdout] 413 | pub struct MiniProps { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/category_breakdown.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/confidence_meter.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/scoring/explanation_panel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/charts/candlestick.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/charts/line_chart.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/button.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ButtonVariant` is never used [INFO] [stdout] --> src/components/common/button.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ButtonVariant { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/card.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Props` is never constructed [INFO] [stdout] --> src/components/common/modal.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Props { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_score` is never used [INFO] [stdout] --> src/utils/format.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn format_score(score: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_percentage` is never used [INFO] [stdout] --> src/utils/format.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn format_percentage(value: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_currency` is never used [INFO] [stdout] --> src/utils/format.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn format_currency(value: f64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_timestamp` is never used [INFO] [stdout] --> src/utils/format.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn format_timestamp(timestamp: i64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_api_error` is never used [INFO] [stdout] --> src/utils/api_client.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn handle_api_error(error: &ApiError) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_claims_from_token` is never used [INFO] [stdout] --> src/utils/jwt.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn get_claims_from_token(token: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_current_token_expired` is never used [INFO] [stdout] --> src/utils/jwt.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn is_current_token_expired() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_rate_limits_from_token` is never used [INFO] [stdout] --> src/utils/jwt.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn get_rate_limits_from_token(token: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Size` is never used [INFO] [stdout] --> src/types/scoring.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | pub enum Size { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AnalysisRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct AnalysisRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeAnalysisRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MultiTimeframeAnalysisRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareRequest` is never constructed [INFO] [stdout] --> src/types/api.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct CompareRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoreResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct ScoreResponse { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CategoryScores` is never constructed [INFO] [stdout] --> src/types/api.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct CategoryScores { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeframeAnalysisResult` is never constructed [INFO] [stdout] --> src/types/api.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 161 | pub struct TimeframeAnalysisResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfluenceAnalysis` is never constructed [INFO] [stdout] --> src/types/api.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 174 | pub struct ConfluenceAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PerformanceMetrics` is never constructed [INFO] [stdout] --> src/types/api.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct PerformanceMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeMetadata` is never constructed [INFO] [stdout] --> src/types/api.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 196 | pub struct MultiTimeframeMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultiTimeframeAnalysisResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 206 | pub struct MultiTimeframeAnalysisResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FundamentalResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub struct FundamentalResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareResult` is never constructed [INFO] [stdout] --> src/types/api.rs:255:12 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct CompareResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompareResponse` is never constructed [INFO] [stdout] --> src/types/api.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct CompareResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateWatchlistRequest` is never constructed [INFO] [stdout] --> src/types/fibo.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct UpdateWatchlistRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `display_name` is never used [INFO] [stdout] --> src/i18n/mod.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Language { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn display_name(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 13.09s [INFO] running `Command { std: "docker" "inspect" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/services/inbestia_api.rs:2:13 [INFO] [stderr] | [INFO] [stderr] 2 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AlertCondition` and `AlertStatus` [INFO] [stderr] --> src/services/alert_service.rs:2:35 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::types::alerts::{Alert, AlertCondition, AlertStatus, AlertTrigger}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/services/fibo_api.rs:2:13 [INFO] [stderr] | [INFO] [stderr] 2 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `js_sys::Date` [INFO] [stderr] --> src/routes/alerts/alerts.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use js_sys::Date; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FiboError` [INFO] [stderr] --> src/routes/auth/login.rs:5:48 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::services::fibo_api::{FiboApiClient, FiboError}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `login::Login` [INFO] [stderr] --> src/routes/auth/mod.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | pub use login::Login; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `signup::Signup` [INFO] [stderr] --> src/routes/auth/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub use signup::Signup; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::components::scoring::dual_score_card::DualScoreCard` [INFO] [stderr] --> src/routes/scoring/details.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::components::scoring::dual_score_card::DualScoreCard; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::api::CandleData` [INFO] [stderr] --> src/routes/scoring/history.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::types::api::CandleData; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::app::AppRoute` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::app::AppRoute; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `js_sys::Date` [INFO] [stderr] --> src/components/dashboard/news_feed.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use js_sys::Date; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `yew_router::prelude` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use yew_router::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `yew_router::prelude` [INFO] [stderr] --> src/routes/watchlist.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use yew_router::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `url_clone` [INFO] [stderr] --> src/services/websocket_client.rs:155:25 [INFO] [stderr] | [INFO] [stderr] 155 | let url_clone = url.clone(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_url_clone` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `on_timeframe_change` [INFO] [stderr] --> src/routes/dashboard.rs:328:9 [INFO] [stderr] | [INFO] [stderr] 328 | let on_timeframe_change = { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_timeframe_change` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `loading` [INFO] [stderr] --> src/routes/watchlist.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | let loading = loading.clone(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loading` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `auth_context` [INFO] [stderr] --> src/routes/watchlist.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | let auth_context = auth_context.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `plan_code` [INFO] [stderr] --> src/routes/settings.rs:363:39 [INFO] [stderr] | [INFO] [stderr] 363 | {if let Some((plan_code, plan_color, plan_name)) = plan_info { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plan_code` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/routes/settings.rs:533:63 [INFO] [stderr] | [INFO] [stderr] 533 | {for (*sessions).iter().enumerate().map(|(idx, session)| { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `load_alerts` [INFO] [stderr] --> src/routes/alerts/alerts.rs:134:53 [INFO] [stderr] | [INFO] [stderr] 134 | ... let load_alerts = load_alerts.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_load_alerts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `navigator` [INFO] [stderr] --> src/routes/billing/success.rs:310:41 [INFO] [stderr] | [INFO] [stderr] 310 | ... let navigator = navigator.clone(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_navigator` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `long_class` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let long_class = get_score_class(score.long_score, true); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_class` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `short_class` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let short_class = get_score_class(score.short_score, false); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_class` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `confidence_class` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let confidence_class = get_confidence_class(score.confidence); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_confidence_class` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `long_width` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let long_width = format!("{}%", score.long_score * 10.0); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_long_width` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `short_width` [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | let short_width = format!("{}%", score.short_score * 10.0); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_width` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/components/scoring/score_chart.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | let y = e.offset_y() as f64; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `on_mouse_move` [INFO] [stderr] --> src/components/scoring/score_chart.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | let on_mouse_move = { [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `on_mouse_move_drag` [INFO] [stderr] --> src/components/scoring/score_chart.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | let on_mouse_move_drag = { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_on_mouse_move_drag` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `max_price` [INFO] [stderr] --> src/components/scoring/score_chart.rs:134:21 [INFO] [stderr] | [INFO] [stderr] 134 | let (min_price, max_price, price_range) = if has_candles { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_price` [INFO] [stderr] [INFO] [stderr] warning: enum `SubscriptionTier` is never used [INFO] [stderr] --> src/services/mock_auth.rs:5:10 [INFO] [stderr] | [INFO] [stderr] 5 | pub enum SubscriptionTier { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `User` is never constructed [INFO] [stderr] --> src/services/mock_auth.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct User { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TierLimits` is never constructed [INFO] [stderr] --> src/services/mock_auth.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct TierLimits { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_limits` is never used [INFO] [stderr] --> src/services/mock_auth.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 30 | impl SubscriptionTier { [INFO] [stderr] | --------------------- method in this implementation [INFO] [stderr] 31 | pub fn get_limits(&self) -> TierLimits { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MockAuthService` is never constructed [INFO] [stderr] --> src/services/mock_auth.rs:64:12 [INFO] [stderr] | [INFO] [stderr] 64 | pub struct MockAuthService; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `get_current_user` is never used [INFO] [stderr] --> src/services/mock_auth.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 66 | impl MockAuthService { [INFO] [stderr] | -------------------- associated function in this implementation [INFO] [stderr] 67 | pub fn get_current_user() -> User { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `analyze_asset`, `analyze_multi_timeframe`, `get_fundamental_data`, and `get_dual_scores_batch` are never used [INFO] [stderr] --> src/services/inbestia_api.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 21 | impl InBestiaApiClient { [INFO] [stderr] | ---------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 26 | pub async fn analyze_asset( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 72 | pub async fn analyze_multi_timeframe( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 150 | pub async fn get_fundamental_data( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 216 | pub async fn get_dual_scores_batch( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ScoringService` is never constructed [INFO] [stderr] --> src/services/scoring_service.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct ScoringService { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/services/scoring_service.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 11 | impl ScoringService { [INFO] [stderr] | ------------------- associated function in this implementation [INFO] [stderr] 12 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method `send_message` is never used [INFO] [stderr] --> src/services/websocket_client.rs:196:12 [INFO] [stderr] | [INFO] [stderr] 45 | impl WebSocketClient { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 196 | pub fn send_message(&self, msg: &WebSocketMessage) -> Result<(), String> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `get_by_id` and `get_active` are never used [INFO] [stderr] --> src/services/alert_service.rs:70:12 [INFO] [stderr] | [INFO] [stderr] 10 | impl AlertService { [INFO] [stderr] | ----------------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 70 | pub fn get_by_id(alert_id: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn get_active() -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `clear_error` is never used [INFO] [stderr] --> src/contexts/app_state.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 14 | impl AppState { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] 15 | pub fn clear_error(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `ShortScore` and `Symbol` are never constructed [INFO] [stderr] --> src/routes/dashboard.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 20 | enum SortBy { [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] 21 | LongScore, [INFO] [stderr] 22 | ShortScore, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 23 | Confidence, [INFO] [stderr] 24 | Symbol, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SortBy` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/auth/protected_route.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_score_text_color` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:228:4 [INFO] [stderr] | [INFO] [stderr] 228 | fn get_score_text_color(score: f64, is_long: bool) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_score_label` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:238:4 [INFO] [stderr] | [INFO] [stderr] 238 | fn get_score_label(score: f64) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_confidence_text_color` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:267:4 [INFO] [stderr] | [INFO] [stderr] 267 | fn get_confidence_text_color(confidence: f64) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_confidence_bar_color` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:275:4 [INFO] [stderr] | [INFO] [stderr] 275 | fn get_confidence_bar_color(confidence: f64) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_action_recommendation` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:283:4 [INFO] [stderr] | [INFO] [stderr] 283 | fn get_action_recommendation(score: &DualScoreResponse) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_action_with_emoji` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:304:4 [INFO] [stderr] | [INFO] [stderr] 304 | fn get_action_with_emoji(score: &DualScoreResponse) -> (String, &'static str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_top_drivers` is never used [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:385:4 [INFO] [stderr] | [INFO] [stderr] 385 | fn get_top_drivers(breakdown: &crate::types::api::ScoreBreakdown) -> Html { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MiniProps` is never constructed [INFO] [stderr] --> src/components/scoring/dual_score_card.rs:413:12 [INFO] [stderr] | [INFO] [stderr] 413 | pub struct MiniProps { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/scoring/category_breakdown.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/scoring/confidence_meter.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/scoring/explanation_panel.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/charts/candlestick.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/charts/line_chart.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/common/button.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `ButtonVariant` is never used [INFO] [stderr] --> src/components/common/button.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | pub enum ButtonVariant { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/common/card.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Props` is never constructed [INFO] [stderr] --> src/components/common/modal.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Props { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_score` is never used [INFO] [stderr] --> src/utils/format.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | pub fn format_score(score: f64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_percentage` is never used [INFO] [stderr] --> src/utils/format.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn format_percentage(value: f64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_currency` is never used [INFO] [stderr] --> src/utils/format.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn format_currency(value: f64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_timestamp` is never used [INFO] [stderr] --> src/utils/format.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn format_timestamp(timestamp: i64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `handle_api_error` is never used [INFO] [stderr] --> src/utils/api_client.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn handle_api_error(error: &ApiError) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_claims_from_token` is never used [INFO] [stderr] --> src/utils/jwt.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn get_claims_from_token(token: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_current_token_expired` is never used [INFO] [stderr] --> src/utils/jwt.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn is_current_token_expired() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_rate_limits_from_token` is never used [INFO] [stderr] --> src/utils/jwt.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn get_rate_limits_from_token(token: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Size` is never used [INFO] [stderr] --> src/types/scoring.rs:18:10 [INFO] [stderr] | [INFO] [stderr] 18 | pub enum Size { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `AnalysisRequest` is never constructed [INFO] [stderr] --> src/types/api.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct AnalysisRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MultiTimeframeAnalysisRequest` is never constructed [INFO] [stderr] --> src/types/api.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 23 | pub struct MultiTimeframeAnalysisRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CompareRequest` is never constructed [INFO] [stderr] --> src/types/api.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 41 | pub struct CompareRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ScoreResponse` is never constructed [INFO] [stderr] --> src/types/api.rs:128:12 [INFO] [stderr] | [INFO] [stderr] 128 | pub struct ScoreResponse { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CategoryScores` is never constructed [INFO] [stderr] --> src/types/api.rs:153:12 [INFO] [stderr] | [INFO] [stderr] 153 | pub struct CategoryScores { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TimeframeAnalysisResult` is never constructed [INFO] [stderr] --> src/types/api.rs:161:12 [INFO] [stderr] | [INFO] [stderr] 161 | pub struct TimeframeAnalysisResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ConfluenceAnalysis` is never constructed [INFO] [stderr] --> src/types/api.rs:174:12 [INFO] [stderr] | [INFO] [stderr] 174 | pub struct ConfluenceAnalysis { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PerformanceMetrics` is never constructed [INFO] [stderr] --> src/types/api.rs:184:12 [INFO] [stderr] | [INFO] [stderr] 184 | pub struct PerformanceMetrics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MultiTimeframeMetadata` is never constructed [INFO] [stderr] --> src/types/api.rs:196:12 [INFO] [stderr] | [INFO] [stderr] 196 | pub struct MultiTimeframeMetadata { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MultiTimeframeAnalysisResponse` is never constructed [INFO] [stderr] --> src/types/api.rs:206:12 [INFO] [stderr] | [INFO] [stderr] 206 | pub struct MultiTimeframeAnalysisResponse { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `FundamentalResponse` is never constructed [INFO] [stderr] --> src/types/api.rs:232:12 [INFO] [stderr] | [INFO] [stderr] 232 | pub struct FundamentalResponse { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CompareResult` is never constructed [INFO] [stderr] --> src/types/api.rs:255:12 [INFO] [stderr] | [INFO] [stderr] 255 | pub struct CompareResult { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CompareResponse` is never constructed [INFO] [stderr] --> src/types/api.rs:268:12 [INFO] [stderr] | [INFO] [stderr] 268 | pub struct CompareResponse { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UpdateWatchlistRequest` is never constructed [INFO] [stderr] --> src/types/fibo.rs:268:12 [INFO] [stderr] | [INFO] [stderr] 268 | pub struct UpdateWatchlistRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `display_name` is never used [INFO] [stderr] --> src/i18n/mod.rs:37:12 [INFO] [stderr] | [INFO] [stderr] 22 | impl Language { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 37 | pub fn display_name(&self) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `inbestia_nexus` (bin "inbestia_nexus" test) generated 85 warnings (run `cargo fix --bin "inbestia_nexus" -p inbestia_nexus --tests` to apply 28 suggestions) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.13s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/inbestia_nexus-cc67bb690dd7a891) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e", kill_on_drop: false }` [INFO] [stdout] 2ed1f3e88c520d6dc37e3ceaf5343d2faa0b239d41b647c1875b307df8383f3e