[INFO] cloning repository https://github.com/vagicc/www.xueyigou.cn
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vagicc/www.xueyigou.cn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fwww.xueyigou.cn", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fwww.xueyigou.cn'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f7e85d5edfcd9333261c3a3263abdee60b3e93f6
[INFO] checking vagicc/www.xueyigou.cn against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fwww.xueyigou.cn" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vagicc/www.xueyigou.cn on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vagicc/www.xueyigou.cn
[INFO] finished tweaking git repo https://github.com/vagicc/www.xueyigou.cn
[INFO] tweaked toml for git repo https://github.com/vagicc/www.xueyigou.cn written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/vagicc/www.xueyigou.cn already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bcrypt v0.9.0
[INFO] [stderr]   Downloaded tokio-util v0.6.6
[INFO] [stderr]   Downloaded handlebars v4.1.5
[INFO] [stderr]   Downloaded blowfish v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 27df380aac74ae9e6184f2b74d7d6411b85faad3c21d1aa9115033e63fdf7377
[INFO] running `Command { std: "docker" "start" "-a" "27df380aac74ae9e6184f2b74d7d6411b85faad3c21d1aa9115033e63fdf7377", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27df380aac74ae9e6184f2b74d7d6411b85faad3c21d1aa9115033e63fdf7377", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27df380aac74ae9e6184f2b74d7d6411b85faad3c21d1aa9115033e63fdf7377", kill_on_drop: false }`
[INFO] [stdout] 27df380aac74ae9e6184f2b74d7d6411b85faad3c21d1aa9115033e63fdf7377
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 245362bed2b6e65cba6b22d4ae57f40a873a5dbd1ce260253b622a3c4e39c991
[INFO] running `Command { std: "docker" "start" "-a" "245362bed2b6e65cba6b22d4ae57f40a873a5dbd1ce260253b622a3c4e39c991", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]     Checking pin-project-lite v0.2.6
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling serde_derive v1.0.130
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking futures-sink v0.3.17
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling cc v1.0.67
[INFO] [stderr]     Checking ppv-lite86 v0.2.10
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling tokio v1.14.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]     Checking http v0.2.4
[INFO] [stderr]    Compiling httparse v1.4.1
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]     Checking tinyvec v1.2.0
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking slab v0.4.3
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking once_cell v1.7.2
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]    Compiling indexmap v1.6.2
[INFO] [stderr]     Checking unicode-bidi v0.3.5
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]    Compiling futures-channel v0.3.17
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]     Checking smallvec v1.6.1
[INFO] [stderr]    Compiling serde_json v1.0.72
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking mio v0.7.11
[INFO] [stderr]     Checking cpufeatures v0.1.1
[INFO] [stderr]     Checking tracing-core v0.1.18
[INFO] [stderr]     Checking lock_api v0.4.4
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]     Checking parking_lot_core v0.8.3
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]    Compiling pest v2.1.3
[INFO] [stderr]    Compiling mime_guess v2.0.3
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]     Checking mime v0.3.16
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]     Checking tracing v0.1.26
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking unicode-normalization v0.1.17
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking try-lock v0.2.3
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]    Compiling pq-sys v0.4.6
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking buf_redux v0.8.4
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.5
[INFO] [stderr]     Checking socket2 v0.4.0
[INFO] [stderr]     Checking twoway v0.1.8
[INFO] [stderr]     Checking httpdate v1.0.0
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking cipher v0.2.5
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]     Checking sha-1 v0.9.6
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking uuid v0.6.5
[INFO] [stderr]     Checking blowfish v0.7.0
[INFO] [stderr]     Checking r2d2 v0.8.9
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking http-body v0.4.2
[INFO] [stderr]     Checking futures-io v0.3.17
[INFO] [stderr]     Checking headers v0.3.4
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking tempfile v3.2.0
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking bcrypt v0.9.0
[INFO] [stderr]     Checking sha1 v0.6.0
[INFO] [stderr]     Checking multipart v0.18.0
[INFO] [stderr]     Checking bigdecimal v0.1.2
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking futures v0.3.17
[INFO] [stderr]     Checking bigdecimal v0.3.0
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]     Checking rustls v0.19.1
[INFO] [stderr]    Compiling tokio-macros v1.6.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling diesel_derives v1.4.1
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking tungstenite v0.14.0
[INFO] [stderr]     Checking pin-project v1.0.7
[INFO] [stderr]     Checking tokio-util v0.6.6
[INFO] [stderr]     Checking tokio-rustls v0.22.0
[INFO] [stderr]     Checking tokio-tungstenite v0.15.0
[INFO] [stderr]     Checking tokio-stream v0.1.5
[INFO] [stderr]     Checking h2 v0.3.3
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking ipnetwork v0.17.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.0
[INFO] [stderr]     Checking handlebars v4.1.5
[INFO] [stderr]     Checking diesel v1.4.8
[INFO] [stderr]     Checking hyper v0.14.7
[INFO] [stderr]     Checking warp v0.3.2
[INFO] [stderr]     Checking xueyigou v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufMut`, `Buf`
[INFO] [stdout]  --> src/handlers/approve_handler.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use bytes::{Buf, BufMut};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `Buf`
[INFO] [stdout]  --> src/handlers/goods_handler.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bytes::{Buf, BufMut};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Local`, `NaiveDateTime`
[INFO] [stdout]  --> src/handlers/goods_handler.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::prelude::{Local, NaiveDateTime};
[INFO] [stdout]   |                       ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> src/handlers/login_handler.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::primitive`
[INFO] [stdout]  --> src/handlers/login_handler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::primitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Reply`
[INFO] [stdout]  --> src/handlers/logout_handler.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use warp::{Rejection, Reply};
[INFO] [stdout]   |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `Buf`
[INFO] [stdout]  --> src/handlers/approve_handler.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use bytes::{Buf, BufMut};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `Buf`
[INFO] [stdout]  --> src/handlers/goods_handler.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bytes::{Buf, BufMut};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Local`, `NaiveDateTime`
[INFO] [stdout]  --> src/handlers/goods_handler.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::prelude::{Local, NaiveDateTime};
[INFO] [stdout]   |                       ^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Serialize`
[INFO] [stdout]  --> src/handlers/login_handler.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Serialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::primitive`
[INFO] [stdout]  --> src/handlers/login_handler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::primitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Reply`
[INFO] [stdout]  --> src/handlers/logout_handler.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use warp::{Rejection, Reply};
[INFO] [stdout]   |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/handlers/settings_handler.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |                         if (verify_password(
[INFO] [stdout]    |                            ^
[INFO] [stdout] ...
[INFO] [stdout] 81 |                         )) {
[INFO] [stdout]    |                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 ~                         if verify_password(
[INFO] [stdout] 78 |                             &form.old_passwd,
[INFO] [stdout] 79 |                             userdata.salt.clone(),
[INFO] [stdout] 80 |                             &userdata.password,
[INFO] [stdout] 81 ~                         ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bigdecimal::BigDecimal`
[INFO] [stdout]  --> src/models/approve_model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bigdecimal::BigDecimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/banners_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::banners`
[INFO] [stdout]  --> src/models/banners_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::banners;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/customized_services.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::customized_services`
[INFO] [stdout]  --> src/models/customized_services.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::customized_services;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `csInfo` should have an upper camel case name
[INFO] [stdout]   --> src/models/customized_services.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct csInfo {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `CsInfo`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/index_works_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserData`
[INFO] [stdout]  --> src/models/index_works_model.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::user_model::{find_user, UserData};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::index_works`
[INFO] [stdout]  --> src/models/index_works_model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::schema::index_works;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::users`
[INFO] [stdout]  --> src/models/index_works_model.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::schema::users;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_COST`, `hash_with_salt`
[INFO] [stdout]  --> src/models/user_model.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use bcrypt::{hash_with_salt, verify, DEFAULT_COST};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::public_welfare`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::public_welfare;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `publicWelfare` should have an upper camel case name
[INFO] [stdout]   --> src/models/public_welfare_model.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct publicWelfare {
[INFO] [stdout]    |            ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PublicWelfare`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/honor_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::honor`
[INFO] [stdout]  --> src/models/honor_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::honor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `honorInfo` should have an upper camel case name
[INFO] [stdout]   --> src/models/honor_model.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct honorInfo {
[INFO] [stdout]    |            ^^^^^^^^^ help: convert the identifier to upper camel case: `HonorInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes/link_route.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/handlers/settings_handler.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |                         if (verify_password(
[INFO] [stdout]    |                            ^
[INFO] [stdout] ...
[INFO] [stdout] 81 |                         )) {
[INFO] [stdout]    |                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 ~                         if verify_password(
[INFO] [stdout] 78 |                             &form.old_passwd,
[INFO] [stdout] 79 |                             userdata.salt.clone(),
[INFO] [stdout] 80 |                             &userdata.password,
[INFO] [stdout] 81 ~                         ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bigdecimal::BigDecimal`
[INFO] [stdout]  --> src/models/approve_model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bigdecimal::BigDecimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/banners_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::banners`
[INFO] [stdout]  --> src/models/banners_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::banners;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/customized_services.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::customized_services`
[INFO] [stdout]  --> src/models/customized_services.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::customized_services;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `csInfo` should have an upper camel case name
[INFO] [stdout]   --> src/models/customized_services.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct csInfo {
[INFO] [stdout]    |            ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `CsInfo`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/index_works_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserData`
[INFO] [stdout]  --> src/models/index_works_model.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::user_model::{find_user, UserData};
[INFO] [stdout]   |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::index_works`
[INFO] [stdout]  --> src/models/index_works_model.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::schema::index_works;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::users`
[INFO] [stdout]  --> src/models/index_works_model.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::schema::users;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_COST`, `hash_with_salt`
[INFO] [stdout]  --> src/models/user_model.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use bcrypt::{hash_with_salt, verify, DEFAULT_COST};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::public_welfare`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::public_welfare;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/models/public_welfare_model.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `publicWelfare` should have an upper camel case name
[INFO] [stdout]   --> src/models/public_welfare_model.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct publicWelfare {
[INFO] [stdout]    |            ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PublicWelfare`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db`
[INFO] [stdout]  --> src/models/honor_model.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::schema::honor`
[INFO] [stdout]  --> src/models/honor_model.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::schema::honor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `honorInfo` should have an upper camel case name
[INFO] [stdout]   --> src/models/honor_model.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct honorInfo {
[INFO] [stdout]    |            ^^^^^^^^^ help: convert the identifier to upper camel case: `HonorInfo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes/link_route.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `establish_connection`
[INFO] [stdout]  --> src/session.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db::{establish_connection, pg_pool, PgPooledConnection};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]  --> src/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::prelude;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `establish_connection`
[INFO] [stdout]  --> src/session.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::db::{establish_connection, pg_pool, PgPooledConnection};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]  --> src/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::prelude;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `template`
[INFO] [stdout]   --> src/handlers/login_handler.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let template = "<!DOCTYPE html>
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `template`
[INFO] [stdout]   --> src/handlers/login_handler.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let template = "<!DOCTYPE html>
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/login_handler.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mut data = Map::new();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/login_handler.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mut data = Map::new();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/signup_handler.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/signup_handler.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/settings_handler.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut html = String::new();
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `userdata`
[INFO] [stdout]   --> src/handlers/settings_handler.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...                   let userdata = userdata.change_passwd(&form.password, session.db());
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_userdata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/settings_handler.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut html = String::new();
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `userdata`
[INFO] [stdout]   --> src/handlers/settings_handler.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...                   let userdata = userdata.change_passwd(&form.password, session.db());
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_userdata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/settings_handler.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mobile`
[INFO] [stdout]   --> src/handlers/settings_handler.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mobile = &user.mobile;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/settings_handler.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mobile`
[INFO] [stdout]   --> src/handlers/settings_handler.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mobile = &user.mobile;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `student_certificate`
[INFO] [stdout]    --> src/handlers/approve_handler.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let student_certificate: Option<String> = None;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_student_certificate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]    --> src/handlers/approve_handler.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut html: String = String::new();
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `student_certificate`
[INFO] [stdout]    --> src/handlers/approve_handler.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let student_certificate: Option<String> = None;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_student_certificate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]    --> src/handlers/approve_handler.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut html: String = String::new();
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html_name` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut html_name = "";
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html_name` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |             html_name = "qualification.html"; //路到是否从普通用户切换（企业，设计师）
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html_name` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut html_name = "";
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html_name` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |             html_name = "qualification.html"; //路到是否从普通用户切换（企业，设计师）
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/approve_handler.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn qualification(mut session: Session) -> Result<impl Reply, Rejection> {
[INFO] [stdout]    |                            ----^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/approve_handler.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn qualification(mut session: Session) -> Result<impl Reply, Rejection> {
[INFO] [stdout]    |                            ----^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     if let Some(user) = session.user() {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `goods_img`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let goods_img=post.get("goods_img").unwrap().clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_goods_img`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     if let Some(user) = session.user() {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `goods_img`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let goods_img=post.get("goods_img").unwrap().clone();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_goods_img`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mobile`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mobile = &user.mobile;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let mut html = String::new();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mobile`
[INFO] [stdout]   --> src/handlers/goods_handler.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mobile = &user.mobile;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/handlers/test_handler.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |         Some(u) => {}
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers/test_handler.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub async fn is_login(mut session: Session) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |                       ----^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/handlers/test_handler.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |         Some(u) => {}
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers/test_handler.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub async fn is_login(mut session: Session) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |                       ----^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/home_handler.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn index(mut session: Session) -> ResultWarp<impl Reply> {
[INFO] [stdout]    |                    ----^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/home_handler.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn index(mut session: Session) -> ResultWarp<impl Reply> {
[INFO] [stdout]    |                    ----^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/handlers/login_handler.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         Err(msg) => {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asdf`
[INFO] [stdout]    --> src/handlers/login_handler.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let asdf = warp::reply::html("k");
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_asdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/handlers/login_handler.rs:156:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |         Err(msg) => {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asdf`
[INFO] [stdout]    --> src/handlers/login_handler.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let asdf = warp::reply::html("k");
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_asdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers/login_handler.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn do_login(mut session: Session, form: LoginForm) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |                       ----^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers/login_handler.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn do_login(mut session: Session, form: LoginForm) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |                       ----^^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handlers/test_handler.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handlers/test_handler.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `username` is never read
[INFO] [stdout]    --> src/handlers/signup_handler.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut username = String::new();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]    --> src/handlers/test_handler.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let integer = 1024;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interger_with_integer`
[INFO] [stdout]    --> src/handlers/test_handler.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let interger_with_integer = 1_000_000_000u32;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interger_with_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bing`
[INFO] [stdout]    --> src/handlers/test_handler.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let bing = 0b10_000_000_000; //二进制
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_bing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]    --> src/handlers/test_handler.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let float = 1.0; // 浮点数，默认为 f64
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float_with_underscore`
[INFO] [stdout]    --> src/handlers/test_handler.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let float_with_underscore = 0.000_1f32; // 浮点数，可以使用下划线分开。可以通过标注不使用默认类型
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_with_underscore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `characters`
[INFO] [stdout]    --> src/handlers/test_handler.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let characters: char = 'a'; // 字符char，使用单引号表示
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_characters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `username` is never read
[INFO] [stdout]    --> src/handlers/signup_handler.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut username = String::new();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]    --> src/handlers/test_handler.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let integer = 1024;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interger_with_integer`
[INFO] [stdout]    --> src/handlers/test_handler.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let interger_with_integer = 1_000_000_000u32;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interger_with_integer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bing`
[INFO] [stdout]    --> src/handlers/test_handler.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let bing = 0b10_000_000_000; //二进制
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_bing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]    --> src/handlers/test_handler.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let float = 1.0; // 浮点数，默认为 f64
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float_with_underscore`
[INFO] [stdout]    --> src/handlers/test_handler.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let float_with_underscore = 0.000_1f32; // 浮点数，可以使用下划线分开。可以通过标注不使用默认类型
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_with_underscore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `characters`
[INFO] [stdout]    --> src/handlers/test_handler.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let characters: char = 'a'; // 字符char，使用单引号表示
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_characters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updated_row`
[INFO] [stdout]   --> src/models/user_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let updated_row = diesel::update(users.find(self.id))
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updated_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updated_row`
[INFO] [stdout]   --> src/models/user_model.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let updated_row = diesel::update(users.find(self.id))
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updated_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sql`
[INFO] [stdout]    --> src/models/user_model.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let sql = diesel::debug_query::<diesel::pg::Pg, _>(&query).to_string();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sql`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/models/user_model.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Err(error) => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sql`
[INFO] [stdout]    --> src/models/user_model.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let sql = diesel::debug_query::<diesel::pg::Pg, _>(&query).to_string();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sql`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sha1` is never read
[INFO] [stdout]    --> src/models/user_model.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let mut sha1 = String::new();
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sql`
[INFO] [stdout]    --> src/models/user_model.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let sql = diesel::debug_query::<diesel::pg::Pg, _>(&query).to_string();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sql`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/models/user_model.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Err(error) => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sql`
[INFO] [stdout]    --> src/models/user_model.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let sql = diesel::debug_query::<diesel::pg::Pg, _>(&query).to_string();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sql`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sha1` is never read
[INFO] [stdout]    --> src/models/user_model.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let mut sha1 = String::new();
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/session.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 .map_err(|e| {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/session.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 .map_err(|e| {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 97 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 42 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_login` is never used
[INFO] [stdout]    --> src/handlers/login_handler.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn do_login(mut session: Session, form: LoginForm) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/test_handler.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 28 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]   --> src/models/link_model.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type LinkId = i32;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `add_link`, `get_links`, and `rm_links` are never used
[INFO] [stdout]   --> src/models/link_model.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Link {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 28 |     pub fn add_link(new_link: AddLink, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_links(conn: &PgPooledConnection) -> QueryResult<Vec<Link>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn rm_links(id: LinkId, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_html` is never used
[INFO] [stdout]  --> src/models/register_model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn register_html() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_template` is never used
[INFO] [stdout]   --> src/models/register_model.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn register_template(name: &str, mut data: Map<String, Json>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPES` is never used
[INFO] [stdout]   --> src/models/register_model.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | static TYPES: &'static str = "serde_json";
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_data` is never used
[INFO] [stdout]   --> src/models/register_model.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_data() -> Map<String, Json> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mobie` is never used
[INFO] [stdout]    --> src/models/user_model.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn get_mobie(mobile_phone: &String, conn: &PgPooledConnection) -> Option<UserData> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/routes/test_route.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 56 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload` is never used
[INFO] [stdout]   --> src/routes/test_route.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | async fn upload(param_file_name: String, form: FormData) -> Result<impl Reply, Rejection> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_enable_csInfo` should have a snake case name
[INFO] [stdout]   --> src/models/customized_services.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn get_enable_csInfo(conn: &PgPooledConnection) -> Option<Vec<csInfo>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_enable_cs_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/approve_handler.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 97 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/goods_handler.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 42 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_login` is never used
[INFO] [stdout]    --> src/handlers/login_handler.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn do_login(mut session: Session, form: LoginForm) -> ResultWarp<impl Reply> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/handlers/test_handler.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 28 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]   --> src/models/link_model.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type LinkId = i32;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `add_link`, `get_links`, and `rm_links` are never used
[INFO] [stdout]   --> src/models/link_model.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Link {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 28 |     pub fn add_link(new_link: AddLink, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_links(conn: &PgPooledConnection) -> QueryResult<Vec<Link>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn rm_links(id: LinkId, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_html` is never used
[INFO] [stdout]  --> src/models/register_model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn register_html() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_template` is never used
[INFO] [stdout]   --> src/models/register_model.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn register_template(name: &str, mut data: Map<String, Json>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPES` is never used
[INFO] [stdout]   --> src/models/register_model.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | static TYPES: &'static str = "serde_json";
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_enable_honorInfo` should have a snake case name
[INFO] [stdout]   --> src/models/honor_model.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_enable_honorInfo(conn: &PgPooledConnection) -> Option<Vec<honorInfo>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_enable_honor_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_data` is never used
[INFO] [stdout]   --> src/models/register_model.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_data() -> Map<String, Json> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mobie` is never used
[INFO] [stdout]    --> src/models/user_model.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn get_mobie(mobile_phone: &String, conn: &PgPooledConnection) -> Option<UserData> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/routes/test_route.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct ServerError {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 56 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload` is never used
[INFO] [stdout]   --> src/routes/test_route.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 | async fn upload(param_file_name: String, form: FormData) -> Result<impl Reply, Rejection> {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_enable_csInfo` should have a snake case name
[INFO] [stdout]   --> src/models/customized_services.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn get_enable_csInfo(conn: &PgPooledConnection) -> Option<Vec<csInfo>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_enable_cs_info`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_enable_honorInfo` should have a snake case name
[INFO] [stdout]   --> src/models/honor_model.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn get_enable_honorInfo(conn: &PgPooledConnection) -> Option<Vec<honorInfo>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_enable_honor_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 81 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 81 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 17.52s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.18.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "245362bed2b6e65cba6b22d4ae57f40a873a5dbd1ce260253b622a3c4e39c991", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "245362bed2b6e65cba6b22d4ae57f40a873a5dbd1ce260253b622a3c4e39c991", kill_on_drop: false }`
[INFO] [stdout] 245362bed2b6e65cba6b22d4ae57f40a873a5dbd1ce260253b622a3c4e39c991
