[INFO] fetching crate idfy_common 0.1.0... [INFO] linting idfy_common-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate idfy_common 0.1.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate idfy_common 0.1.0 [INFO] finished tweaking crates.io crate idfy_common 0.1.0 [INFO] tweaked toml for crates.io crate idfy_common 0.1.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate idfy_common 0.1.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 202 packages to latest compatible versions [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding icondata v0.3.1 (available: v0.7.0) [INFO] [stderr] Adding itertools v0.13.0 (available: v0.14.0) [INFO] [stderr] Adding pinyin v0.10.0 (available: v0.11.0) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded romaji v0.1.1 [INFO] [stderr] Downloaded y4m v0.8.0 [INFO] [stderr] Downloaded icondata_ch v0.0.10 [INFO] [stderr] Downloaded maybe-rayon v0.1.1 [INFO] [stderr] Downloaded equator-macro v0.4.2 [INFO] [stderr] Downloaded fax v0.2.6 [INFO] [stderr] Downloaded icondata_fi v0.0.10 [INFO] [stderr] Downloaded icondata_core v0.1.0 [INFO] [stderr] Downloaded icondata v0.3.1 [INFO] [stderr] Downloaded csv-core v0.1.13 [INFO] [stderr] Downloaded as-slice v0.2.1 [INFO] [stderr] Downloaded num-rational v0.4.2 [INFO] [stderr] Downloaded av1-grain v0.2.5 [INFO] [stderr] Downloaded icondata_lu v0.0.10 [INFO] [stderr] Downloaded icondata_ti v0.0.10 [INFO] [stderr] Downloaded icondata_cg v0.0.10 [INFO] [stderr] Downloaded icondata_vs v0.0.10 [INFO] [stderr] Downloaded icondata_ai v0.0.10 [INFO] [stderr] Downloaded png v0.18.1 [INFO] [stderr] Downloaded rayon v1.11.0 [INFO] [stderr] Downloaded moxcms v0.8.1 [INFO] [stderr] Downloaded icondata_bi v0.0.10 [INFO] [stderr] Downloaded icondata_hi v0.0.10 [INFO] [stderr] Downloaded icondata_io v0.0.10 [INFO] [stderr] Downloaded icondata_bs v0.0.10 [INFO] [stderr] Downloaded icondata_tb v0.0.10 [INFO] [stderr] Downloaded image v0.25.10 [INFO] [stderr] Downloaded exr v1.74.0 [INFO] [stderr] Downloaded pinyin v0.10.0 [INFO] [stderr] Downloaded nom v8.0.0 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.12 [INFO] [stderr] Downloaded icondata_ri v0.0.10 [INFO] [stderr] Downloaded wasip2 v1.0.2+wasi-0.2.9 [INFO] [stderr] Downloaded icondata_im v0.0.10 [INFO] [stderr] Downloaded icondata_fa v0.0.10 [INFO] [stderr] Downloaded icondata_oc v0.0.10 [INFO] [stderr] Downloaded av-scenechange v0.14.1 [INFO] [stderr] Downloaded icondata_wi v0.0.10 [INFO] [stderr] Downloaded cc v1.2.57 [INFO] [stderr] Downloaded zune-jpeg v0.5.13 [INFO] [stderr] Downloaded qoi v0.4.1 [INFO] [stderr] Downloaded rayon-core v1.13.0 [INFO] [stderr] Downloaded tiff v0.11.3 [INFO] [stderr] Downloaded qrcode v0.14.1 [INFO] [stderr] Downloaded zune-inflate v0.2.54 [INFO] [stderr] Downloaded core2 v0.4.0 [INFO] [stderr] Downloaded bitstream-io v4.9.0 [INFO] [stderr] Downloaded built v0.8.0 [INFO] [stderr] Downloaded unsafe-libyaml v0.2.11 [INFO] [stderr] Downloaded serde_yaml v0.9.34+deprecated [INFO] [stderr] Downloaded uuid v1.22.0 [INFO] [stderr] Downloaded arbitrary v1.4.2 [INFO] [stderr] Downloaded v_frame v0.3.9 [INFO] [stderr] Downloaded ravif v0.13.0 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded bit_field v0.10.3 [INFO] [stderr] Downloaded lebe v0.5.3 [INFO] [stderr] Downloaded avif-serialize v0.8.8 [INFO] [stderr] Downloaded loop9 v0.1.5 [INFO] [stderr] Downloaded csv v1.4.0 [INFO] [stderr] Downloaded pxfm v0.1.28 [INFO] [stderr] Downloaded aligned v0.4.3 [INFO] [stderr] Downloaded arg_enum_proc_macro v0.3.4 [INFO] [stderr] Downloaded pastey v0.1.1 [INFO] [stderr] Downloaded interpolate_name v0.2.4 [INFO] [stderr] Downloaded new_debug_unreachable v1.0.6 [INFO] [stderr] Downloaded kakasi v0.1.0 [INFO] [stderr] Downloaded noop_proc_macro v0.3.0 [INFO] [stderr] Downloaded num-derive v0.4.2 [INFO] [stderr] Downloaded profiling-procmacros v1.0.17 [INFO] [stderr] Downloaded simd_helpers v0.1.0 [INFO] [stderr] Downloaded equator v0.4.2 [INFO] [stderr] Downloaded aligned-vec v0.6.4 [INFO] [stderr] Downloaded fax_derive v0.2.0 [INFO] [stderr] Downloaded rav1e v0.8.1 [INFO] [stderr] Downloaded icondata_si v0.0.10 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3a948c8e25355570571ae83bfccc2ec890a9366473fc5683705132234c771f8a [INFO] running `Command { std: "docker" "start" "-a" "3a948c8e25355570571ae83bfccc2ec890a9366473fc5683705132234c771f8a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3a948c8e25355570571ae83bfccc2ec890a9366473fc5683705132234c771f8a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a948c8e25355570571ae83bfccc2ec890a9366473fc5683705132234c771f8a", kill_on_drop: false }` [INFO] [stdout] 3a948c8e25355570571ae83bfccc2ec890a9366473fc5683705132234c771f8a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 722131c5a441fa807677be0f62f48d9554a60b1cc69adbf193dbc8ee96866bab [INFO] running `Command { std: "docker" "start" "-a" "722131c5a441fa807677be0f62f48d9554a60b1cc69adbf193dbc8ee96866bab", kill_on_drop: false }` [INFO] [stderr] Checking icondata_core v0.1.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Checking as-slice v0.2.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking aligned v0.4.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking y4m v0.8.0 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking bitstream-io v4.9.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking zune-jpeg v0.5.13 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking avif-serialize v0.8.8 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking pxfm v0.1.28 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking tinyvec v1.11.0 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling pinyin v0.10.0 [INFO] [stderr] Checking icondata_ch v0.0.10 [INFO] [stderr] Checking icondata_ai v0.0.10 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking icondata_oc v0.0.10 [INFO] [stderr] Checking icondata_fi v0.0.10 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Checking icondata_io v0.0.10 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking icondata_wi v0.0.10 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Checking icondata_lu v0.0.10 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking icondata_hi v0.0.10 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking icondata_bi v0.0.10 [INFO] [stderr] Checking icondata_ri v0.0.10 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking icondata_vs v0.0.10 [INFO] [stderr] Checking icondata_im v0.0.10 [INFO] [stderr] Checking icondata_cg v0.0.10 [INFO] [stderr] Checking icondata_bs v0.0.10 [INFO] [stderr] Checking icondata_ti v0.0.10 [INFO] [stderr] Checking icondata_fa v0.0.10 [INFO] [stderr] Checking icondata_si v0.0.10 [INFO] [stderr] Checking icondata_tb v0.0.10 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking romaji v0.1.1 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking uuid v1.22.0 [INFO] [stderr] Checking moxcms v0.8.1 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking kakasi v0.1.0 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking icondata v0.3.1 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking tiff v0.11.3 [INFO] [stderr] Checking exr v1.74.0 [INFO] [stderr] Checking ravif v0.13.0 [INFO] [stderr] Checking image v0.25.10 [INFO] [stderr] Checking qrcode v0.14.1 [INFO] [stderr] Checking idfy_common v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | account_id: account_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | shift_id: shift_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `shift_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | position_id: position_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `position_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | profile_legal_id: profile_legal_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `profile_legal_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::vec_fo_file::write_vec_to_file` [INFO] [stdout] --> src/backend/staff.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | use crate::utils::vec_fo_file::write_vec_to_file; [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: `PositionUniqueFields` [INFO] [stdout] --> src/backend/staff.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | use super::position::{PositionDetails, PositionUniqueFields, StaffDetails}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | account_id: account_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | shift_id: shift_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `shift_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | position_id: position_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `position_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/backend/payment.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | profile_legal_id: profile_legal_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `profile_legal_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Local` and `Utc` [INFO] [stdout] --> src/backend/worker.rs:3:47 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Datelike, FixedOffset, Local, NaiveTime, Utc}; [INFO] [stdout] | ^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/backend/worker.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | log::{self, append_or_create_log}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::vec_fo_file::write_vec_to_file` [INFO] [stdout] --> src/backend/staff.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | use crate::utils::vec_fo_file::write_vec_to_file; [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: `PositionUniqueFields` [INFO] [stdout] --> src/backend/staff.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | use super::position::{PositionDetails, PositionUniqueFields, StaffDetails}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Local` and `Utc` [INFO] [stdout] --> src/backend/worker.rs:3:47 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, Datelike, FixedOffset, Local, NaiveTime, Utc}; [INFO] [stdout] | ^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/backend/worker.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | log::{self, append_or_create_log}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `job_title` [INFO] [stdout] --> src/backend/attendee.rs:447:55 [INFO] [stdout] | [INFO] [stdout] 447 | let (media_outlet, full_name, job_title, email_address) = record; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_title` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `job_title` [INFO] [stdout] --> src/backend/attendee.rs:447:55 [INFO] [stdout] | [INFO] [stdout] 447 | let (media_outlet, full_name, job_title, email_address) = record; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_title` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/backend/position.rs:96:20 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn default(id: &str) -> PositionNew { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/backend/position.rs:96:20 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn default(id: &str) -> PositionNew { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name_w9_bank_emergency` [INFO] [stdout] --> src/backend/staff.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | let mut name_w9_bank_emergency: W9EmergencyCsv; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_w9_bank_emergency` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `email` [INFO] [stdout] --> src/backend/staff.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | let email = staff_split[1].trim().to_lowercase().trim().to_string(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_email` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name_w9_bank_emergency` [INFO] [stdout] --> src/backend/staff.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | let mut name_w9_bank_emergency: W9EmergencyCsv; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_name_w9_bank_emergency` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `email` [INFO] [stdout] --> src/backend/staff.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | let email = staff_split[1].trim().to_lowercase().trim().to_string(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_email` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/backend/worker.rs:458:13 [INFO] [stdout] | [INFO] [stdout] 457 | WorkerRoles::Backup => "Backup".to_string(), [INFO] [stdout] | ------------------- matches all the relevant values [INFO] [stdout] 458 | WorkerRoles::Backup => "Backup".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/backend/worker.rs:458:13 [INFO] [stdout] | [INFO] [stdout] 457 | WorkerRoles::Backup => "Backup".to_string(), [INFO] [stdout] | ------------------- matches all the relevant values [INFO] [stdout] 458 | WorkerRoles::Backup => "Backup".to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeTuple` is never constructed [INFO] [stdout] --> src/backend/shift.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | struct TimeTuple { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeData` is never constructed [INFO] [stdout] --> src/backend/shift.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | struct TimeData { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn default() -> AccountForJson { [INFO] [stdout] 16 | | AccountForJson { [INFO] [stdout] 17 | | id: "6c17000d-fcc3-4ad7-abcc-7faa6ef716763".to_string(), [INFO] [stdout] 18 | | email: "default@user.com".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn default() -> AccountNew { [INFO] [stdout] 47 | | AccountNew { [INFO] [stdout] 48 | | email: "default@user.com".to_string(), [INFO] [stdout] 49 | | phone: None, [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeTuple` is never constructed [INFO] [stdout] --> src/backend/shift.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | struct TimeTuple { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeData` is never constructed [INFO] [stdout] --> src/backend/shift.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | struct TimeData { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | / pub fn default() -> RegisterAccount { [INFO] [stdout] 71 | | RegisterAccount { [INFO] [stdout] 72 | | first_name: "".to_string(), [INFO] [stdout] 73 | | last_name: "".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn default() -> AccountForJson { [INFO] [stdout] 16 | | AccountForJson { [INFO] [stdout] 17 | | id: "6c17000d-fcc3-4ad7-abcc-7faa6ef716763".to_string(), [INFO] [stdout] 18 | | email: "default@user.com".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn default() -> AccountNew { [INFO] [stdout] 47 | | AccountNew { [INFO] [stdout] 48 | | email: "default@user.com".to_string(), [INFO] [stdout] 49 | | phone: None, [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `backend::account::AccountRoles` [INFO] [stdout] --> src/backend/account.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | / pub fn to_string(&self) -> String { [INFO] [stdout] 134 | | match self { [INFO] [stdout] 135 | | AccountRoles::Owner => "owner".to_string(), [INFO] [stdout] 136 | | AccountRoles::Admin => "admin".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 144 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `backend::account::AccountRoles` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:165:17 [INFO] [stdout] | [INFO] [stdout] 165 | / if min_role == "default" [INFO] [stdout] 166 | | || min_role == "staff" [INFO] [stdout] 167 | | || min_role == "lead" [INFO] [stdout] 168 | | || min_role == "partner" [INFO] [stdout] ... | [INFO] [stdout] 173 | | false [INFO] [stdout] 174 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 165 ~ min_role == "default" [INFO] [stdout] 166 + || min_role == "staff" [INFO] [stdout] 167 + || min_role == "lead" [INFO] [stdout] 168 + || min_role == "partner" || min_role == "admin" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | / if min_role == "default" || min_role == "partner" { [INFO] [stdout] 178 | | true [INFO] [stdout] 179 | | } else { [INFO] [stdout] 180 | | false [INFO] [stdout] 181 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "partner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | / if min_role == "default" || min_role == "staff" || min_role == "lead" { [INFO] [stdout] 185 | | true [INFO] [stdout] 186 | | } else { [INFO] [stdout] 187 | | false [INFO] [stdout] 188 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "staff" || min_role == "lead"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | / if min_role == "default" || min_role == "staff" { [INFO] [stdout] 192 | | true [INFO] [stdout] 193 | | } else { [INFO] [stdout] 194 | | false [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "staff"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | / if min_role == "default" || min_role == "tablet_scanner" { [INFO] [stdout] 199 | | true [INFO] [stdout] 200 | | } else { [INFO] [stdout] 201 | | false [INFO] [stdout] 202 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "tablet_scanner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | / if min_role == "default" || min_role == "zebra_scanner" { [INFO] [stdout] 206 | | true [INFO] [stdout] 207 | | } else { [INFO] [stdout] 208 | | false [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "zebra_scanner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if min_role == "default" { [INFO] [stdout] 213 | | true [INFO] [stdout] 214 | | } else { [INFO] [stdout] 215 | | false [INFO] [stdout] 216 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/account.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | / pub fn default() -> RegisterAccount { [INFO] [stdout] 71 | | RegisterAccount { [INFO] [stdout] 72 | | first_name: "".to_string(), [INFO] [stdout] 73 | | last_name: "".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `backend::account::AccountRoles` [INFO] [stdout] --> src/backend/account.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | / pub fn to_string(&self) -> String { [INFO] [stdout] 134 | | match self { [INFO] [stdout] 135 | | AccountRoles::Owner => "owner".to_string(), [INFO] [stdout] 136 | | AccountRoles::Admin => "admin".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 144 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `backend::account::AccountRoles` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/attendee.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn default() -> AttendeeForJson { [INFO] [stdout] 38 | | AttendeeForJson { [INFO] [stdout] 39 | | id: "".to_string(), [INFO] [stdout] 40 | | registration_id: None, [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:165:17 [INFO] [stdout] | [INFO] [stdout] 165 | / if min_role == "default" [INFO] [stdout] 166 | | || min_role == "staff" [INFO] [stdout] 167 | | || min_role == "lead" [INFO] [stdout] 168 | | || min_role == "partner" [INFO] [stdout] ... | [INFO] [stdout] 173 | | false [INFO] [stdout] 174 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 165 ~ min_role == "default" [INFO] [stdout] 166 + || min_role == "staff" [INFO] [stdout] 167 + || min_role == "lead" [INFO] [stdout] 168 + || min_role == "partner" || min_role == "admin" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | / if min_role == "default" || min_role == "partner" { [INFO] [stdout] 178 | | true [INFO] [stdout] 179 | | } else { [INFO] [stdout] 180 | | false [INFO] [stdout] 181 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "partner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | / if min_role == "default" || min_role == "staff" || min_role == "lead" { [INFO] [stdout] 185 | | true [INFO] [stdout] 186 | | } else { [INFO] [stdout] 187 | | false [INFO] [stdout] 188 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "staff" || min_role == "lead"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | / if min_role == "default" || min_role == "staff" { [INFO] [stdout] 192 | | true [INFO] [stdout] 193 | | } else { [INFO] [stdout] 194 | | false [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "staff"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | / if min_role == "default" || min_role == "tablet_scanner" { [INFO] [stdout] 199 | | true [INFO] [stdout] 200 | | } else { [INFO] [stdout] 201 | | false [INFO] [stdout] 202 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "tablet_scanner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | / if min_role == "default" || min_role == "zebra_scanner" { [INFO] [stdout] 206 | | true [INFO] [stdout] 207 | | } else { [INFO] [stdout] 208 | | false [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default" || min_role == "zebra_scanner"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/account.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if min_role == "default" { [INFO] [stdout] 213 | | true [INFO] [stdout] 214 | | } else { [INFO] [stdout] 215 | | false [INFO] [stdout] 216 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `min_role == "default"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/attendee.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn default() -> AttendeeForJson { [INFO] [stdout] 38 | | AttendeeForJson { [INFO] [stdout] 39 | | id: "".to_string(), [INFO] [stdout] 40 | | registration_id: None, [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:304:61 [INFO] [stdout] | [INFO] [stdout] 304 | ... } else if badge_type.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:356:56 [INFO] [stdout] | [INFO] [stdout] 356 | ... } else if badge.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/attendee.rs:368:47 [INFO] [stdout] | [INFO] [stdout] 368 | ... pickup_person: if bulk_mut.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bulk_mut.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:399:61 [INFO] [stdout] | [INFO] [stdout] 399 | ... } else if badge_type.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/backend/attendee.rs:475:37 [INFO] [stdout] | [INFO] [stdout] 475 | let record: ( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 476 | | i32, [INFO] [stdout] 477 | | i32, [INFO] [stdout] 478 | | String, [INFO] [stdout] ... | [INFO] [stdout] 489 | | String, [INFO] [stdout] 490 | | ) = result?; [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/attendee.rs:663:20 [INFO] [stdout] | [INFO] [stdout] 663 | if ordered_list.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `ordered_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/attendee.rs:665:32 [INFO] [stdout] | [INFO] [stdout] 665 | best = d.badge_priority.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `d.badge_priority` [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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/attendee.rs:670:32 [INFO] [stdout] | [INFO] [stdout] 670 | best = d.badge_priority.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `d.badge_priority` [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: consider using `sort_by_key` [INFO] [stdout] --> src/backend/attendee.rs:679:9 [INFO] [stdout] | [INFO] [stdout] 679 | ordered_list.sort_by(|a, b| a.registration_id.cmp(&b.registration_id)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 679 - ordered_list.sort_by(|a, b| a.registration_id.cmp(&b.registration_id)); [INFO] [stdout] 679 + ordered_list.sort_by_key(|a| a.registration_id); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/backend/attendee.rs:681:9 [INFO] [stdout] | [INFO] [stdout] 681 | ordered_list.sort_by(|a, b| a.badge_priority.cmp(&b.badge_priority)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 681 - ordered_list.sort_by(|a, b| a.badge_priority.cmp(&b.badge_priority)); [INFO] [stdout] 681 + ordered_list.sort_by_key(|a| a.badge_priority); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/attendee.rs:701:5 [INFO] [stdout] | [INFO] [stdout] 701 | / if pickup_list [INFO] [stdout] 702 | | .to_lowercase() [INFO] [stdout] 703 | | .contains(&first_name.trim().to_lowercase().to_string()) [INFO] [stdout] 704 | | && pickup_list [INFO] [stdout] ... | [INFO] [stdout] 710 | | false [INFO] [stdout] 711 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 701 ~ pickup_list [INFO] [stdout] 702 + .to_lowercase() [INFO] [stdout] 703 + .contains(&first_name.trim().to_lowercase().to_string()) && pickup_list [INFO] [stdout] 704 + .to_lowercase() [INFO] [stdout] 705 + .contains(&last_name.trim().to_lowercase().to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/backend/attendee.rs:858:76 [INFO] [stdout] | [INFO] [stdout] 857 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 858 | let record: (String, String, String, String, String, String) = result.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:304:61 [INFO] [stdout] | [INFO] [stdout] 304 | ... } else if badge_type.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/event.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn default() -> EventForJson { [INFO] [stdout] 22 | | let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 23 | | [INFO] [stdout] 24 | | EventForJson { [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:356:56 [INFO] [stdout] | [INFO] [stdout] 356 | ... } else if badge.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/attendee.rs:368:47 [INFO] [stdout] | [INFO] [stdout] 368 | ... pickup_person: if bulk_mut.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bulk_mut.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/attendee.rs:399:61 [INFO] [stdout] | [INFO] [stdout] 399 | ... } else if badge_type.clone() == String::from("Attendee") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"Attendee"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/backend/attendee.rs:475:37 [INFO] [stdout] | [INFO] [stdout] 475 | let record: ( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 476 | | i32, [INFO] [stdout] 477 | | i32, [INFO] [stdout] 478 | | String, [INFO] [stdout] ... | [INFO] [stdout] 489 | | String, [INFO] [stdout] 490 | | ) = result?; [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/attendee.rs:663:20 [INFO] [stdout] | [INFO] [stdout] 663 | if ordered_list.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `ordered_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/event.rs:70:47 [INFO] [stdout] | [INFO] [stdout] 70 | let market_id = uuid::Uuid::parse_str(&market_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `market_id` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/event.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | let account_id = uuid::Uuid::parse_str(&account_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/attendee.rs:665:32 [INFO] [stdout] | [INFO] [stdout] 665 | best = d.badge_priority.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `d.badge_priority` [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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/attendee.rs:670:32 [INFO] [stdout] | [INFO] [stdout] 670 | best = d.badge_priority.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `d.badge_priority` [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: consider using `sort_by_key` [INFO] [stdout] --> src/backend/attendee.rs:679:9 [INFO] [stdout] | [INFO] [stdout] 679 | ordered_list.sort_by(|a, b| a.registration_id.cmp(&b.registration_id)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 679 - ordered_list.sort_by(|a, b| a.registration_id.cmp(&b.registration_id)); [INFO] [stdout] 679 + ordered_list.sort_by_key(|a| a.registration_id); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/backend/attendee.rs:681:9 [INFO] [stdout] | [INFO] [stdout] 681 | ordered_list.sort_by(|a, b| a.badge_priority.cmp(&b.badge_priority)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 681 - ordered_list.sort_by(|a, b| a.badge_priority.cmp(&b.badge_priority)); [INFO] [stdout] 681 + ordered_list.sort_by_key(|a| a.badge_priority); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/backend/attendee.rs:701:5 [INFO] [stdout] | [INFO] [stdout] 701 | / if pickup_list [INFO] [stdout] 702 | | .to_lowercase() [INFO] [stdout] 703 | | .contains(&first_name.trim().to_lowercase().to_string()) [INFO] [stdout] 704 | | && pickup_list [INFO] [stdout] ... | [INFO] [stdout] 710 | | false [INFO] [stdout] 711 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] help: you can reduce it to [INFO] [stdout] | [INFO] [stdout] 701 ~ pickup_list [INFO] [stdout] 702 + .to_lowercase() [INFO] [stdout] 703 + .contains(&first_name.trim().to_lowercase().to_string()) && pickup_list [INFO] [stdout] 704 + .to_lowercase() [INFO] [stdout] 705 + .contains(&last_name.trim().to_lowercase().to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/backend/attendee.rs:858:76 [INFO] [stdout] | [INFO] [stdout] 857 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 858 | let record: (String, String, String, String, String, String) = result.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/market.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn default() -> MarketForJson { [INFO] [stdout] 17 | | MarketForJson { [INFO] [stdout] 18 | | city: String::new(), [INFO] [stdout] 19 | | state: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/event.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn default() -> EventForJson { [INFO] [stdout] 22 | | let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 23 | | [INFO] [stdout] 24 | | EventForJson { [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/market.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn default() -> MarketNew { [INFO] [stdout] 37 | | MarketNew { [INFO] [stdout] 38 | | city: String::new(), [INFO] [stdout] 39 | | state: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/event.rs:70:47 [INFO] [stdout] | [INFO] [stdout] 70 | let market_id = uuid::Uuid::parse_str(&market_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `market_id` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/event.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | let account_id = uuid::Uuid::parse_str(&account_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/notification.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn default() -> EventForJson { [INFO] [stdout] 28 | | let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 29 | | [INFO] [stdout] 30 | | EventForJson { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/notification.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/market.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn default() -> MarketForJson { [INFO] [stdout] 17 | | MarketForJson { [INFO] [stdout] 18 | | city: String::new(), [INFO] [stdout] 19 | | state: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/market.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn default() -> MarketNew { [INFO] [stdout] 37 | | MarketNew { [INFO] [stdout] 38 | | city: String::new(), [INFO] [stdout] 39 | | state: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/payment.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn default() -> PaymentForJson { [INFO] [stdout] 22 | | PaymentForJson { [INFO] [stdout] 23 | | id: Uuid::parse_str("6c17000d-fcc3-4ad7-abcc-7faa6ef716763").unwrap(), [INFO] [stdout] 24 | | account_id: Uuid::parse_str("6c17000d-fcc3-4ad7-abcc-7faa6ef716763").unwrap(), [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/notification.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn default() -> EventForJson { [INFO] [stdout] 28 | | let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 29 | | [INFO] [stdout] 30 | | EventForJson { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | let account_id = uuid::Uuid::parse_str(&account_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:55:46 [INFO] [stdout] | [INFO] [stdout] 55 | let shift_id = uuid::Uuid::parse_str(&shift_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `shift_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:56:49 [INFO] [stdout] | [INFO] [stdout] 56 | let position_id = uuid::Uuid::parse_str(&position_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `position_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:57:54 [INFO] [stdout] | [INFO] [stdout] 57 | let profile_legal_id = uuid::Uuid::parse_str(&profile_legal_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `profile_legal_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/notification.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/payment.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn default() -> PaymentForJson { [INFO] [stdout] 22 | | PaymentForJson { [INFO] [stdout] 23 | | id: Uuid::parse_str("6c17000d-fcc3-4ad7-abcc-7faa6ef716763").unwrap(), [INFO] [stdout] 24 | | account_id: Uuid::parse_str("6c17000d-fcc3-4ad7-abcc-7faa6ef716763").unwrap(), [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | let account_id = uuid::Uuid::parse_str(&account_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `account_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:55:46 [INFO] [stdout] | [INFO] [stdout] 55 | let shift_id = uuid::Uuid::parse_str(&shift_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `shift_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:56:49 [INFO] [stdout] | [INFO] [stdout] 56 | let position_id = uuid::Uuid::parse_str(&position_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `position_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/payment.rs:57:54 [INFO] [stdout] | [INFO] [stdout] 57 | let profile_legal_id = uuid::Uuid::parse_str(&profile_legal_id).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `profile_legal_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/position.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn default() -> PositionForJson { [INFO] [stdout] 42 | | // let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 43 | | [INFO] [stdout] 44 | | PositionForJson { [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/backend/position.rs:49:22 [INFO] [stdout] | [INFO] [stdout] 49 | n_staff: 2 as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `2_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | earnings: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | hourly_rate: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/backend/position.rs:101:22 [INFO] [stdout] | [INFO] [stdout] 101 | n_staff: 0 as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `0_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:115:23 [INFO] [stdout] | [INFO] [stdout] 115 | earnings: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | hourly_rate: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/position.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn default() -> PositionForJson { [INFO] [stdout] 42 | | // let pacific_tz = FixedOffset::west_opt(8 * 3600).unwrap(); // Pacific Time is UTC-8 [INFO] [stdout] 43 | | [INFO] [stdout] 44 | | PositionForJson { [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/backend/position.rs:49:22 [INFO] [stdout] | [INFO] [stdout] 49 | n_staff: 2 as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `2_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | earnings: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:64:26 [INFO] [stdout] | [INFO] [stdout] 64 | hourly_rate: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/backend/position.rs:168:58 [INFO] [stdout] | [INFO] [stdout] 168 | pub fn get_codes_by_name(name: String, staff_latest: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 168 ~ pub fn get_codes_by_name(name: String, staff_latest: &[StaffDetails]) -> Vec { [INFO] [stdout] 169 | let mut temp_vec: Vec = vec![]; [INFO] [stdout] 170 | [INFO] [stdout] 171 ~ for staff_list in staff_latest.to_owned() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `i32` is unnecessary [INFO] [stdout] --> src/backend/position.rs:101:22 [INFO] [stdout] | [INFO] [stdout] 101 | n_staff: 0 as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `0_i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:115:23 [INFO] [stdout] | [INFO] [stdout] 115 | earnings: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting float literal to `f64` is unnecessary [INFO] [stdout] --> src/backend/position.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | hourly_rate: 0.0 as f64, [INFO] [stdout] | ^^^^^^^^^^ help: try: `0.0_f64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/backend/position.rs:168:58 [INFO] [stdout] | [INFO] [stdout] 168 | pub fn get_codes_by_name(name: String, staff_latest: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 168 ~ pub fn get_codes_by_name(name: String, staff_latest: &[StaffDetails]) -> Vec { [INFO] [stdout] 169 | let mut temp_vec: Vec = vec![]; [INFO] [stdout] 170 | [INFO] [stdout] 171 ~ for staff_list in staff_latest.to_owned() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/profile.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / pub fn default() -> ProfileForJson { [INFO] [stdout] 40 | | ProfileForJson { [INFO] [stdout] 41 | | active: true, [INFO] [stdout] 42 | | about: "This is a default response!".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 71 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/profile.rs:83:40 [INFO] [stdout] | [INFO] [stdout] 83 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/profile.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / pub fn default() -> ProfileForJson { [INFO] [stdout] 40 | | ProfileForJson { [INFO] [stdout] 41 | | active: true, [INFO] [stdout] 42 | | about: "This is a default response!".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 71 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/profile.rs:83:40 [INFO] [stdout] | [INFO] [stdout] 83 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/profile_legal.rs:47:40 [INFO] [stdout] | [INFO] [stdout] 47 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/backend/profile_legal.rs:47:40 [INFO] [stdout] | [INFO] [stdout] 47 | let id = uuid::Uuid::parse_str(&id).unwrap(); [INFO] [stdout] | ^^^ help: change this to: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/backend/staff.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 78 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 79 | let expected: ContractLanguageShirtSize = [INFO] [stdout] 80 | result.expect("ContractLanguageShirtSize"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:81:39 [INFO] [stdout] | [INFO] [stdout] 81 | if expected.accept == "Yes".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"Yes"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | x.legal_name.to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.legal_name.to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:257:32 [INFO] [stdout] | [INFO] [stdout] 257 | ... == name.clone().to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `name.clone().to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | if sbe_retained.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!sbe_retained.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:279:25 [INFO] [stdout] | [INFO] [stdout] 279 | x.legal_name.to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.legal_name.to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:280:32 [INFO] [stdout] | [INFO] [stdout] 280 | ... == name.clone().to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `name.clone().to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/backend/staff.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 78 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 79 | let expected: ContractLanguageShirtSize = [INFO] [stdout] 80 | result.expect("ContractLanguageShirtSize"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:81:39 [INFO] [stdout] | [INFO] [stdout] 81 | if expected.accept == "Yes".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"Yes"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:380:46 [INFO] [stdout] | [INFO] [stdout] 380 | let personal_w9_submissions = if w9_submissions.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!w9_submissions.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:391:46 [INFO] [stdout] | [INFO] [stdout] 391 | let personal_bank_emergency = if bank_emergency.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bank_emergency.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/worker.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn default() -> WorkerForJson { [INFO] [stdout] 36 | | WorkerForJson { [INFO] [stdout] 37 | | id: "".to_string(), [INFO] [stdout] 38 | | name: "".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | if day_matching.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `day_matching.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:96:36 [INFO] [stdout] | [INFO] [stdout] 96 | let duration_until_start = current.clone().signed_duration_since(start); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `current` [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: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:97:34 [INFO] [stdout] | [INFO] [stdout] 97 | let duration_since_end = end.clone().signed_duration_since(current); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `end` [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: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:139:33 [INFO] [stdout] | [INFO] [stdout] 139 | checked_in: x.checked_in.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `x.checked_in` [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: called `unwrap` on `x.checked_in` after checking its variant with `is_some` [INFO] [stdout] --> src/backend/worker.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 181 | if x.checked_in.is_some() && x.checked_in.unwrap() { [INFO] [stdout] | ---------------------- the check is happening here [INFO] [stdout] 182 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/backend/worker.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.checked_in.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/backend/worker.rs:191:21 [INFO] [stdout] | [INFO] [stdout] 191 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.checked_in.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:254:16 [INFO] [stdout] | [INFO] [stdout] 254 | if time_date_string_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!time_date_string_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/backend/worker.rs:259:28 [INFO] [stdout] | [INFO] [stdout] 259 | schedule = format!("{}", position_li); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `position_li.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:335:35 [INFO] [stdout] | [INFO] [stdout] 335 | let n_staff = position_item.n_staff.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position_item.n_staff` [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: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:340:16 [INFO] [stdout] | [INFO] [stdout] 340 | if positions_vec.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!positions_vec.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `backend::worker::WorkerRoles` [INFO] [stdout] --> src/backend/worker.rs:446:5 [INFO] [stdout] | [INFO] [stdout] 446 | / pub fn to_string(&self) -> String { [INFO] [stdout] 447 | | match self { [INFO] [stdout] 448 | | WorkerRoles::Director => "Director".to_string(), [INFO] [stdout] 449 | | WorkerRoles::Supervisor => "Supervisor".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 461 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `backend::worker::WorkerRoles` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LanguageVec` [INFO] [stdout] --> src/forms/profile.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn new() -> LanguageVec { [INFO] [stdout] 27 | | LanguageVec { list: vec![] } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 25 + impl Default for LanguageVec { [INFO] [stdout] 26 + fn default() -> Self { [INFO] [stdout] 27 + Self::new() [INFO] [stdout] 28 + } [INFO] [stdout] 29 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/utils/email.rs:215:40 [INFO] [stdout] | [INFO] [stdout] 215 | _ = OpenOptions::new().write(true).create(true).open(filename); [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/utils/get_path.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | if ssl { [INFO] [stdout] | ____________^ [INFO] [stdout] 14 | | format!("https://{}/{}", backend_url, route) [INFO] [stdout] 15 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/utils/get_path.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 16 | | format!("https://{}/{}", backend_url, route) [INFO] [stdout] 17 | | } [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: unnecessary use of `.write(true)` because there is `.append(true)` [INFO] [stdout] --> src/utils/gnatt.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | .write(true) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove `.write(true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ineffective_open_options [INFO] [stdout] = note: `#[warn(clippy::ineffective_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:256:25 [INFO] [stdout] | [INFO] [stdout] 256 | x.legal_name.to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.legal_name.to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:257:32 [INFO] [stdout] | [INFO] [stdout] 257 | ... == name.clone().to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `name.clone().to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | if sbe_retained.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!sbe_retained.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/utils/i18n.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | / for pin in name.to_pinyin() { [INFO] [stdout] 40 | | if let Some(pin) = pin { [INFO] [stdout] 41 | | // pin.plain() [INFO] [stdout] 42 | | pinyin.push_str(pin.with_tone()); [INFO] [stdout] 43 | | } [INFO] [stdout] 44 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/utils/i18n.rs:40:29 [INFO] [stdout] | [INFO] [stdout] 40 | / ... if let Some(pin) = pin { [INFO] [stdout] 41 | | ... // pin.plain() [INFO] [stdout] 42 | | ... pinyin.push_str(pin.with_tone()); [INFO] [stdout] 43 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 ~ for pin in name.to_pinyin().flatten() { [INFO] [stdout] 40 + // pin.plain() [INFO] [stdout] 41 + pinyin.push_str(pin.with_tone()); [INFO] [stdout] 42 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:279:25 [INFO] [stdout] | [INFO] [stdout] 279 | x.legal_name.to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.legal_name.to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `.write(true)` because there is `.append(true)` [INFO] [stdout] --> src/utils/log.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | .write(true) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove `.write(true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ineffective_open_options [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/backend/staff.rs:280:32 [INFO] [stdout] | [INFO] [stdout] 280 | ... == name.clone().to_lowercase().trim().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `name.clone().to_lowercase().trim()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/utils/log.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | if path.exists() { [INFO] [stdout] | ______________________^ [INFO] [stdout] 22 | | file.write_all(string_to_append.as_bytes())?; [INFO] [stdout] 23 | | file.write_all(b"\n")?; [INFO] [stdout] 24 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/utils/log.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 25 | | file.write_all(string_to_append.as_bytes())?; [INFO] [stdout] 26 | | file.write_all(b"\n")?; [INFO] [stdout] 27 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `position.max_hours` after checking its variant with `is_none` [INFO] [stdout] --> src/utils/time.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 25 | let time_worked: f64 = if position.max_hours.is_none() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = position.max_hours` [INFO] [stdout] ... [INFO] [stdout] 28 | position.max_hours.unwrap() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils/validation.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] 12 | | true [INFO] [stdout] 13 | | } else { [INFO] [stdout] 14 | | false [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/utils/validation.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(4..=6).contains(&length)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:11:66 [INFO] [stdout] | [INFO] [stdout] 11 | if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils/validation.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / if length == 7 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] 24 | | true [INFO] [stdout] 25 | | } else { [INFO] [stdout] 26 | | false [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `length == 7 && number[0..].chars().all(|c| c.is_digit(10))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:23:51 [INFO] [stdout] | [INFO] [stdout] 23 | if length == 7 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] 63 | | && true [INFO] [stdout] 64 | | && password.len() >= 8 [INFO] [stdout] | |______________________________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true) && password.len() >= 8` [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 boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] 63 | | && true [INFO] [stdout] | |_______________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] | |____________________________________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 61 - && has_lower.contains(&true) [INFO] [stdout] 59 + !(no_whitespace.contains(&true) || !has_lower.contains(&true)) [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 61 - && has_lower.contains(&true) [INFO] [stdout] 59 + !no_whitespace.contains(&true) && has_lower.contains(&true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 59 + !no_whitespace.contains(&true) [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 59 + !no_whitespace.contains(&true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | has_digit.push(c.is_digit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:380:46 [INFO] [stdout] | [INFO] [stdout] 380 | let personal_w9_submissions = if w9_submissions.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!w9_submissions.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/staff.rs:391:46 [INFO] [stdout] | [INFO] [stdout] 391 | let personal_bank_emergency = if bank_emergency.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bank_emergency.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/backend/worker.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn default() -> WorkerForJson { [INFO] [stdout] 36 | | WorkerForJson { [INFO] [stdout] 37 | | id: "".to_string(), [INFO] [stdout] 38 | | name: "".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | if day_matching.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `day_matching.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:96:36 [INFO] [stdout] | [INFO] [stdout] 96 | let duration_until_start = current.clone().signed_duration_since(start); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `current` [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: using `clone` on type `NaiveTime` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:97:34 [INFO] [stdout] | [INFO] [stdout] 97 | let duration_since_end = end.clone().signed_duration_since(current); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `end` [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: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:139:33 [INFO] [stdout] | [INFO] [stdout] 139 | checked_in: x.checked_in.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `x.checked_in` [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: called `unwrap` on `x.checked_in` after checking its variant with `is_some` [INFO] [stdout] --> src/backend/worker.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 181 | if x.checked_in.is_some() && x.checked_in.unwrap() { [INFO] [stdout] | ---------------------- the check is happening here [INFO] [stdout] 182 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/backend/worker.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.checked_in.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/backend/worker.rs:191:21 [INFO] [stdout] | [INFO] [stdout] 191 | x.checked_in.unwrap() == true [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.checked_in.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:254:16 [INFO] [stdout] | [INFO] [stdout] 254 | if time_date_string_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!time_date_string_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/backend/worker.rs:259:28 [INFO] [stdout] | [INFO] [stdout] 259 | schedule = format!("{}", position_li); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `position_li.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/backend/worker.rs:335:35 [INFO] [stdout] | [INFO] [stdout] 335 | let n_staff = position_item.n_staff.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position_item.n_staff` [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: length comparison to zero [INFO] [stdout] --> src/backend/worker.rs:340:16 [INFO] [stdout] | [INFO] [stdout] 340 | if positions_vec.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!positions_vec.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `backend::worker::WorkerRoles` [INFO] [stdout] --> src/backend/worker.rs:446:5 [INFO] [stdout] | [INFO] [stdout] 446 | / pub fn to_string(&self) -> String { [INFO] [stdout] 447 | | match self { [INFO] [stdout] 448 | | WorkerRoles::Director => "Director".to_string(), [INFO] [stdout] 449 | | WorkerRoles::Supervisor => "Supervisor".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 461 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `backend::worker::WorkerRoles` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LanguageVec` [INFO] [stdout] --> src/forms/profile.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn new() -> LanguageVec { [INFO] [stdout] 27 | | LanguageVec { list: vec![] } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 25 + impl Default for LanguageVec { [INFO] [stdout] 26 + fn default() -> Self { [INFO] [stdout] 27 + Self::new() [INFO] [stdout] 28 + } [INFO] [stdout] 29 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/utils/email.rs:215:40 [INFO] [stdout] | [INFO] [stdout] 215 | _ = OpenOptions::new().write(true).create(true).open(filename); [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/utils/get_path.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | if ssl { [INFO] [stdout] | ____________^ [INFO] [stdout] 14 | | format!("https://{}/{}", backend_url, route) [INFO] [stdout] 15 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/utils/get_path.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 16 | | format!("https://{}/{}", backend_url, route) [INFO] [stdout] 17 | | } [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: unnecessary use of `.write(true)` because there is `.append(true)` [INFO] [stdout] --> src/utils/gnatt.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | .write(true) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove `.write(true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ineffective_open_options [INFO] [stdout] = note: `#[warn(clippy::ineffective_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/utils/i18n.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | / for pin in name.to_pinyin() { [INFO] [stdout] 40 | | if let Some(pin) = pin { [INFO] [stdout] 41 | | // pin.plain() [INFO] [stdout] 42 | | pinyin.push_str(pin.with_tone()); [INFO] [stdout] 43 | | } [INFO] [stdout] 44 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/utils/i18n.rs:40:29 [INFO] [stdout] | [INFO] [stdout] 40 | / ... if let Some(pin) = pin { [INFO] [stdout] 41 | | ... // pin.plain() [INFO] [stdout] 42 | | ... pinyin.push_str(pin.with_tone()); [INFO] [stdout] 43 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 39 ~ for pin in name.to_pinyin().flatten() { [INFO] [stdout] 40 + // pin.plain() [INFO] [stdout] 41 + pinyin.push_str(pin.with_tone()); [INFO] [stdout] 42 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `.write(true)` because there is `.append(true)` [INFO] [stdout] --> src/utils/log.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | .write(true) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove `.write(true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ineffective_open_options [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/utils/log.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | if path.exists() { [INFO] [stdout] | ______________________^ [INFO] [stdout] 22 | | file.write_all(string_to_append.as_bytes())?; [INFO] [stdout] 23 | | file.write_all(b"\n")?; [INFO] [stdout] 24 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/utils/log.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 25 | | file.write_all(string_to_append.as_bytes())?; [INFO] [stdout] 26 | | file.write_all(b"\n")?; [INFO] [stdout] 27 | | } [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `position.max_hours` after checking its variant with `is_none` [INFO] [stdout] --> src/utils/time.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 25 | let time_worked: f64 = if position.max_hours.is_none() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = position.max_hours` [INFO] [stdout] ... [INFO] [stdout] 28 | position.max_hours.unwrap() as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils/validation.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] 12 | | true [INFO] [stdout] 13 | | } else { [INFO] [stdout] 14 | | false [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/utils/validation.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(4..=6).contains(&length)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:11:66 [INFO] [stdout] | [INFO] [stdout] 11 | if length <= 6 && length >= 4 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/utils/validation.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / if length == 7 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] 24 | | true [INFO] [stdout] 25 | | } else { [INFO] [stdout] 26 | | false [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `length == 7 && number[0..].chars().all(|c| c.is_digit(10))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:23:51 [INFO] [stdout] | [INFO] [stdout] 23 | if length == 7 && number[0..].chars().all(|c| c.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] 63 | | && true [INFO] [stdout] 64 | | && password.len() >= 8 [INFO] [stdout] | |______________________________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true) && password.len() >= 8` [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 boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] 63 | | && true [INFO] [stdout] | |_______________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] 62 | | && has_digit.contains(&true) [INFO] [stdout] | |____________________________________^ help: try: `!no_whitespace.contains(&true) && has_lower.contains(&true) && has_digit.contains(&true)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] 61 | | && has_lower.contains(&true) [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 61 - && has_lower.contains(&true) [INFO] [stdout] 59 + !(no_whitespace.contains(&true) || !has_lower.contains(&true)) [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 61 - && has_lower.contains(&true) [INFO] [stdout] 59 + !no_whitespace.contains(&true) && has_lower.contains(&true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils/validation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / !no_whitespace.contains(&true) [INFO] [stdout] 60 | | && true [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 59 + !no_whitespace.contains(&true) [INFO] [stdout] | [INFO] [stdout] 59 - !no_whitespace.contains(&true) [INFO] [stdout] 60 - && true [INFO] [stdout] 59 + !no_whitespace.contains(&true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/utils/validation.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | has_digit.push(c.is_digit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.00s [INFO] running `Command { std: "docker" "inspect" "722131c5a441fa807677be0f62f48d9554a60b1cc69adbf193dbc8ee96866bab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "722131c5a441fa807677be0f62f48d9554a60b1cc69adbf193dbc8ee96866bab", kill_on_drop: false }` [INFO] [stdout] 722131c5a441fa807677be0f62f48d9554a60b1cc69adbf193dbc8ee96866bab