[INFO] cloning repository https://github.com/RcityHarold/Rainbow-Blog-Front [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RcityHarold/Rainbow-Blog-Front" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRcityHarold%2FRainbow-Blog-Front", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRcityHarold%2FRainbow-Blog-Front'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 05a302a69deb22c25038e252ea17235e531e71a6 [INFO] checking RcityHarold/Rainbow-Blog-Front against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRcityHarold%2FRainbow-Blog-Front" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/RcityHarold/Rainbow-Blog-Front [INFO] finished tweaking git repo https://github.com/RcityHarold/Rainbow-Blog-Front [INFO] tweaked toml for git repo https://github.com/RcityHarold/Rainbow-Blog-Front written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/RcityHarold/Rainbow-Blog-Front on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/RcityHarold/Rainbow-Blog-Front 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6d329f612f749a7873704dbcd13c910a75a33f7ef1e64084673da5e87ab4ed29 [INFO] running `Command { std: "docker" "start" "-a" "6d329f612f749a7873704dbcd13c910a75a33f7ef1e64084673da5e87ab4ed29", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6d329f612f749a7873704dbcd13c910a75a33f7ef1e64084673da5e87ab4ed29", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6d329f612f749a7873704dbcd13c910a75a33f7ef1e64084673da5e87ab4ed29", kill_on_drop: false }` [INFO] [stdout] 6d329f612f749a7873704dbcd13c910a75a33f7ef1e64084673da5e87ab4ed29 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d796cbd0cda979001a9ed886193a8cc4a3e3a5d4e31a16fa79a8701308d4acbe [INFO] running `Command { std: "docker" "start" "-a" "d796cbd0cda979001a9ed886193a8cc4a3e3a5d4e31a16fa79a8701308d4acbe", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.101 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling wasm-bindgen v0.2.101 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking dioxus-core-types v0.6.2 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling lazy-js-bundle v0.6.2 [INFO] [stderr] Checking longest-increasing-subsequence v0.1.0 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling find-msvc-tools v0.1.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Compiling cc v1.2.36 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Compiling dioxus-document v0.6.3 [INFO] [stderr] Checking keyboard-types v0.7.0 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking tokio v1.47.1 [INFO] [stderr] Checking syn v2.0.106 [INFO] [stderr] Compiling dioxus-interpreter-js v0.6.2 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking euclid v0.22.11 [INFO] [stderr] Checking tracing-subscriber v0.3.20 [INFO] [stderr] Compiling const_format_proc_macros v0.2.34 [INFO] [stderr] Compiling dioxus-config-macro v0.6.2 [INFO] [stderr] Compiling dioxus-web v0.6.3 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Checking sledgehammer_utils v0.3.1 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking const_format v0.2.34 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking dioxus-rsx v0.6.2 [INFO] [stderr] Checking hyper v1.7.0 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.101 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.101 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling warnings-macro v0.2.0 [INFO] [stderr] Checking generational-box v0.6.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling const-serialize-macro v0.6.2 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.101 [INFO] [stderr] Compiling dioxus-core-macro v0.6.3 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking warnings v0.2.1 [INFO] [stderr] Compiling dioxus-html-internal-macro v0.6.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking zerovec v0.11.4 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking js-sys v0.3.78 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Compiling enumset_derive v0.14.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking dioxus-cli-config v0.6.3 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.3 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Compiling sledgehammer_bindgen_macro v0.6.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking tungstenite v0.23.0 [INFO] [stderr] Checking enumset v1.1.10 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking hyper-util v0.1.16 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking sledgehammer_bindgen v0.6.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking dioxus-logger v0.6.2 [INFO] [stderr] Compiling dioxus-router-macro v0.6.3 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking console_error_panic_hook v0.1.7 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking const-serialize v0.6.2 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking web-sys v0.3.78 [INFO] [stderr] Checking wasm-bindgen-futures v0.4.51 [INFO] [stderr] Checking manganis-core v0.6.2 [INFO] [stderr] Checking serde-wasm-bindgen v0.5.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking gloo-timers v0.3.0 [INFO] [stderr] Checking serde-wasm-bindgen v0.6.5 [INFO] [stderr] Checking dioxus-core v0.6.3 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Compiling manganis-macro v0.6.2 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.23 [INFO] [stderr] Checking manganis v0.6.2 [INFO] [stderr] Checking dioxus-signals v0.6.3 [INFO] [stderr] Checking dioxus-history v0.6.2 [INFO] [stderr] Checking dioxus-devtools-types v0.6.2 [INFO] [stderr] Checking dioxus-hooks v0.6.2 [INFO] [stderr] Checking dioxus-devtools v0.6.2 [INFO] [stderr] Checking dioxus-html v0.6.3 [INFO] [stderr] Checking dioxus-lib v0.6.2 [INFO] [stderr] Checking dioxus v0.6.3 [INFO] [stderr] Checking dioxus-router v0.6.3 [INFO] [stderr] Checking gloo-utils v0.2.0 [INFO] [stderr] Checking gloo-storage v0.3.0 [INFO] [stderr] Checking rainbow-blog-front v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `ApiError` [INFO] [stdout] --> src/api/auth.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use super::client::{ApiClient, ApiResult, ApiError}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RegisterRequest` [INFO] [stdout] --> src/api/auth.rs:3:55 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::auth::{AuthResponse, LoginRequest, RegisterRequest, User, RainbowAuthResponse, RainbowAuthUser}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/api/auth.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pagination` [INFO] [stdout] --> src/api/users.rs:4:53 [INFO] [stdout] | [INFO] [stdout] 4 | article::{ArticleListResponse, Article, Author, Pagination}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> src/api/users.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Serialize, Deserialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/api/tags.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `article::ArticleListResponse` [INFO] [stdout] --> src/api/series.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | article::ArticleListResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dioxus_router::prelude::*` [INFO] [stdout] --> src/components/article_card.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dioxus_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gloo_timers::future::TimeoutFuture` [INFO] [stdout] --> src/components/comment_v2.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use gloo_timers::future::TimeoutFuture; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/components/image_upload.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use web_sys::{File, HtmlInputElement}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HtmlElement` [INFO] [stdout] --> src/components/highlight_system.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use web_sys::{window, Selection, Range, HtmlElement}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::JsCast` [INFO] [stdout] --> src/components/highlight_system.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use wasm_bindgen::JsCast; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CreateHighlightRequest` [INFO] [stdout] --> src/components/highlight_system.rs:4:43 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::models::highlight::{Highlight, CreateHighlightRequest}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/components/highlight_system.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `subscription_widget::*` [INFO] [stdout] --> src/components/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use subscription_widget::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::models::user::User` [INFO] [stdout] --> src/models/comment.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::user::User; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/pages/home.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArticleListResponse` [INFO] [stdout] --> src/pages/home.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | models::{article::{Article, ArticleListResponse}, tag::Tag}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `articles::ArticleService` [INFO] [stdout] --> src/pages/profile.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | api::{users::UserService, articles::ArticleService, bookmarks::BookmarkService}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SearchArticlesRequest` [INFO] [stdout] --> src/pages/search.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | api::search::{SearchService, SearchArticlesRequest, SearchSuggestionsRequest, SearchAllRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hooks::use_auth` [INFO] [stdout] --> src/pages/series.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | hooks::use_auth, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `articles::ArticleService` and `domains::DomainService` [INFO] [stdout] --> src/pages/publication_detail.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | api::{publications::PublicationService, articles::ArticleService, domains::DomainService}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ApiError` [INFO] [stdout] --> src/api/auth.rs:1:43 [INFO] [stdout] | [INFO] [stdout] 1 | use super::client::{ApiClient, ApiResult, ApiError}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RegisterRequest` [INFO] [stdout] --> src/api/auth.rs:3:55 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::auth::{AuthResponse, LoginRequest, RegisterRequest, User, RainbowAuthResponse, RainbowAuthUser}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/api/auth.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pagination` [INFO] [stdout] --> src/api/users.rs:4:53 [INFO] [stdout] | [INFO] [stdout] 4 | article::{ArticleListResponse, Article, Author, Pagination}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> src/api/users.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Serialize, Deserialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/api/tags.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `article::ArticleListResponse` [INFO] [stdout] --> src/api/series.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | article::ArticleListResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dioxus_router::prelude::*` [INFO] [stdout] --> src/components/article_card.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dioxus_router::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gloo_timers::future::TimeoutFuture` [INFO] [stdout] --> src/components/comment_v2.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use gloo_timers::future::TimeoutFuture; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/components/image_upload.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use web_sys::{File, HtmlInputElement}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HtmlElement` [INFO] [stdout] --> src/components/highlight_system.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use web_sys::{window, Selection, Range, HtmlElement}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wasm_bindgen::JsCast` [INFO] [stdout] --> src/components/highlight_system.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use wasm_bindgen::JsCast; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CreateHighlightRequest` [INFO] [stdout] --> src/components/highlight_system.rs:4:43 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::models::highlight::{Highlight, CreateHighlightRequest}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/components/highlight_system.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `subscription_widget::*` [INFO] [stdout] --> src/components/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use subscription_widget::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::models::user::User` [INFO] [stdout] --> src/models/comment.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::user::User; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/pages/home.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArticleListResponse` [INFO] [stdout] --> src/pages/home.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | models::{article::{Article, ArticleListResponse}, tag::Tag}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `articles::ArticleService` [INFO] [stdout] --> src/pages/profile.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | api::{users::UserService, articles::ArticleService, bookmarks::BookmarkService}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SearchArticlesRequest` [INFO] [stdout] --> src/pages/search.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | api::search::{SearchService, SearchArticlesRequest, SearchSuggestionsRequest, SearchAllRequest}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hooks::use_auth` [INFO] [stdout] --> src/pages/series.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | hooks::use_auth, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `articles::ArticleService` and `domains::DomainService` [INFO] [stdout] --> src/pages/publication_detail.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | api::{publications::PublicationService, articles::ArticleService, domains::DomainService}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures_util::StreamExt` [INFO] [stdout] --> src/pages/home.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use futures_util::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/api/auth.rs:89:20 [INFO] [stdout] | [INFO] [stdout] 89 | if let Err(e) = UserService::create_user_profile(&profile_request).await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `page` [INFO] [stdout] --> src/api/comments.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | page: Option, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `per_page` [INFO] [stdout] --> src/api/comments.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | per_page: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_per_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sort` [INFO] [stdout] --> src/api/comments.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | sort: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sort` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/comment_v2.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut show_reply_form = use_signal(|| None::); [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: unused variable: `parent_id_clone` [INFO] [stdout] --> src/components/comment_v2.rs:431:9 [INFO] [stdout] | [INFO] [stdout] 431 | let parent_id_clone = parent_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_id_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures_util::StreamExt` [INFO] [stdout] --> src/pages/home.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use futures_util::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/api/auth.rs:89:20 [INFO] [stdout] | [INFO] [stdout] 89 | if let Err(e) = UserService::create_user_profile(&profile_request).await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `highlight` [INFO] [stdout] --> src/components/highlight_system.rs:141:37 [INFO] [stdout] | [INFO] [stdout] 141 | let show_highlight_note = move |highlight: &Highlight| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_highlight_color` [INFO] [stdout] --> src/components/highlight_system.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let current_highlight_color = current_highlight_color.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_highlight_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_highlight_note` [INFO] [stdout] --> src/components/highlight_system.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | let show_highlight_note = move |highlight: &Highlight| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_highlight_note` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | let mut articles = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | let mut articles = articles.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut loading = use_signal(|| false); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut plans = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let mut subscription_status = subscription_status.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hooks/use_theme.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut theme = use_signal(|| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `page` [INFO] [stdout] --> src/api/comments.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | page: Option, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `per_page` [INFO] [stdout] --> src/api/comments.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | per_page: Option, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_per_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sort` [INFO] [stdout] --> src/api/comments.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | sort: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sort` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/comment_v2.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut show_reply_form = use_signal(|| None::); [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: unused variable: `parent_id_clone` [INFO] [stdout] --> src/components/comment_v2.rs:431:9 [INFO] [stdout] | [INFO] [stdout] 431 | let parent_id_clone = parent_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_id_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `highlight` [INFO] [stdout] --> src/components/highlight_system.rs:141:37 [INFO] [stdout] | [INFO] [stdout] 141 | let show_highlight_note = move |highlight: &Highlight| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_highlight_color` [INFO] [stdout] --> src/components/highlight_system.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let current_highlight_color = current_highlight_color.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_highlight_color` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_highlight_note` [INFO] [stdout] --> src/components/highlight_system.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | let show_highlight_note = move |highlight: &Highlight| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_highlight_note` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | let mut articles = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | let mut articles = articles.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/recommendations.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut loading = use_signal(|| false); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut plans = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/components/subscription_widget.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let mut subscription_status = subscription_status.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hooks/use_theme.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut theme = use_signal(|| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut has_more = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut selected_sort = use_signal(|| "newest"); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut tags = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | let mut error = error.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | let mut has_more = has_more.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut articles = articles.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | let mut has_more = has_more.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/article.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/article.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/editor_v2.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut auto_save_enabled = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/pages/editor_v2.rs:186:17 [INFO] [stdout] | [INFO] [stdout] 186 | let handle = gloo_timers::callback::Interval::new(30_000, move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth` [INFO] [stdout] --> src/pages/editor_v2.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | let auth = use_auth(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_auth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `navigator` [INFO] [stdout] --> src/pages/editor_v2.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let navigator = use_navigator(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_navigator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut bookmarks = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bookmarks` [INFO] [stdout] --> src/pages/profile.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut bookmarks = use_signal(|| Vec::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bookmarks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:653:9 [INFO] [stdout] | [INFO] [stdout] 653 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:656:9 [INFO] [stdout] | [INFO] [stdout] 656 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/search.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_page` [INFO] [stdout] --> src/pages/search.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `route` [INFO] [stdout] --> src/pages/search.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let route = use_route::(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_route` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | let mut tag = use_signal(|| None::); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | let mut has_more = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut selected_sort = use_signal(|| "newest"); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut tags = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | let mut error = error.clone(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | let mut has_more = has_more.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut articles = articles.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let mut loading = loading.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/home.rs:115:13 [INFO] [stdout] | [INFO] [stdout] 115 | let mut has_more = has_more.clone(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle_save` [INFO] [stdout] --> src/pages/series.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | let handle_save = move |_: Event| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_save` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `add_article_to_series` [INFO] [stdout] --> src/pages/series_detail.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let add_article_to_series = move |article_id: String| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_article_to_series` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remove_article` [INFO] [stdout] --> src/pages/series_detail.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | let remove_article = move |article_id: String| { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remove_article` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/article.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/article.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/publication_detail.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `domains` [INFO] [stdout] --> src/pages/publication_detail.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_domains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/create_publication.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | let mut handle_create = handle_create.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle_create` [INFO] [stdout] --> src/pages/create_publication.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | let mut handle_create = handle_create.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:249:41 [INFO] [stdout] | [INFO] [stdout] 249 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:265:41 [INFO] [stdout] | [INFO] [stdout] 265 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:281:41 [INFO] [stdout] | [INFO] [stdout] 281 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let mut creating = use_signal(|| false); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut platform_host = use_signal(|| String::from("platform.com")); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth` [INFO] [stdout] --> src/pages/domain_management.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let auth = use_auth(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_auth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/editor_v2.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut auto_save_enabled = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/pages/editor_v2.rs:186:17 [INFO] [stdout] | [INFO] [stdout] 186 | let handle = gloo_timers::callback::Interval::new(30_000, move || { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth` [INFO] [stdout] --> src/pages/editor_v2.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | let auth = use_auth(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_auth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `navigator` [INFO] [stdout] --> src/pages/editor_v2.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let navigator = use_navigator(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_navigator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut bookmarks = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bookmarks` [INFO] [stdout] --> src/pages/profile.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut bookmarks = use_signal(|| Vec::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bookmarks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:653:9 [INFO] [stdout] | [INFO] [stdout] 653 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/profile.rs:656:9 [INFO] [stdout] | [INFO] [stdout] 656 | let mut error = use_signal(|| None::); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/search.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_page` [INFO] [stdout] --> src/pages/search.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let mut current_page = use_signal(|| 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `route` [INFO] [stdout] --> src/pages/search.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let route = use_route::(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_route` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | let mut tag = use_signal(|| None::); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let mut articles = use_signal(|| Vec::
::new()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/tags.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle_save` [INFO] [stdout] --> src/pages/series.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | let handle_save = move |_: Event| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_save` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `add_article_to_series` [INFO] [stdout] --> src/pages/series_detail.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let add_article_to_series = move |article_id: String| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_add_article_to_series` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `remove_article` [INFO] [stdout] --> src/pages/series_detail.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | let remove_article = move |article_id: String| { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remove_article` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `patch` is never used [INFO] [stdout] --> src/api/client.rs:215:18 [INFO] [stdout] | [INFO] [stdout] 42 | impl ApiClient { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn patch Deserialize<'de>>( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `logout` and `refresh_token` are never used [INFO] [stdout] --> src/api/auth.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 11 | impl AuthService { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn logout() -> ApiResult<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn refresh_token() -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_trending_articles`, `get_popular_articles`, `unpublish_article`, and `delete_article` are never used [INFO] [stdout] --> src/api/articles.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 120 | impl ArticleService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 202 | pub async fn get_trending_articles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub async fn get_popular_articles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 502 | pub async fn unpublish_article(id: &str) -> ApiResult
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 512 | pub async fn delete_article(id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_user_stats`, `get_followers`, and `get_following` are never used [INFO] [stdout] --> src/api/users.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 22 | impl UserService { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub async fn get_user_stats(username: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn get_followers( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn get_following( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchArticlesRequest` is never constructed [INFO] [stdout] --> src/api/search.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SearchArticlesRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchArticlesResponse` is never constructed [INFO] [stdout] --> src/api/search.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct SearchArticlesResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `series` is never read [INFO] [stdout] --> src/api/search.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct SearchAllResponse { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | pub series: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchAllResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `type` and `relevance` are never read [INFO] [stdout] --> src/api/search.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct SearchSuggestion { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 51 | pub text: String, [INFO] [stdout] 52 | pub r#type: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | pub relevance: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchSuggestion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `search_articles` and `get_trending_searches` are never used [INFO] [stdout] --> src/api/search.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 63 | impl SearchService { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 64 | pub async fn search_articles(request: SearchArticlesRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub async fn get_trending_searches(limit: Option) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateCommentRequest` is never constructed [INFO] [stdout] --> src/api/comments.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct UpdateCommentRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommentListResponse` is never constructed [INFO] [stdout] --> src/api/comments.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CommentListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `update_comment`, `delete_comment`, and `report_comment` are never used [INFO] [stdout] --> src/api/comments.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 31 | impl CommentService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn update_comment(id: &str, request: &UpdateCommentRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub async fn delete_comment(id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub async fn report_comment(id: &str, reason: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_version`, `compare_versions`, and `restore_version` are never used [INFO] [stdout] --> src/api/versions.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VersionService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | pub async fn get_version(article_id: &str, version_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn compare_versions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub async fn restore_version(request: &RestoreVersionRequest) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_series` and `reorder_series_articles` are never used [INFO] [stdout] --> src/api/series.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl SeriesService { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | pub async fn get_series(series_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub async fn reorder_series_articles(series_id: &str, article_orders: Vec<(String, i32)>) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `API_CLIENT` is never used [INFO] [stdout] --> src/api/upload.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | static API_CLIENT: Lazy = Lazy::new(ApiClient::new); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `filename`, `size`, and `content_type` are never read [INFO] [stdout] --> src/api/upload.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct UploadResponse { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 10 | pub url: String, [INFO] [stdout] 11 | pub filename: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 12 | pub size: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | pub content_type: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UploadResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `upload_avatar` is never used [INFO] [stdout] --> src/api/upload.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 18 | impl UploadService { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub async fn upload_avatar(file: File) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total`, `algorithm_used`, and `generated_at` are never read [INFO] [stdout] --> src/api/recommendations.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct RecommendationResponse { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 45 | pub articles: Vec, [INFO] [stdout] 46 | pub total: i64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | pub algorithm_used: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub generated_at: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RecommendationResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total`, `algorithm_used`, and `generated_at` are never read [INFO] [stdout] --> src/api/recommendations.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct TrendingResponse { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 60 | pub articles: Vec, [INFO] [stdout] 61 | pub total: i64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 62 | pub algorithm_used: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 63 | pub generated_at: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrendingResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/recommendations.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct TrendingArticle { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 68 | #[serde(deserialize_with = "deserialize_article_id")] [INFO] [stdout] 69 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 70 | pub title: String, [INFO] [stdout] 71 | pub subtitle: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 72 | pub slug: String, [INFO] [stdout] 73 | pub excerpt: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 74 | pub cover_image_url: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 75 | pub author: AuthorInfo, [INFO] [stdout] 76 | pub publication: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | pub status: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 78 | pub is_paid_content: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | pub is_featured: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 80 | pub reading_time: i32, [INFO] [stdout] 81 | pub view_count: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | pub clap_count: i32, [INFO] [stdout] 83 | pub comment_count: i32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 84 | pub tags: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 85 | pub created_at: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 86 | pub published_at: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 87 | pub score: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | pub reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrendingArticle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `username`, `avatar_url`, and `is_verified` are never read [INFO] [stdout] --> src/api/recommendations.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct AuthorInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 93 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 94 | pub username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 95 | pub display_name: String, [INFO] [stdout] 96 | pub avatar_url: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 97 | pub is_verified: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthorInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `name`, `slug`, and `logo_url` are never read [INFO] [stdout] --> src/api/recommendations.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct PublicationInfo { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 102 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 103 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 104 | pub slug: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 105 | pub logo_url: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PublicationInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `name`, and `slug` are never read [INFO] [stdout] --> src/api/recommendations.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 109 | pub struct TagInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 110 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 111 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 112 | pub slug: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_following_feed` is never used [INFO] [stdout] --> src/api/recommendations.rs:193:18 [INFO] [stdout] | [INFO] [stdout] 117 | impl RecommendationService { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn get_following_feed(limit: Option, page: Option) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `update_publication`, `delete_publication`, `update_member_role`, `remove_member`, and `get_following_publications` are never used [INFO] [stdout] --> src/api/publications.rs:83:18 [INFO] [stdout] | [INFO] [stdout] 10 | impl PublicationService { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub async fn update_publication(slug: &str, request: &UpdatePublicationRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn delete_publication(slug: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub async fn update_member_role( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub async fn remove_member(publication_id: &str, user_id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn get_following_publications() -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `per_page` is never read [INFO] [stdout] --> src/api/publications.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 49 | struct BackendPage { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 53 | per_page: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `per_page` is never read [INFO] [stdout] --> src/api/publications.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 127 | struct BackendMembersPage { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | per_page: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tags` is never read [INFO] [stdout] --> src/api/publications.rs:238:31 [INFO] [stdout] | [INFO] [stdout] 225 | struct BackendItem { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 238 | #[serde(default)] tags: Option>, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_domain_status` is never used [INFO] [stdout] --> src/api/domains.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl DomainService { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub async fn get_domain_status(domain_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total` is never read [INFO] [stdout] --> src/api/domains.rs:14:63 [INFO] [stdout] | [INFO] [stdout] 14 | struct BackendList { domains: Vec, total: i64 } [INFO] [stdout] | ----------- field in this struct ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/api/subscriptions.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl SubscriptionService { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub async fn get_plan(plan_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn update_plan(plan_id: &str, request: &UpdateSubscriptionPlanRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn create_subscription(request: &CreateSubscriptionRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn get_subscription(subscription_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub async fn get_payment_methods() -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub async fn add_payment_method(request: &CreatePaymentMethodRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub async fn delete_payment_method(payment_method_id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub async fn set_default_payment_method(payment_method_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn check_subscription_status(creator_id: &str) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `class` and `toggle` are never used [INFO] [stdout] --> src/hooks/use_theme.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl Theme { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 11 | pub fn class(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn toggle(&self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `theme` is never read [INFO] [stdout] --> src/hooks/use_theme.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct ThemeState { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 34 | theme: Signal, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThemeState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `current` and `toggle` are never used [INFO] [stdout] --> src/hooks/use_theme.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl ThemeState { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 38 | pub fn current(&self) -> Theme { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn toggle(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_theme` is never used [INFO] [stdout] --> src/hooks/use_theme.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn use_theme() -> ThemeState { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegisterRequest` is never constructed [INFO] [stdout] --> src/models/auth.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct RegisterRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserProfile` is never constructed [INFO] [stdout] --> src/models/auth.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct UserProfile { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserStats` is never constructed [INFO] [stdout] --> src/models/user.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct UserStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserListResponse` is never constructed [INFO] [stdout] --> src/models/user.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct UserListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VersionDiff` is never constructed [INFO] [stdout] --> src/models/version.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct VersionDiff { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArticleVersionComparison` is never constructed [INFO] [stdout] --> src/models/version.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ArticleVersionComparison { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RestoreVersionRequest` is never constructed [INFO] [stdout] --> src/models/version.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct RestoreVersionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateHighlightRequest` is never constructed [INFO] [stdout] --> src/models/highlight.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CreateHighlightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateHighlightRequest` is never constructed [INFO] [stdout] --> src/models/highlight.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct UpdateHighlightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HighlightListResponse` is never constructed [INFO] [stdout] --> src/models/highlight.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct HighlightListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePublicationRequest` is never constructed [INFO] [stdout] --> src/models/publication.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct UpdatePublicationRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateSubdomainResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct CreateSubdomainResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateCustomDomainResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct CreateCustomDomainResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AutoVerification` is never constructed [INFO] [stdout] --> src/models/domain.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct AutoVerification { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomainStatusResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct DomainStatusResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomainProgress` is never constructed [INFO] [stdout] --> src/models/domain.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | pub struct DomainProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VerificationStatus` is never constructed [INFO] [stdout] --> src/models/domain.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct VerificationStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RecordVerification` is never constructed [INFO] [stdout] --> src/models/domain.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct RecordVerification { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateSubscriptionPlanRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct UpdateSubscriptionPlanRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateSubscriptionRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct CreateSubscriptionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PaymentMethod` is never constructed [INFO] [stdout] --> src/models/subscription.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct PaymentMethod { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePaymentMethodRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct CreatePaymentMethodRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/publication_detail.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `article_id`, `created_at`, and `author_username` are never read [INFO] [stdout] --> src/models/bookmark.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct BookmarkItem { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 6 | pub id: String, [INFO] [stdout] 7 | pub article_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub note: Option, [INFO] [stdout] 9 | pub created_at: DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub author_username: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BookmarkItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `success` is never read [INFO] [stdout] --> src/models/bookmark.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct BookmarkListResponse { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 23 | pub success: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BookmarkListResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `domains` [INFO] [stdout] --> src/pages/publication_detail.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_domains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/create_publication.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | let mut handle_create = handle_create.clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle_create` [INFO] [stdout] --> src/pages/create_publication.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | let mut handle_create = handle_create.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:249:41 [INFO] [stdout] | [INFO] [stdout] 249 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:265:41 [INFO] [stdout] | [INFO] [stdout] 265 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:281:41 [INFO] [stdout] | [INFO] [stdout] 281 | ... let mut domains = domains.clone(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut domains = use_signal(|| Vec::::new()); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut loading = use_signal(|| true); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | let mut creating = use_signal(|| false); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/pages/domain_management.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut platform_host = use_signal(|| String::from("platform.com")); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth` [INFO] [stdout] --> src/pages/domain_management.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let auth = use_auth(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_auth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `patch` is never used [INFO] [stdout] --> src/api/client.rs:215:18 [INFO] [stdout] | [INFO] [stdout] 42 | impl ApiClient { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn patch Deserialize<'de>>( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `logout` and `refresh_token` are never used [INFO] [stdout] --> src/api/auth.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 11 | impl AuthService { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn logout() -> ApiResult<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn refresh_token() -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_trending_articles`, `get_popular_articles`, `unpublish_article`, and `delete_article` are never used [INFO] [stdout] --> src/api/articles.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 120 | impl ArticleService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 202 | pub async fn get_trending_articles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | pub async fn get_popular_articles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 502 | pub async fn unpublish_article(id: &str) -> ApiResult
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 512 | pub async fn delete_article(id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_user_stats`, `get_followers`, and `get_following` are never used [INFO] [stdout] --> src/api/users.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 22 | impl UserService { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub async fn get_user_stats(username: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn get_followers( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn get_following( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchArticlesRequest` is never constructed [INFO] [stdout] --> src/api/search.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SearchArticlesRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchArticlesResponse` is never constructed [INFO] [stdout] --> src/api/search.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct SearchArticlesResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `series` is never read [INFO] [stdout] --> src/api/search.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct SearchAllResponse { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | pub series: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchAllResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `type` and `relevance` are never read [INFO] [stdout] --> src/api/search.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct SearchSuggestion { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 51 | pub text: String, [INFO] [stdout] 52 | pub r#type: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 53 | pub relevance: f32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchSuggestion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `search_articles` and `get_trending_searches` are never used [INFO] [stdout] --> src/api/search.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 63 | impl SearchService { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 64 | pub async fn search_articles(request: SearchArticlesRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub async fn get_trending_searches(limit: Option) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateCommentRequest` is never constructed [INFO] [stdout] --> src/api/comments.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct UpdateCommentRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommentListResponse` is never constructed [INFO] [stdout] --> src/api/comments.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CommentListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `update_comment`, `delete_comment`, and `report_comment` are never used [INFO] [stdout] --> src/api/comments.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 31 | impl CommentService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn update_comment(id: &str, request: &UpdateCommentRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub async fn delete_comment(id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub async fn report_comment(id: &str, reason: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_version`, `compare_versions`, and `restore_version` are never used [INFO] [stdout] --> src/api/versions.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl VersionService { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | pub async fn get_version(article_id: &str, version_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn compare_versions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub async fn restore_version(request: &RestoreVersionRequest) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `get_series` and `reorder_series_articles` are never used [INFO] [stdout] --> src/api/series.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl SeriesService { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | pub async fn get_series(series_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub async fn reorder_series_articles(series_id: &str, article_orders: Vec<(String, i32)>) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `API_CLIENT` is never used [INFO] [stdout] --> src/api/upload.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | static API_CLIENT: Lazy = Lazy::new(ApiClient::new); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `filename`, `size`, and `content_type` are never read [INFO] [stdout] --> src/api/upload.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct UploadResponse { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 10 | pub url: String, [INFO] [stdout] 11 | pub filename: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 12 | pub size: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | pub content_type: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UploadResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `upload_avatar` is never used [INFO] [stdout] --> src/api/upload.rs:85:18 [INFO] [stdout] | [INFO] [stdout] 18 | impl UploadService { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub async fn upload_avatar(file: File) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total`, `algorithm_used`, and `generated_at` are never read [INFO] [stdout] --> src/api/recommendations.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct RecommendationResponse { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 45 | pub articles: Vec, [INFO] [stdout] 46 | pub total: i64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 47 | pub algorithm_used: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 48 | pub generated_at: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RecommendationResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total`, `algorithm_used`, and `generated_at` are never read [INFO] [stdout] --> src/api/recommendations.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 59 | pub struct TrendingResponse { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 60 | pub articles: Vec, [INFO] [stdout] 61 | pub total: i64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 62 | pub algorithm_used: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 63 | pub generated_at: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrendingResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/recommendations.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct TrendingArticle { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 68 | #[serde(deserialize_with = "deserialize_article_id")] [INFO] [stdout] 69 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 70 | pub title: String, [INFO] [stdout] 71 | pub subtitle: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 72 | pub slug: String, [INFO] [stdout] 73 | pub excerpt: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 74 | pub cover_image_url: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 75 | pub author: AuthorInfo, [INFO] [stdout] 76 | pub publication: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | pub status: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 78 | pub is_paid_content: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 79 | pub is_featured: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 80 | pub reading_time: i32, [INFO] [stdout] 81 | pub view_count: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | pub clap_count: i32, [INFO] [stdout] 83 | pub comment_count: i32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 84 | pub tags: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 85 | pub created_at: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 86 | pub published_at: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 87 | pub score: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 88 | pub reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrendingArticle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `username`, `avatar_url`, and `is_verified` are never read [INFO] [stdout] --> src/api/recommendations.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct AuthorInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 93 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 94 | pub username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 95 | pub display_name: String, [INFO] [stdout] 96 | pub avatar_url: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 97 | pub is_verified: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthorInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `name`, `slug`, and `logo_url` are never read [INFO] [stdout] --> src/api/recommendations.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct PublicationInfo { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 102 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 103 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 104 | pub slug: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 105 | pub logo_url: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PublicationInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `name`, and `slug` are never read [INFO] [stdout] --> src/api/recommendations.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 109 | pub struct TagInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 110 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 111 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 112 | pub slug: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_following_feed` is never used [INFO] [stdout] --> src/api/recommendations.rs:193:18 [INFO] [stdout] | [INFO] [stdout] 117 | impl RecommendationService { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn get_following_feed(limit: Option, page: Option) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `update_publication`, `delete_publication`, `update_member_role`, `remove_member`, and `get_following_publications` are never used [INFO] [stdout] --> src/api/publications.rs:83:18 [INFO] [stdout] | [INFO] [stdout] 10 | impl PublicationService { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub async fn update_publication(slug: &str, request: &UpdatePublicationRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn delete_publication(slug: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub async fn update_member_role( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub async fn remove_member(publication_id: &str, user_id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn get_following_publications() -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `per_page` is never read [INFO] [stdout] --> src/api/publications.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 49 | struct BackendPage { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 53 | per_page: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `per_page` is never read [INFO] [stdout] --> src/api/publications.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 127 | struct BackendMembersPage { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | per_page: i32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tags` is never read [INFO] [stdout] --> src/api/publications.rs:238:31 [INFO] [stdout] | [INFO] [stdout] 225 | struct BackendItem { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 238 | #[serde(default)] tags: Option>, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_domain_status` is never used [INFO] [stdout] --> src/api/domains.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl DomainService { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub async fn get_domain_status(domain_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total` is never read [INFO] [stdout] --> src/api/domains.rs:14:63 [INFO] [stdout] | [INFO] [stdout] 14 | struct BackendList { domains: Vec, total: i64 } [INFO] [stdout] | ----------- field in this struct ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/api/subscriptions.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl SubscriptionService { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub async fn get_plan(plan_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn update_plan(plan_id: &str, request: &UpdateSubscriptionPlanRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn create_subscription(request: &CreateSubscriptionRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn get_subscription(subscription_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub async fn get_payment_methods() -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub async fn add_payment_method(request: &CreatePaymentMethodRequest) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub async fn delete_payment_method(payment_method_id: &str) -> ApiResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub async fn set_default_payment_method(payment_method_id: &str) -> ApiResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn check_subscription_status(creator_id: &str) -> ApiResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `class` and `toggle` are never used [INFO] [stdout] --> src/hooks/use_theme.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl Theme { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 11 | pub fn class(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn toggle(&self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `theme` is never read [INFO] [stdout] --> src/hooks/use_theme.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct ThemeState { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 34 | theme: Signal, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ThemeState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `current` and `toggle` are never used [INFO] [stdout] --> src/hooks/use_theme.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl ThemeState { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 38 | pub fn current(&self) -> Theme { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn toggle(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_theme` is never used [INFO] [stdout] --> src/hooks/use_theme.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn use_theme() -> ThemeState { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegisterRequest` is never constructed [INFO] [stdout] --> src/models/auth.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct RegisterRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserProfile` is never constructed [INFO] [stdout] --> src/models/auth.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct UserProfile { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserStats` is never constructed [INFO] [stdout] --> src/models/user.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct UserStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserListResponse` is never constructed [INFO] [stdout] --> src/models/user.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | pub struct UserListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VersionDiff` is never constructed [INFO] [stdout] --> src/models/version.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct VersionDiff { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArticleVersionComparison` is never constructed [INFO] [stdout] --> src/models/version.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ArticleVersionComparison { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RestoreVersionRequest` is never constructed [INFO] [stdout] --> src/models/version.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct RestoreVersionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateHighlightRequest` is never constructed [INFO] [stdout] --> src/models/highlight.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct CreateHighlightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateHighlightRequest` is never constructed [INFO] [stdout] --> src/models/highlight.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct UpdateHighlightRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HighlightListResponse` is never constructed [INFO] [stdout] --> src/models/highlight.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct HighlightListResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePublicationRequest` is never constructed [INFO] [stdout] --> src/models/publication.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct UpdatePublicationRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateSubdomainResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct CreateSubdomainResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateCustomDomainResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct CreateCustomDomainResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AutoVerification` is never constructed [INFO] [stdout] --> src/models/domain.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct AutoVerification { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomainStatusResponse` is never constructed [INFO] [stdout] --> src/models/domain.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub struct DomainStatusResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DomainProgress` is never constructed [INFO] [stdout] --> src/models/domain.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | pub struct DomainProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VerificationStatus` is never constructed [INFO] [stdout] --> src/models/domain.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct VerificationStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RecordVerification` is never constructed [INFO] [stdout] --> src/models/domain.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct RecordVerification { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateSubscriptionPlanRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct UpdateSubscriptionPlanRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateSubscriptionRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct CreateSubscriptionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PaymentMethod` is never constructed [INFO] [stdout] --> src/models/subscription.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct PaymentMethod { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePaymentMethodRequest` is never constructed [INFO] [stdout] --> src/models/subscription.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct CreatePaymentMethodRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `article_id`, `created_at`, and `author_username` are never read [INFO] [stdout] --> src/models/bookmark.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct BookmarkItem { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 6 | pub id: String, [INFO] [stdout] 7 | pub article_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | pub note: Option, [INFO] [stdout] 9 | pub created_at: DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub author_username: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BookmarkItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `success` is never read [INFO] [stdout] --> src/models/bookmark.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct BookmarkListResponse { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 23 | pub success: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BookmarkListResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 09s [INFO] running `Command { std: "docker" "inspect" "d796cbd0cda979001a9ed886193a8cc4a3e3a5d4e31a16fa79a8701308d4acbe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d796cbd0cda979001a9ed886193a8cc4a3e3a5d4e31a16fa79a8701308d4acbe", kill_on_drop: false }` [INFO] [stdout] d796cbd0cda979001a9ed886193a8cc4a3e3a5d4e31a16fa79a8701308d4acbe