[INFO] cloning repository https://github.com/rzvxa/trellminal [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rzvxa/trellminal" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frzvxa%2Ftrellminal", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frzvxa%2Ftrellminal'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5706e8bdb6569febe9910ae0b773391c7c30ae62 [INFO] linting rzvxa/trellminal against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frzvxa%2Ftrellminal" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rzvxa/trellminal [INFO] finished tweaking git repo https://github.com/rzvxa/trellminal [INFO] tweaked toml for git repo https://github.com/rzvxa/trellminal written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rzvxa/trellminal on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rzvxa/trellminal 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.88 [INFO] [stderr] Downloaded webbrowser v0.8.12 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.88 [INFO] [stderr] Downloaded proc-macro2 v1.0.69 [INFO] [stderr] Downloaded substring v1.4.5 [INFO] [stderr] Downloaded serde_spanned v0.6.4 [INFO] [stderr] Downloaded checked_int_cast v1.0.0 [INFO] [stderr] Downloaded errno v0.3.5 [INFO] [stderr] Downloaded native-tls v0.2.11 [INFO] [stderr] Downloaded num-iter v0.1.43 [INFO] [stderr] Downloaded tempfile v3.8.1 [INFO] [stderr] Downloaded bytemuck v1.14.0 [INFO] [stderr] Downloaded qrcode v0.12.0 [INFO] [stderr] Downloaded openssl-sys v0.9.94 [INFO] [stderr] Downloaded js-sys v0.3.65 [INFO] [stderr] Downloaded toml_edit v0.20.7 [INFO] [stderr] Downloaded crossterm v0.25.0 [INFO] [stderr] Downloaded crossterm v0.27.0 [INFO] [stderr] Downloaded hashbrown v0.14.2 [INFO] [stderr] Downloaded winnow v0.5.18 [INFO] [stderr] Downloaded tui v0.19.0 [INFO] [stderr] Downloaded syn v2.0.38 [INFO] [stderr] Downloaded wasm-bindgen v0.2.88 [INFO] [stderr] Downloaded openssl v0.10.58 [INFO] [stderr] Downloaded serde v1.0.190 [INFO] [stderr] Downloaded url v2.4.1 [INFO] [stderr] Downloaded schannel v0.1.22 [INFO] [stderr] Downloaded serde_derive v1.0.190 [INFO] [stderr] Downloaded rustix v0.38.21 [INFO] [stderr] Downloaded toml v0.8.6 [INFO] [stderr] Downloaded smallvec v1.11.1 [INFO] [stderr] Downloaded signal-hook v0.3.17 [INFO] [stderr] Downloaded tui-textarea v0.3.1 [INFO] [stderr] Downloaded cassowary v0.3.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.38 [INFO] [stderr] Downloaded toml_datetime v0.6.5 [INFO] [stderr] Downloaded signal-hook-mio v0.2.3 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.88 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.88 [INFO] [stderr] Downloaded web-sys v0.3.65 [INFO] [stderr] Downloaded libc v0.2.149 [INFO] [stderr] Downloaded tokio v1.33.0 [INFO] [stderr] Downloaded linux-raw-sys v0.4.10 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2895e1b1db5940feb8bf028bcd09c6fa41d82deba69a05c4533a2ddb3db0df4c [INFO] running `Command { std: "docker" "start" "-a" "2895e1b1db5940feb8bf028bcd09c6fa41d82deba69a05c4533a2ddb3db0df4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2895e1b1db5940feb8bf028bcd09c6fa41d82deba69a05c4533a2ddb3db0df4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2895e1b1db5940feb8bf028bcd09c6fa41d82deba69a05c4533a2ddb3db0df4c", kill_on_drop: false }` [INFO] [stdout] 2895e1b1db5940feb8bf028bcd09c6fa41d82deba69a05c4533a2ddb3db0df4c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4985d3f3f92a922474ca9889fcfffa3126b6f024f8ea84c7c3c16da4d2bf4f40 [INFO] running `Command { std: "docker" "start" "-a" "4985d3f3f92a922474ca9889fcfffa3126b6f024f8ea84c7c3c16da4d2bf4f40", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Compiling libc v0.2.149 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking smallvec v1.11.1 [INFO] [stderr] Compiling serde v1.0.190 [INFO] [stderr] Compiling futures-core v0.3.29 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling futures-task v0.3.29 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Compiling openssl v0.10.58 [INFO] [stderr] Compiling futures-util v0.3.29 [INFO] [stderr] Checking http v0.2.9 [INFO] [stderr] Compiling futures-channel v0.3.29 [INFO] [stderr] Checking futures-sink v0.3.29 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Checking form_urlencoded v1.2.0 [INFO] [stderr] Checking indexmap v1.9.3 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking hashbrown v0.14.2 [INFO] [stderr] Checking memchr v2.6.4 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Compiling substring v1.4.5 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking bytemuck v1.14.0 [INFO] [stderr] Checking winnow v0.5.18 [INFO] [stderr] Checking unicode-segmentation v1.10.1 [INFO] [stderr] Compiling serde_json v1.0.108 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Compiling thiserror v1.0.50 [INFO] [stderr] Compiling async-trait v0.1.74 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.9 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Compiling const_format_proc_macros v0.2.32 [INFO] [stderr] Checking checked_int_cast v1.0.0 [INFO] [stderr] Checking ipnet v2.9.0 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking base64 v0.21.5 [INFO] [stderr] Checking url v2.4.1 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking home v0.5.5 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking itertools v0.12.0 [INFO] [stderr] Compiling openssl-sys v0.9.94 [INFO] [stderr] Checking const_format v0.2.32 [INFO] [stderr] Checking webbrowser v0.8.12 [INFO] [stderr] Checking tui v0.19.0 [INFO] [stderr] Checking image v0.23.14 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking tui-textarea v0.3.1 [INFO] [stderr] Checking qrcode v0.12.0 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Compiling serde_derive v1.0.190 [INFO] [stderr] Compiling tokio-macros v2.1.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.50 [INFO] [stderr] Compiling async-recursion v1.0.5 [INFO] [stderr] Checking tokio v1.33.0 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking h2 v0.3.21 [INFO] [stderr] Checking toml_datetime v0.6.5 [INFO] [stderr] Checking serde_spanned v0.6.4 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking toml_edit v0.20.7 [INFO] [stderr] Checking hyper v0.14.27 [INFO] [stderr] Checking toml v0.8.6 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.22 [INFO] [stderr] Checking trellminal v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/database/mod.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/database/mod.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use toml; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CardId` [INFO] [stdout] --> src/models/mod.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | pub use card::{Card, CardId}; [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: `LabelId` [INFO] [stdout] --> src/models/mod.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | pub use label::{Label, LabelId}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Span`, `Spans`, `Text`, and `Wrap` [INFO] [stdout] --> src/ui/pages/board.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 6 | style::{Color, Style}, [INFO] [stdout] 7 | text::{Span, Spans, Text}, [INFO] [stdout] | ^^^^ ^^^^^ ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, List, ListItem, ListState, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::task::JoinSet` [INFO] [stdout] --> src/ui/pages/boards.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use tokio::task::JoinSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CardId` [INFO] [stdout] --> src/models/mod.rs:9:22 [INFO] [stdout] | [INFO] [stdout] 9 | pub use card::{Card, CardId}; [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: `LabelId` [INFO] [stdout] --> src/models/mod.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | pub use label::{Label, LabelId}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Alignment`, `Span`, `Spans`, `Text`, and `Wrap` [INFO] [stdout] --> src/ui/pages/board.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 6 | style::{Color, Style}, [INFO] [stdout] 7 | text::{Span, Spans, Text}, [INFO] [stdout] | ^^^^ ^^^^^ ^^^^ [INFO] [stdout] 8 | widgets::{Block, Borders, List, ListItem, ListState, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::task::JoinSet` [INFO] [stdout] --> src/ui/pages/boards.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use tokio::task::JoinSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/router/with_params.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | Err(err) => None, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bg` [INFO] [stdout] --> src/ui/misc/status_bar.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | bg: Color, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/misc/status_bar.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/misc/status_bar.rs:102:51 [INFO] [stdout] | [INFO] [stdout] 102 | pub async fn update(&mut self, event: &Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:102:65 [INFO] [stdout] | [INFO] [stdout] 102 | pub async fn update(&mut self, event: &Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/authenticate.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/authenticate.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/router/with_params.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | Err(err) => None, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:120:46 [INFO] [stdout] | [INFO] [stdout] 120 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:120:60 [INFO] [stdout] | [INFO] [stdout] 120 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bg` [INFO] [stdout] --> src/ui/misc/status_bar.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | bg: Color, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/misc/status_bar.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/misc/status_bar.rs:102:51 [INFO] [stdout] | [INFO] [stdout] 102 | pub async fn update(&mut self, event: &Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/misc/status_bar.rs:102:65 [INFO] [stdout] | [INFO] [stdout] 102 | pub async fn update(&mut self, event: &Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/authenticate.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/authenticate.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:33:47 [INFO] [stdout] | [INFO] [stdout] 33 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/authenticate.rs:120:46 [INFO] [stdout] | [INFO] [stdout] 120 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/authenticate.rs:120:60 [INFO] [stdout] | [INFO] [stdout] 120 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/board.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:87:33 [INFO] [stdout] | [INFO] [stdout] 87 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/board.rs:87:47 [INFO] [stdout] | [INFO] [stdout] 87 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:137:46 [INFO] [stdout] | [INFO] [stdout] 137 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/board.rs:137:60 [INFO] [stdout] | [INFO] [stdout] 137 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/ui/pages/board.rs:220:22 [INFO] [stdout] | [INFO] [stdout] 220 | fn make_list<'a>(list: &ListModel, cards: Option<&Vec>, rect: Rect) -> List<'a> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/boards.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/boards.rs:50:47 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/boards.rs:78:60 [INFO] [stdout] | [INFO] [stdout] 78 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:61:33 [INFO] [stdout] | [INFO] [stdout] 61 | async fn unmount(&mut self, db: Database, api: Api) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:61:47 [INFO] [stdout] | [INFO] [stdout] 61 | async fn unmount(&mut self, db: Database, api: Api) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/board.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:87:33 [INFO] [stdout] | [INFO] [stdout] 87 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/board.rs:87:47 [INFO] [stdout] | [INFO] [stdout] 87 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/board.rs:137:46 [INFO] [stdout] | [INFO] [stdout] 137 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/board.rs:137:60 [INFO] [stdout] | [INFO] [stdout] 137 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `list` [INFO] [stdout] --> src/ui/pages/board.rs:220:22 [INFO] [stdout] | [INFO] [stdout] 220 | fn make_list<'a>(list: &ListModel, cards: Option<&Vec>, rect: Rect) -> List<'a> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/first_load.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/first_load.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:36:33 [INFO] [stdout] | [INFO] [stdout] 36 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:36:47 [INFO] [stdout] | [INFO] [stdout] 36 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:98:46 [INFO] [stdout] | [INFO] [stdout] 98 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:98:60 [INFO] [stdout] | [INFO] [stdout] 98 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/home.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/home.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:24:33 [INFO] [stdout] | [INFO] [stdout] 24 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame` [INFO] [stdout] --> src/ui/pages/home.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | fn draw(&mut self, frame: &mut Frame, rect: Rect) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/ui/pages/home.rs:26:43 [INFO] [stdout] | [INFO] [stdout] 26 | fn draw(&mut self, frame: &mut Frame, rect: Rect) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:28:46 [INFO] [stdout] | [INFO] [stdout] 28 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:28:60 [INFO] [stdout] | [INFO] [stdout] 28 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:50:47 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/boards.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/boards.rs:50:47 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/not_found.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:35:47 [INFO] [stdout] | [INFO] [stdout] 35 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/boards.rs:78:46 [INFO] [stdout] | [INFO] [stdout] 78 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:119:46 [INFO] [stdout] | [INFO] [stdout] 119 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/boards.rs:78:60 [INFO] [stdout] | [INFO] [stdout] 78 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:119:60 [INFO] [stdout] | [INFO] [stdout] 119 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/token_expired.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/token_expired.rs:43:33 [INFO] [stdout] | [INFO] [stdout] 43 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:43:47 [INFO] [stdout] | [INFO] [stdout] 43 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/token_expired.rs:125:46 [INFO] [stdout] | [INFO] [stdout] 125 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:125:60 [INFO] [stdout] | [INFO] [stdout] 125 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:61:33 [INFO] [stdout] | [INFO] [stdout] 61 | async fn unmount(&mut self, db: Database, api: Api) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:61:47 [INFO] [stdout] | [INFO] [stdout] 61 | async fn unmount(&mut self, db: Database, api: Api) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/first_load.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/first_load.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:36:33 [INFO] [stdout] | [INFO] [stdout] 36 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:36:47 [INFO] [stdout] | [INFO] [stdout] 36 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/first_load.rs:98:46 [INFO] [stdout] | [INFO] [stdout] 98 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/first_load.rs:98:60 [INFO] [stdout] | [INFO] [stdout] 98 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/home.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/home.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:24:33 [INFO] [stdout] | [INFO] [stdout] 24 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame` [INFO] [stdout] --> src/ui/pages/home.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | fn draw(&mut self, frame: &mut Frame, rect: Rect) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rect` [INFO] [stdout] --> src/ui/pages/home.rs:26:43 [INFO] [stdout] | [INFO] [stdout] 26 | fn draw(&mut self, frame: &mut Frame, rect: Rect) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/home.rs:28:46 [INFO] [stdout] | [INFO] [stdout] 28 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/home.rs:28:60 [INFO] [stdout] | [INFO] [stdout] 28 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:50:47 [INFO] [stdout] | [INFO] [stdout] 50 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/workspaces.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/workspaces.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:65:33 [INFO] [stdout] | [INFO] [stdout] 65 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/workspaces.rs:65:47 [INFO] [stdout] | [INFO] [stdout] 65 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:93:46 [INFO] [stdout] | [INFO] [stdout] 93 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/workspaces.rs:93:60 [INFO] [stdout] | [INFO] [stdout] 93 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `All` and `Raw` are never constructed [INFO] [stdout] --> src/api/mod.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum RequestFields<'a> { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 26 | All, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | Raw(&'a str), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `POST` is never constructed [INFO] [stdout] --> src/api/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum RequestProtocol { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 32 | GET, [INFO] [stdout] 33 | POST, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | IoError(IoError), [INFO] [stdout] | ------- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - IoError(IoError), [INFO] [stdout] 11 + IoError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:12:24 [INFO] [stdout] | [INFO] [stdout] 12 | SerializationError(toml::ser::Error), [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - SerializationError(toml::ser::Error), [INFO] [stdout] 12 + SerializationError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | DeserializationError(toml::de::Error), [INFO] [stdout] | -------------------- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - DeserializationError(toml::de::Error), [INFO] [stdout] 13 + DeserializationError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `current` is never used [INFO] [stdout] --> src/router/mod.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Router { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn current(&self) -> Option<&dyn Page> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `page`, `page_ref`, `page_mut`, `params`, `params_ref`, and `params_mut` are never used [INFO] [stdout] --> src/router/routes.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Route { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn page(self) -> Page { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn page_ref(&self) -> &Page { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn page_mut(&mut self) -> &mut Page { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn params(self) -> Params { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn params_ref(&self) -> &Params { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn params_mut(&mut self) -> &mut Params { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/router/routes.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl Routes { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get(&self, location: &String) -> Option<&dyn Page> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `route` is never read [INFO] [stdout] --> src/router/with_params.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct RouteWithParams { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 6 | route: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `page` is never used [INFO] [stdout] --> src/router/with_params.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl RouteWithParams { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn page(&self) -> &dyn Page { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find` is never used [INFO] [stdout] --> src/router/with_params.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl RouteWithParamsMap { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn find(&self, location: String) -> Option<&RouteWithParams> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `router` is never used [INFO] [stdout] --> src/ui/context.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl<'a> Context<'a> { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn router(&self) -> Arc> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `TRUNCATE` is never constructed [INFO] [stdout] --> src/ui/pages/board.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | enum WrapMode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 22 | TRUNCATE, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `GET` contains a capitalized acronym [INFO] [stdout] --> src/api/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | GET, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `POST` contains a capitalized acronym [INFO] [stdout] --> src/api/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | POST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Post` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database/mod.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return toml::from_str(&raw).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return toml::from_str(&raw).unwrap(); [INFO] [stdout] 56 + toml::from_str(&raw).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database/mod.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | return Database::new(path.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return Database::new(path.to_string()); [INFO] [stdout] 58 + Database::new(path.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/http_server.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return &self.url; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return &self.url; [INFO] [stdout] 22 + &self.url [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/http_server.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return self.stream.write_all(response.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return self.stream.write_all(response.as_bytes()); [INFO] [stdout] 30 + self.stream.write_all(response.as_bytes()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/input/http_server.rs:91:22 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(s) => match handle_connection(s) { [INFO] [stdout] | ______________________^ [INFO] [stdout] 92 | | Some(req) => { [INFO] [stdout] 93 | | if validator(&req) { [INFO] [stdout] 94 | | event_sender.send(Event::Request(req)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 99 | | None => {} [INFO] [stdout] 100 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ Ok(s) => if let Some(req) = handle_connection(s) { [INFO] [stdout] 92 + if validator(&req) { [INFO] [stdout] 93 + event_sender.send(Event::Request(req)).unwrap(); [INFO] [stdout] 94 + } else { [INFO] [stdout] 95 + req.respond_with_html("404.html").unwrap(); [INFO] [stdout] 96 + } [INFO] [stdout] 97 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/not_found.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/input/http_server.rs:101:64 [INFO] [stdout] | [INFO] [stdout] 101 | Err(ref e) if e.kind() == ErrorKind::WouldBlock => match event_receiver.try_recv().ok() [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 102 | | { [INFO] [stdout] 103 | | Some(msg) => match msg { [INFO] [stdout] 104 | | ThreadMessage::Terminate => { [INFO] [stdout] ... | [INFO] [stdout] 108 | | None => {} [INFO] [stdout] 109 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 101 ~ Err(ref e) if e.kind() == ErrorKind::WouldBlock => if let Some(msg) = event_receiver.try_recv().ok() { match msg { [INFO] [stdout] 102 + ThreadMessage::Terminate => { [INFO] [stdout] 103 + break; [INFO] [stdout] 104 + } [INFO] [stdout] 105 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:35:47 [INFO] [stdout] | [INFO] [stdout] 35 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/not_found.rs:119:46 [INFO] [stdout] | [INFO] [stdout] 119 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/not_found.rs:119:60 [INFO] [stdout] | [INFO] [stdout] 119 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/input/mod.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | impl Into for Event { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 68 ~ impl From for Input { [INFO] [stdout] 69 ~ fn from(val: Event) -> Self { [INFO] [stdout] 70 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/mod.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | return (tx, rx); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 104 - return (tx, rx); [INFO] [stdout] 104 + (tx, rx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/input/mod.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | if let Ok(_) = input_tx.send(Event::Tick) { [INFO] [stdout] | -------^^^^^----------------------------- help: try: `if input_tx.send(Event::Tick).is_ok()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | api: Api, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/token_expired.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/token_expired.rs:43:33 [INFO] [stdout] | [INFO] [stdout] 43 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:43:47 [INFO] [stdout] | [INFO] [stdout] 43 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/token_expired.rs:125:46 [INFO] [stdout] | [INFO] [stdout] 125 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/token_expired.rs:125:60 [INFO] [stdout] | [INFO] [stdout] 125 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/router/routes.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if !self.params.contains_key(&k) { [INFO] [stdout] 33 | | self.params.insert(k, v); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ help: try: `self.params.entry(k).or_insert(v);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/router/with_params.rs:43:44 [INFO] [stdout] | [INFO] [stdout] 43 | let params = self.parts.iter().zip(parts.into_iter()).try_fold( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 43 - let params = self.parts.iter().zip(parts.into_iter()).try_fold( [INFO] [stdout] 43 + let params = self.parts.iter().zip(parts).try_fold( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/router/with_params.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / match params { [INFO] [stdout] 58 | | Ok(params) => Some(params), [INFO] [stdout] 59 | | Err(err) => None, [INFO] [stdout] 60 | | } [INFO] [stdout] | |_________^ help: replace with: `params.ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/router/with_params.rs:102:27 [INFO] [stdout] | [INFO] [stdout] 102 | .find_map(|r| match r.match_params(&location) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 103 | | Some(params) => Some((r, params)), [INFO] [stdout] 104 | | None => None, [INFO] [stdout] 105 | | }) [INFO] [stdout] | |_____________^ help: try: `r.match_params(&location).map(|params| (r, params))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/router/with_params.rs:109:48 [INFO] [stdout] | [INFO] [stdout] 109 | self.routes.iter().find(|x| x.is_match(&location)).is_some() [INFO] [stdout] | ^^^^^^^^^ help: change this to: `location` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/router/mod.rs:122:65 [INFO] [stdout] | [INFO] [stdout] 122 | format!("{}/{}", ERROR_ROUTE.to_owned(), err.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | db: Database, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/ui/pages/workspaces.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | event_sender: EventSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ui/pages/workspaces.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | params: Params, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:65:33 [INFO] [stdout] | [INFO] [stdout] 65 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/workspaces.rs:65:47 [INFO] [stdout] | [INFO] [stdout] 65 | async fn unmount(&mut self, db: Database, api: Api) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/ui/pages/workspaces.rs:93:46 [INFO] [stdout] | [INFO] [stdout] 93 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/ui/pages/workspaces.rs:93:60 [INFO] [stdout] | [INFO] [stdout] 93 | async fn update(&mut self, event: Event, db: Database, api: Api) -> Operation { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/misc/layout.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | rect.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KeyEvent` which implements the `Copy` trait [INFO] [stdout] --> src/ui/misc/status_bar.rs:118:41 [INFO] [stdout] | [INFO] [stdout] 118 | self.textarea.input(key_event.clone().into_input()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `(*key_event)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TRUNCATE` contains a capitalized acronym [INFO] [stdout] --> src/ui/pages/board.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | TRUNCATE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Truncate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WRAP` contains a capitalized acronym [INFO] [stdout] --> src/ui/pages/board.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | WRAP, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wrap` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `All` and `Raw` are never constructed [INFO] [stdout] --> src/api/mod.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum RequestFields<'a> { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 26 | All, [INFO] [stdout] | ^^^ [INFO] [stdout] 27 | Raw(&'a str), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `POST` is never constructed [INFO] [stdout] --> src/api/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum RequestProtocol { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 32 | GET, [INFO] [stdout] 33 | POST, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | IoError(IoError), [INFO] [stdout] | ------- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - IoError(IoError), [INFO] [stdout] 11 + IoError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:12:24 [INFO] [stdout] | [INFO] [stdout] 12 | SerializationError(toml::ser::Error), [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - SerializationError(toml::ser::Error), [INFO] [stdout] 12 + SerializationError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/database/mod.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | DeserializationError(toml::de::Error), [INFO] [stdout] | -------------------- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - DeserializationError(toml::de::Error), [INFO] [stdout] 13 + DeserializationError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `current` is never used [INFO] [stdout] --> src/router/mod.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Router { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn current(&self) -> Option<&dyn Page> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `page`, `page_ref`, `page_mut`, `params`, `params_ref`, and `params_mut` are never used [INFO] [stdout] --> src/router/routes.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Route { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn page(self) -> Page { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn page_ref(&self) -> &Page { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn page_mut(&mut self) -> &mut Page { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn params(self) -> Params { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn params_ref(&self) -> &Params { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn params_mut(&mut self) -> &mut Params { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/router/routes.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl Routes { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get(&self, location: &String) -> Option<&dyn Page> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `route` is never read [INFO] [stdout] --> src/router/with_params.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct RouteWithParams { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 6 | route: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `page` is never used [INFO] [stdout] --> src/router/with_params.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl RouteWithParams { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn page(&self) -> &dyn Page { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `find` is never used [INFO] [stdout] --> src/router/with_params.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl RouteWithParamsMap { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn find(&self, location: String) -> Option<&RouteWithParams> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `router` is never used [INFO] [stdout] --> src/ui/context.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl<'a> Context<'a> { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn router(&self) -> Arc> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `TRUNCATE` is never constructed [INFO] [stdout] --> src/ui/pages/board.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | enum WrapMode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 22 | TRUNCATE, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `GET` contains a capitalized acronym [INFO] [stdout] --> src/api/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | GET, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `POST` contains a capitalized acronym [INFO] [stdout] --> src/api/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | POST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Post` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | if url.starts_with(AUTH_ROUTE) { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 40 | | true [INFO] [stdout] 41 | | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:41:44 [INFO] [stdout] | [INFO] [stdout] 41 | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 42 | | true [INFO] [stdout] 43 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | ____________^ [INFO] [stdout] 42 | | true [INFO] [stdout] 43 | | } else { [INFO] [stdout] 44 | | false [INFO] [stdout] 45 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `{ url.starts_with(TOKEN_ROUTE) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:246:36 [INFO] [stdout] | [INFO] [stdout] 246 | self.failed_open_browser = !webbrowser::open(AUTH_URL).is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `webbrowser::open(AUTH_URL).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database/mod.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return toml::from_str(&raw).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return toml::from_str(&raw).unwrap(); [INFO] [stdout] 56 + toml::from_str(&raw).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database/mod.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | return Database::new(path.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return Database::new(path.to_string()); [INFO] [stdout] 58 + Database::new(path.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/ui/pages/home.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | / match event { [INFO] [stdout] 30 | | _ => Operation::Navigate("/w".to_string()), [INFO] [stdout] 31 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `Operation::Navigate("/w".to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/http_server.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return &self.url; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return &self.url; [INFO] [stdout] 22 + &self.url [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/http_server.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return self.stream.write_all(response.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return self.stream.write_all(response.as_bytes()); [INFO] [stdout] 30 + self.stream.write_all(response.as_bytes()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/input/http_server.rs:91:22 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(s) => match handle_connection(s) { [INFO] [stdout] | ______________________^ [INFO] [stdout] 92 | | Some(req) => { [INFO] [stdout] 93 | | if validator(&req) { [INFO] [stdout] 94 | | event_sender.send(Event::Request(req)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 99 | | None => {} [INFO] [stdout] 100 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ Ok(s) => if let Some(req) = handle_connection(s) { [INFO] [stdout] 92 + if validator(&req) { [INFO] [stdout] 93 + event_sender.send(Event::Request(req)).unwrap(); [INFO] [stdout] 94 + } else { [INFO] [stdout] 95 + req.respond_with_html("404.html").unwrap(); [INFO] [stdout] 96 + } [INFO] [stdout] 97 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/input/http_server.rs:101:64 [INFO] [stdout] | [INFO] [stdout] 101 | Err(ref e) if e.kind() == ErrorKind::WouldBlock => match event_receiver.try_recv().ok() [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 102 | | { [INFO] [stdout] 103 | | Some(msg) => match msg { [INFO] [stdout] 104 | | ThreadMessage::Terminate => { [INFO] [stdout] ... | [INFO] [stdout] 108 | | None => {} [INFO] [stdout] 109 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 101 ~ Err(ref e) if e.kind() == ErrorKind::WouldBlock => if let Some(msg) = event_receiver.try_recv().ok() { match msg { [INFO] [stdout] 102 + ThreadMessage::Terminate => { [INFO] [stdout] 103 + break; [INFO] [stdout] 104 + } [INFO] [stdout] 105 ~ } }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/input/mod.rs:68:1 [INFO] [stdout] | [INFO] [stdout] 68 | impl Into for Event { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 68 ~ impl From for Input { [INFO] [stdout] 69 ~ fn from(val: Event) -> Self { [INFO] [stdout] 70 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/input/mod.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | return (tx, rx); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 104 - return (tx, rx); [INFO] [stdout] 104 + (tx, rx) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/input/mod.rs:97:24 [INFO] [stdout] | [INFO] [stdout] 97 | if let Ok(_) = input_tx.send(Event::Tick) { [INFO] [stdout] | -------^^^^^----------------------------- help: try: `if input_tx.send(Event::Tick).is_ok()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | / match event { [INFO] [stdout] 419 | | Event::Input(event) => match event.code { [INFO] [stdout] 420 | | KeyCode::Char('k') => self.show_qr_code = false, [INFO] [stdout] 421 | | KeyCode::Char('t') | KeyCode::Char('T') => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] ... | [INFO] [stdout] 432 | | _ => {} [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 418 ~ if let Event::Input(event) = event { match event.code { [INFO] [stdout] 419 + KeyCode::Char('k') => self.show_qr_code = false, [INFO] [stdout] 420 + KeyCode::Char('t') | KeyCode::Char('T') => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] 421 + KeyCode::Left | KeyCode::Char('h') => self.qr_selected_button = 0, [INFO] [stdout] 422 + KeyCode::Right | KeyCode::Char('l') => self.qr_selected_button = 1, [INFO] [stdout] 423 + KeyCode::Esc => self.show_qr_code = false, [INFO] [stdout] 424 + KeyCode::Enter => match self.qr_selected_button { [INFO] [stdout] 425 + 0 => self.show_qr_code = false, [INFO] [stdout] 426 + 1 => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] 427 + _ => {} [INFO] [stdout] 428 + }, [INFO] [stdout] 429 + _ => {} [INFO] [stdout] 430 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/ui/mod.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | String::from(initial_route), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `initial_route` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | fn ignore(self) -> () {} [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/main.rs:27:26 [INFO] [stdout] | [INFO] [stdout] 27 | Some(pathbuf) => match pathbuf.into_os_string().into_string() { [INFO] [stdout] | __________________________^ [INFO] [stdout] 28 | | Ok(home) => Some(home), [INFO] [stdout] 29 | | Err(_) => None, [INFO] [stdout] 30 | | }, [INFO] [stdout] | |_________^ help: replace with: `pathbuf.into_os_string().into_string().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/router/routes.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if !self.params.contains_key(&k) { [INFO] [stdout] 33 | | self.params.insert(k, v); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ help: try: `self.params.entry(k).or_insert(v);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/router/with_params.rs:43:44 [INFO] [stdout] | [INFO] [stdout] 43 | let params = self.parts.iter().zip(parts.into_iter()).try_fold( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 43 - let params = self.parts.iter().zip(parts.into_iter()).try_fold( [INFO] [stdout] 43 + let params = self.parts.iter().zip(parts).try_fold( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/router/with_params.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / match params { [INFO] [stdout] 58 | | Ok(params) => Some(params), [INFO] [stdout] 59 | | Err(err) => None, [INFO] [stdout] 60 | | } [INFO] [stdout] | |_________^ help: replace with: `params.ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/router/with_params.rs:102:27 [INFO] [stdout] | [INFO] [stdout] 102 | .find_map(|r| match r.match_params(&location) { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 103 | | Some(params) => Some((r, params)), [INFO] [stdout] 104 | | None => None, [INFO] [stdout] 105 | | }) [INFO] [stdout] | |_____________^ help: try: `r.match_params(&location).map(|params| (r, params))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/router/with_params.rs:109:48 [INFO] [stdout] | [INFO] [stdout] 109 | self.routes.iter().find(|x| x.is_match(&location)).is_some() [INFO] [stdout] | ^^^^^^^^^ help: change this to: `location` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/router/mod.rs:122:65 [INFO] [stdout] | [INFO] [stdout] 122 | format!("{}/{}", ERROR_ROUTE.to_owned(), err.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/misc/layout.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | rect.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KeyEvent` which implements the `Copy` trait [INFO] [stdout] --> src/ui/misc/status_bar.rs:118:41 [INFO] [stdout] | [INFO] [stdout] 118 | self.textarea.input(key_event.clone().into_input()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `(*key_event)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TRUNCATE` contains a capitalized acronym [INFO] [stdout] --> src/ui/pages/board.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | TRUNCATE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Truncate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WRAP` contains a capitalized acronym [INFO] [stdout] --> src/ui/pages/board.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | WRAP, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wrap` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | if url.starts_with(AUTH_ROUTE) { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 40 | | true [INFO] [stdout] 41 | | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:41:44 [INFO] [stdout] | [INFO] [stdout] 41 | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 42 | | true [INFO] [stdout] 43 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | } else if url.starts_with(TOKEN_ROUTE) { [INFO] [stdout] | ____________^ [INFO] [stdout] 42 | | true [INFO] [stdout] 43 | | } else { [INFO] [stdout] 44 | | false [INFO] [stdout] 45 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `{ url.starts_with(TOKEN_ROUTE) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/pages/browser_authenticate.rs:246:36 [INFO] [stdout] | [INFO] [stdout] 246 | self.failed_open_browser = !webbrowser::open(AUTH_URL).is_ok(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `webbrowser::open(AUTH_URL).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/ui/pages/home.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | / match event { [INFO] [stdout] 30 | | _ => Operation::Navigate("/w".to_string()), [INFO] [stdout] 31 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `Operation::Navigate("/w".to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/ui/pages/manual_authenticate.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | / match event { [INFO] [stdout] 419 | | Event::Input(event) => match event.code { [INFO] [stdout] 420 | | KeyCode::Char('k') => self.show_qr_code = false, [INFO] [stdout] 421 | | KeyCode::Char('t') | KeyCode::Char('T') => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] ... | [INFO] [stdout] 432 | | _ => {} [INFO] [stdout] 433 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 418 ~ if let Event::Input(event) = event { match event.code { [INFO] [stdout] 419 + KeyCode::Char('k') => self.show_qr_code = false, [INFO] [stdout] 420 + KeyCode::Char('t') | KeyCode::Char('T') => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] 421 + KeyCode::Left | KeyCode::Char('h') => self.qr_selected_button = 0, [INFO] [stdout] 422 + KeyCode::Right | KeyCode::Char('l') => self.qr_selected_button = 1, [INFO] [stdout] 423 + KeyCode::Esc => self.show_qr_code = false, [INFO] [stdout] 424 + KeyCode::Enter => match self.qr_selected_button { [INFO] [stdout] 425 + 0 => self.show_qr_code = false, [INFO] [stdout] 426 + 1 => self.qr_dark_mode = !self.qr_dark_mode, [INFO] [stdout] 427 + _ => {} [INFO] [stdout] 428 + }, [INFO] [stdout] 429 + _ => {} [INFO] [stdout] 430 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/ui/mod.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | String::from(initial_route), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `initial_route` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | fn ignore(self) -> () {} [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/main.rs:27:26 [INFO] [stdout] | [INFO] [stdout] 27 | Some(pathbuf) => match pathbuf.into_os_string().into_string() { [INFO] [stdout] | __________________________^ [INFO] [stdout] 28 | | Ok(home) => Some(home), [INFO] [stdout] 29 | | Err(_) => None, [INFO] [stdout] 30 | | }, [INFO] [stdout] | |_________^ help: replace with: `pathbuf.into_os_string().into_string().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.83s [INFO] running `Command { std: "docker" "inspect" "4985d3f3f92a922474ca9889fcfffa3126b6f024f8ea84c7c3c16da4d2bf4f40", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4985d3f3f92a922474ca9889fcfffa3126b6f024f8ea84c7c3c16da4d2bf4f40", kill_on_drop: false }` [INFO] [stdout] 4985d3f3f92a922474ca9889fcfffa3126b6f024f8ea84c7c3c16da4d2bf4f40