[INFO] cloning repository https://github.com/satans404/CS330-library
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/satans404/CS330-library" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatans404%2FCS330-library", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatans404%2FCS330-library'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 30f98ade9707e585953860623fafd21721307d8d
[INFO] checking satans404/CS330-library against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsatans404%2FCS330-library" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/satans404/CS330-library
[INFO] finished tweaking git repo https://github.com/satans404/CS330-library
[INFO] tweaked toml for git repo https://github.com/satans404/CS330-library written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/satans404/CS330-library on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/satans404/CS330-library already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-xid v0.2.3
[INFO] [stderr]   Downloaded uuid v0.4.0
[INFO] [stderr]   Downloaded deadpool-redis v0.10.2
[INFO] [stderr]   Downloaded indexmap v1.8.1
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.2
[INFO] [stderr]   Downloaded base-x v0.2.10
[INFO] [stderr]   Downloaded unicase_serde v0.1.0
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.7
[INFO] [stderr]   Downloaded fast_log v1.5.1
[INFO] [stderr]   Downloaded sqlx-rt v0.5.13
[INFO] [stderr]   Downloaded sha-1 v0.10.0
[INFO] [stderr]   Downloaded tracing-attributes v0.1.21
[INFO] [stderr]   Downloaded proc-macro2 v1.0.38
[INFO] [stderr]   Downloaded rocket_cors v0.6.0-alpha1
[INFO] [stderr]   Downloaded ref-cast v1.0.7
[INFO] [stderr]   Downloaded ipnetwork v0.17.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.31
[INFO] [stderr]   Downloaded rbatis_sql_macro v3.0.15
[INFO] [stderr]   Downloaded rbatis-macro-driver v3.1.1
[INFO] [stderr]   Downloaded serde_bytes v0.11.6
[INFO] [stderr]   Downloaded spin v0.9.3
[INFO] [stderr]   Downloaded multer v2.0.2
[INFO] [stderr]   Downloaded deadpool v0.9.4
[INFO] [stderr]   Downloaded rbatis-core v3.1.8
[INFO] [stderr]   Downloaded thiserror v1.0.31
[INFO] [stderr]   Downloaded cookie v0.15.1
[INFO] [stderr]   Downloaded base64ct v1.5.0
[INFO] [stderr]   Downloaded md-5 v0.10.1
[INFO] [stderr]   Downloaded zeroize v1.5.5
[INFO] [stderr]   Downloaded pkg-config v0.3.25
[INFO] [stderr]   Downloaded html_parser v0.6.3
[INFO] [stderr]   Downloaded tracing v0.1.34
[INFO] [stderr]   Downloaded mio v0.8.2
[INFO] [stderr]   Downloaded futures-intrusive v0.4.0
[INFO] [stderr]   Downloaded tokio-util v0.7.1
[INFO] [stderr]   Downloaded rust_decimal v1.23.1
[INFO] [stderr]   Downloaded num-bigint-dig v0.8.1
[INFO] [stderr]   Downloaded redis v0.21.5
[INFO] [stderr]   Downloaded http v0.2.7
[INFO] [stderr]   Downloaded hyper v0.14.18
[INFO] [stderr]   Downloaded rbatis v3.1.8
[INFO] [stderr]   Downloaded syn v1.0.92
[INFO] [stderr]   Downloaded rocket v0.5.0-rc.1
[INFO] [stderr]   Downloaded rocket_http v0.5.0-rc.1
[INFO] [stderr]   Downloaded rbatis_sql v3.0.23
[INFO] [stderr]   Downloaded sqlx-core v0.5.13
[INFO] [stderr]   Downloaded rbson v2.0.3
[INFO] [stderr]   Downloaded rocket_codegen v0.5.0-rc.1
[INFO] [stderr]   Downloaded loom v0.5.4
[INFO] [stderr]   Downloaded tokio v1.18.1
[INFO] [stderr]   Downloaded libc v0.2.125
[INFO] [stderr]   Downloaded libsqlite3-sys v0.24.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5c1be0b7167f346d82aae30cf872cd5a283f3847e57ad00d3720a4c5f441bf9b
[INFO] running `Command { std: "docker" "start" "-a" "5c1be0b7167f346d82aae30cf872cd5a283f3847e57ad00d3720a4c5f441bf9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c1be0b7167f346d82aae30cf872cd5a283f3847e57ad00d3720a4c5f441bf9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c1be0b7167f346d82aae30cf872cd5a283f3847e57ad00d3720a4c5f441bf9b", kill_on_drop: false }`
[INFO] [stdout] 5c1be0b7167f346d82aae30cf872cd5a283f3847e57ad00d3720a4c5f441bf9b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2cca1fa10ac901786fa3b7bb8a3f2f4ecf63cdba9a60c4ca29aa5ede63be4dfa
[INFO] running `Command { std: "docker" "start" "-a" "2cca1fa10ac901786fa3b7bb8a3f2f4ecf63cdba9a60c4ca29aa5ede63be4dfa", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.38
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling syn v1.0.92
[INFO] [stderr]    Compiling libc v0.2.125
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling serde v1.0.137
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking pin-project-lite v0.2.9
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling standback v0.2.17
[INFO] [stderr]    Compiling libm v0.2.2
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]    Compiling indexmap v1.8.1
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling const_fn v0.4.9
[INFO] [stderr]     Checking slab v0.4.6
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling httparse v1.7.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking tracing-core v0.1.26
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]    Compiling async-trait v0.1.53
[INFO] [stderr]    Compiling time v0.2.27
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking unicode-bidi v0.3.8
[INFO] [stderr]     Checking base64ct v1.5.0
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking pem-rfc7468 v0.3.1
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking crypto-bigint v0.3.2
[INFO] [stderr]     Checking cipher v0.2.5
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]    Compiling ref-cast v1.0.7
[INFO] [stderr]     Checking const-oid v0.7.1
[INFO] [stderr]    Compiling serde_json v1.0.81
[INFO] [stderr]    Compiling tokio v1.18.1
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking http v0.2.7
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking universal-hash v0.4.1
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking spin v0.9.3
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]     Checking zeroize v1.5.5
[INFO] [stderr]     Checking cpuid-bool v0.2.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]     Checking polyval v0.4.5
[INFO] [stderr]     Checking aes-soft v0.6.4
[INFO] [stderr]     Checking crypto-mac v0.10.1
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling num-bigint v0.3.3
[INFO] [stderr]    Compiling cookie v0.15.1
[INFO] [stderr]    Compiling uncased v0.9.6
[INFO] [stderr]     Checking der v0.5.1
[INFO] [stderr]    Compiling num-bigint-dig v0.8.1
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]     Checking hmac v0.10.1
[INFO] [stderr]     Checking aes v0.6.0
[INFO] [stderr]     Checking ghash v0.3.1
[INFO] [stderr]     Checking ctr v0.6.0
[INFO] [stderr]     Checking spki v0.5.4
[INFO] [stderr]     Checking aead v0.3.2
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]     Checking pkcs8 v0.8.0
[INFO] [stderr]     Checking inlinable_string v0.1.15
[INFO] [stderr]    Compiling httpdate v1.0.2
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]    Compiling http-body v0.4.4
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]    Compiling rust_decimal v1.23.1
[INFO] [stderr]     Checking pkcs1 v0.3.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.24.2
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking aes-gcm v0.8.0
[INFO] [stderr]     Checking hkdf v0.10.0
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]    Compiling stable-pattern v0.1.0
[INFO] [stderr]    Compiling atomic v0.5.1
[INFO] [stderr]    Compiling multer v2.0.2
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling figment v0.10.6
[INFO] [stderr]     Checking regex v1.5.5
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking unicode_categories v0.1.1
[INFO] [stderr]     Checking crc-catalog v1.1.1
[INFO] [stderr]    Compiling mime v0.3.16
[INFO] [stderr]     Checking crc v2.1.0
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking hkdf v0.12.3
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]     Checking stringprep v0.1.2
[INFO] [stderr]     Checking hashlink v0.7.0
[INFO] [stderr]     Checking rsa v0.6.1
[INFO] [stderr]     Checking atoi v0.4.0
[INFO] [stderr]     Checking md-5 v0.10.1
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]     Checking sha-1 v0.10.0
[INFO] [stderr]     Checking futures-intrusive v0.4.0
[INFO] [stderr]    Compiling rocket v0.5.0-rc.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking whoami v1.2.1
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]     Checking sha1_smol v1.0.0
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking event-listener v2.5.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking sha1 v0.6.1
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.4
[INFO] [stderr]     Checking dashmap v4.0.2
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking retain_mut v0.1.7
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking serde v0.9.15
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking rustls v0.19.1
[INFO] [stderr]     Checking webpki-roots v0.21.1
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.9.1
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]     Checking uuid v0.4.0
[INFO] [stderr]    Compiling devise_core v0.3.1
[INFO] [stderr]    Compiling dlopen_derive v0.1.4
[INFO] [stderr]     Checking dlopen v0.1.8
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.21
[INFO] [stderr]    Compiling time-macros-impl v0.1.2
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling pear_codegen v0.2.3
[INFO] [stderr]    Compiling ref-cast-impl v1.0.7
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.3
[INFO] [stderr]     Checking time-macros v0.1.1
[INFO] [stderr]     Checking async-stream v0.3.3
[INFO] [stderr]    Compiling devise_codegen v0.3.1
[INFO] [stderr]    Compiling thiserror v1.0.31
[INFO] [stderr]     Checking pear v0.2.3
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking flume v0.10.12
[INFO] [stderr]    Compiling devise v0.3.1
[INFO] [stderr]     Checking tracing v0.1.34
[INFO] [stderr]    Compiling tokio-util v0.7.1
[INFO] [stderr]    Compiling h2 v0.3.13
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking tokio-stream v0.1.8
[INFO] [stderr]     Checking tokio-util v0.6.9
[INFO] [stderr]     Checking tokio-rustls v0.22.0
[INFO] [stderr]     Checking deadpool-runtime v0.1.2
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking sqlx-rt v0.5.13
[INFO] [stderr]     Checking combine v4.6.4
[INFO] [stderr]    Compiling hyper v0.14.18
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking serde_bytes v0.11.6
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking bigdecimal v0.2.2
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking ipnetwork v0.17.0
[INFO] [stderr]     Checking ubyte v0.10.1
[INFO] [stderr]     Checking unicase_serde v0.1.0
[INFO] [stderr]     Checking deadpool v0.9.4
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]    Compiling rocket_http v0.5.0-rc.1
[INFO] [stderr]     Checking rbson v2.0.3
[INFO] [stderr]     Checking fast_log v1.5.1
[INFO] [stderr]     Checking sqlformat v0.1.8
[INFO] [stderr]    Compiling html_parser v0.6.3
[INFO] [stderr]     Checking redis v0.21.5
[INFO] [stderr]    Compiling rocket_codegen v0.5.0-rc.1
[INFO] [stderr]    Compiling rbatis_sql_macro v3.0.15
[INFO] [stderr]    Compiling rbatis-macro-driver v3.1.1
[INFO] [stderr]     Checking rbatis_sql v3.0.23
[INFO] [stderr]     Checking sqlx-core v0.5.13
[INFO] [stderr]     Checking deadpool-redis v0.10.2
[INFO] [stderr]     Checking rocket_cors v0.6.0-alpha1
[INFO] [stderr]     Checking rbatis-core v3.1.8
[INFO] [stderr]     Checking rbatis v3.1.8
[INFO] [stderr]     Checking library_rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/user/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[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: `Request`
[INFO] [stdout]  --> src/user/apis.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rocket::{Request, State};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Strict`
[INFO] [stdout]  --> src/user/apis.rs:9:26
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rocket::form::{Form, Strict};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::value::StrDeserializer`
[INFO] [stdout]   --> src/user/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::value::StrDeserializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `login`
[INFO] [stdout]   --> src/user/apis.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub async fn login(rb: &State<Arc<Rbatis>>, cookies: &CookieJar<'_>, userinfo: Form<forms::UserLoginForm>)
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `userinfo`
[INFO] [stdout]   --> src/user/apis.rs:38:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub async fn userinfo(userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `static_info`
[INFO] [stdout]   --> src/user/apis.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn static_info(rb: &State<Arc<Rbatis>>, r#type: String, userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `user_tag`
[INFO] [stdout]   --> src/user/apis.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub async fn user_tag(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `test`
[INFO] [stdout]    --> src/user/apis.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub async fn test(pool: &State<Pool>, mut s: Session, user: IsLogin) -> String {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::form::Form`
[INFO] [stdout]  --> src/user/forms.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rocket::form::Form;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/user/forms.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::CookieJar`
[INFO] [stdout]  --> src/utils/guards.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rocket::http::CookieJar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::outcome::IntoOutcome`
[INFO] [stdout]  --> src/utils/guards.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rocket::outcome::IntoOutcome;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::State`
[INFO] [stdout]  --> src/utils/guards.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rocket::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::Error`
[INFO] [stdout]  --> src/utils/session.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromRedisValue` and `ToRedisArgs`
[INFO] [stdout]  --> src/utils/session.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use redis::{FromRedisValue, ToRedisArgs};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CookieJar`
[INFO] [stdout]  --> src/utils/session.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rocket::http::{Cookie, CookieJar};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::Status`
[INFO] [stdout]   --> src/utils/session.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::http::Status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::outcome::IntoOutcome`
[INFO] [stdout]   --> src/utils/session.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::outcome::IntoOutcome;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::State`
[INFO] [stdout]   --> src/utils/session.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rocket::State;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/utils/session.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/iorecord/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTimeNative`
[INFO] [stdout]  --> src/iorecord/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateTimeUtc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/iorecord/apis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/iorecord/apis.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Duration, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::DateTimeNative`
[INFO] [stdout]  --> src/iorecord/apis.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::DateTimeNative;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/iorecord/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/iorecord/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::User`
[INFO] [stdout]   --> src/iorecord/apis.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::User;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `heatmap`
[INFO] [stdout]   --> src/iorecord/apis.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn heatmap(rb: &State<Arc<Rbatis>>, query: Form<IOQueryForm>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `library_info`
[INFO] [stdout]   --> src/iorecord/apis.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn library_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Date` and `TimeZone`
[INFO] [stdout]  --> src/iorecord/forms.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Date, NaiveDate, TimeZone};
[INFO] [stdout]   |              ^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Form`
[INFO] [stdout]  --> src/iorecord/forms.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rocket::form::{Errors, Form};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/discussionroom/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/user/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/discussionroom/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateNative, DateTimeUtc, DateUtc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/discussionroom/apis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/user/apis.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rocket::{Request, State};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Duration`, and `NaiveDate`
[INFO] [stdout]  --> src/discussionroom/apis.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Duration, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Strict`
[INFO] [stdout]  --> src/user/apis.rs:9:26
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rocket::form::{Form, Strict};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/discussionroom/apis.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::value::StrDeserializer`
[INFO] [stdout]   --> src/user/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::value::StrDeserializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/discussionroom/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `login`
[INFO] [stdout]   --> src/user/apis.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub async fn login(rb: &State<Arc<Rbatis>>, cookies: &CookieJar<'_>, userinfo: Form<forms::UserLoginForm>)
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::form::Form`
[INFO] [stdout]   --> src/discussionroom/apis.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::form::Form;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/discussionroom/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `userinfo`
[INFO] [stdout]   --> src/user/apis.rs:38:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub async fn userinfo(userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::User`
[INFO] [stdout]   --> src/discussionroom/apis.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::User;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `static_info`
[INFO] [stdout]   --> src/user/apis.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn static_info(rb: &State<Arc<Rbatis>>, r#type: String, userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `discussionroom_info`
[INFO] [stdout]   --> src/discussionroom/apis.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn discussionroom_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `user_tag`
[INFO] [stdout]   --> src/user/apis.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub async fn user_tag(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/bookload_record/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `test`
[INFO] [stdout]    --> src/user/apis.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub async fn test(pool: &State<Pool>, mut s: Session, user: IsLogin) -> String {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/bookload_record/models.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::form::Form`
[INFO] [stdout]  --> src/user/forms.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rocket::form::Form;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTimeNative`
[INFO] [stdout]  --> src/bookload_record/models.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/user/forms.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/bookload_record/models.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rocket::serde::{Deserialize, Serialize};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::CookieJar`
[INFO] [stdout]  --> src/utils/guards.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rocket::http::CookieJar;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::wrapper::Wrapper`
[INFO] [stdout]  --> src/bookload_record/apis.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::wrapper::Wrapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::outcome::IntoOutcome`
[INFO] [stdout]  --> src/utils/guards.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rocket::outcome::IntoOutcome;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::State`
[INFO] [stdout]  --> src/utils/guards.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rocket::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/bookload_record/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::Error`
[INFO] [stdout]  --> src/utils/session.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Form` and `Strict`
[INFO] [stdout]   --> src/bookload_record/apis.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::form::{Form, Strict};
[INFO] [stdout]    |                    ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromRedisValue` and `ToRedisArgs`
[INFO] [stdout]  --> src/utils/session.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use redis::{FromRedisValue, ToRedisArgs};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CookieJar` and `Cookie`
[INFO] [stdout]   --> src/bookload_record/apis.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rocket::http::{Cookie, CookieJar};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::ext::IntoCollection`
[INFO] [stdout]   --> src/bookload_record/apis.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rocket::http::ext::IntoCollection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CookieJar`
[INFO] [stdout]  --> src/utils/session.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rocket::http::{Cookie, CookieJar};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::value::StrDeserializer`
[INFO] [stdout]   --> src/bookload_record/apis.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use serde::de::value::StrDeserializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::Status`
[INFO] [stdout]   --> src/utils/session.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::http::Status;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::outcome::IntoOutcome`
[INFO] [stdout]   --> src/utils/session.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::outcome::IntoOutcome;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_info`
[INFO] [stdout]   --> src/bookload_record/apis.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub async fn loan_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_list`
[INFO] [stdout]   --> src/bookload_record/apis.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn loan_list(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::State`
[INFO] [stdout]   --> src/utils/session.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rocket::State;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/utils/session.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/iorecord/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTimeNative`
[INFO] [stdout]  --> src/iorecord/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateTimeUtc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/iorecord/apis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_type`
[INFO] [stdout]    --> src/bookload_record/apis.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub async fn loan_type(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/iorecord/apis.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Duration, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::DateTimeNative`
[INFO] [stdout]  --> src/iorecord/apis.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::DateTimeNative;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `words`
[INFO] [stdout]    --> src/bookload_record/apis.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn words(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/iorecord/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/bookload_record/responses.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/iorecord/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/book/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::User`
[INFO] [stdout]   --> src/iorecord/apis.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::User;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/book/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `heatmap`
[INFO] [stdout]   --> src/iorecord/apis.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn heatmap(rb: &State<Arc<Rbatis>>, query: Form<IOQueryForm>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `library_info`
[INFO] [stdout]   --> src/iorecord/apis.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn library_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Date` and `TimeZone`
[INFO] [stdout]  --> src/iorecord/forms.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Date, NaiveDate, TimeZone};
[INFO] [stdout]   |              ^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Form`
[INFO] [stdout]  --> src/iorecord/forms.rs:2:28
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rocket::form::{Errors, Form};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Container` and `WrapperApi`
[INFO] [stdout]  --> src/plugin/manager.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dlopen::wrapper::{Container, WrapperApi};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/discussionroom/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/plugin/manager.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromRedisValue` and `cmd`
[INFO] [stdout]   --> src/main.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 | use deadpool_redis::{redis::{cmd, FromRedisValue}, Config, Runtime, Pool};
[INFO] [stdout]    |                              ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/discussionroom/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateNative, DateTimeUtc, DateUtc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Sub`
[INFO] [stdout]  --> src/discussionroom/apis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Sub;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Duration`, and `NaiveDate`
[INFO] [stdout]  --> src/discussionroom/apis.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Duration, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/discussionroom/apis.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/discussionroom/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::form::Form`
[INFO] [stdout]   --> src/discussionroom/apis.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::form::Form;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/discussionroom/apis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::User`
[INFO] [stdout]   --> src/discussionroom/apis.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::User;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `discussionroom_info`
[INFO] [stdout]   --> src/discussionroom/apis.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn discussionroom_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin)
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/bookload_record/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/bookload_record/models.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTimeNative`
[INFO] [stdout]  --> src/bookload_record/models.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/bookload_record/models.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rocket::serde::{Deserialize, Serialize};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::wrapper::Wrapper`
[INFO] [stdout]  --> src/bookload_record/apis.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rbatis::wrapper::Wrapper;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]   --> src/bookload_record/apis.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rocket::{Request, State};
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Form` and `Strict`
[INFO] [stdout]   --> src/bookload_record/apis.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rocket::form::{Form, Strict};
[INFO] [stdout]    |                    ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CookieJar` and `Cookie`
[INFO] [stdout]   --> src/bookload_record/apis.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rocket::http::{Cookie, CookieJar};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::http::ext::IntoCollection`
[INFO] [stdout]   --> src/bookload_record/apis.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rocket::http::ext::IntoCollection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::value::StrDeserializer`
[INFO] [stdout]   --> src/bookload_record/apis.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use serde::de::value::StrDeserializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_info`
[INFO] [stdout]   --> src/bookload_record/apis.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub async fn loan_info(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<content::Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_list`
[INFO] [stdout]   --> src/bookload_record/apis.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn loan_list(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `loan_type`
[INFO] [stdout]    --> src/bookload_record/apis.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub async fn loan_type(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `words`
[INFO] [stdout]    --> src/bookload_record/apis.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn words(rb: &State<Arc<Rbatis>>, userinfo: IsLogin) -> status::Accepted<Json<String>> {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDate`
[INFO] [stdout]  --> src/bookload_record/responses.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::NaiveDate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rbatis::crud::CRUDTable`
[INFO] [stdout]  --> src/book/models.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rbatis::crud::CRUDTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateNative` and `DateTimeNative`
[INFO] [stdout]  --> src/book/models.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rbatis::{DateTimeNative, DateNative};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Container` and `WrapperApi`
[INFO] [stdout]  --> src/plugin/manager.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dlopen::wrapper::{Container, WrapperApi};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/plugin/manager.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FromRedisValue` and `cmd`
[INFO] [stdout]   --> src/main.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 | use deadpool_redis::{redis::{cmd, FromRedisValue}, Config, Runtime, Pool};
[INFO] [stdout]    |                              ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/iorecord/apis.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut io_records: Vec<IORecord> = rb
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/iorecord/apis.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut x = ans.get_mut(&i.occur_time.format(&fmt).to_string()[..]);
[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/iorecord/apis.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut fmt = "%Y年%m月%d日";
[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/iorecord/apis.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let mut io_records: Vec<IORecord> = rb
[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/iorecord/apis.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut io_records: Vec<IORecord> = rb
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/iorecord/apis.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let mut x = ans.get_mut(&i.occur_time.format(&fmt).to_string()[..]);
[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/discussionroom/apis.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut fmt = "%Y年%m月%d日";
[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/discussionroom/apis.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut records: Vec<DiscussionRoom> = rb
[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/discussionroom/apis.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut cnt = count.get_mut(&i.dev_name[..]).unwrap();
[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/iorecord/apis.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut fmt = "%Y年%m月%d日";
[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/iorecord/apis.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let mut io_records: Vec<IORecord> = rb
[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/discussionroom/apis.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut fmt = "%Y年%m月%d日";
[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/discussionroom/apis.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut records: Vec<DiscussionRoom> = rb
[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/discussionroom/apis.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut cnt = count.get_mut(&i.dev_name[..]).unwrap();
[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/bookload_record/apis.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut types: Vec<Book> = get_words(rb, &(userinfo.0.id), &15usize)
[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/bookload_record/apis.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut types: HashSet<String> = HashSet::from_iter(words.into_iter());
[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/bookload_record/apis.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |     let mut types: Vec<Book> = get_words(rb, &(userinfo.0.id), &15usize)
[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/bookload_record/apis.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut types: HashSet<String> = HashSet::from_iter(words.into_iter());
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::futures::StreamExt`
[INFO] [stdout]   --> src/bookload_record/apis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rocket::futures::StreamExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `x` is assigned to, but never used
[INFO] [stdout]    --> src/user/apis.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut x:i32 = con.set_nx("key1", 0).await.unwrap();
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_x` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/user/apis.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     x = con.incr("key1", 1i32).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/user/apis.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     x = con.get("key1").await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rocket::futures::StreamExt`
[INFO] [stdout]   --> src/bookload_record/apis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rocket::futures::StreamExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/iorecord/apis.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let user = userinfo.0;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]   --> src/iorecord/forms.rs:18:55
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn check_cell<'v>(start: &str, end: &str, cell: &str, library: &str) -> form::Result<'v, ()> {
[INFO] [stdout]    |                                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `x` is assigned to, but never used
[INFO] [stdout]    --> src/user/apis.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut x:i32 = con.set_nx("key1", 0).await.unwrap();
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_x` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/user/apis.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     x = con.incr("key1", 1i32).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/user/apis.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     x = con.get("key1").await.unwrap();
[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/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut cfg = Config::from_url("redis://127.0.0.1/");
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cors`
[INFO] [stdout]   --> src/main.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let cors = rocket_cors::CorsOptions {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `exists`, `delete`, and `set_timeout` are never used
[INFO] [stdout]   --> src/utils/session.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Session {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn exists(&mut self, key: &str) -> bool{
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub async fn delete(&mut self, key: &str) {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn set_timeout(&mut self, sec: usize) {
[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 `LibraryInfo` is never constructed
[INFO] [stdout]  --> src/iorecord/responses.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LibraryInfo {}
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plugin` is never constructed
[INFO] [stdout]  --> src/plugin/plugin.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Plugin {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fast_log::init(fast_log::config::Config::new().console());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let _ = fast_log::init(fast_log::config::Config::new().console());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     rocket::build()
[INFO] [stdout] 66 | |         .mount("/api", user_urls::routes())
[INFO] [stdout] 67 | |         .mount("/api", iorecord_urls::routes())
[INFO] [stdout] 68 | |         .mount("/api", dis_urls::routes())
[INFO] [stdout] ...  |
[INFO] [stdout] 75 | |         .launch()
[INFO] [stdout] 76 | |         .await;
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let _ = rocket::build()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `default_words` should have an upper case name
[INFO] [stdout]   --> src/bookload_record/apis.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | static default_words: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 26 - static default_words: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout] 26 + static DEFAULT_WORDS: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Update` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | /     types.iter()
[INFO] [stdout] 134 | |         .update(|x| {
[INFO] [stdout] 135 | |             log::info!("{}", x.keyword.clone());
[INFO] [stdout] 136 | |             x.keyword.strip_prefix("['");
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |             x.writer_keyword.strip_suffix("']");
[INFO] [stdout] 140 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterator adaptors are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let _ = types.iter()
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_prefix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             x.keyword.strip_prefix("['");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let _ = x.keyword.strip_prefix("['");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_suffix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |             x.keyword.strip_suffix("']");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 137 |             let _ = x.keyword.strip_suffix("']");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_prefix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             x.writer_keyword.strip_prefix("['");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 138 |             let _ = x.writer_keyword.strip_prefix("['");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_suffix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |             x.writer_keyword.strip_suffix("']");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let _ = x.writer_keyword.strip_suffix("']");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/iorecord/apis.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let user = userinfo.0;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]   --> src/iorecord/forms.rs:18:55
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn check_cell<'v>(start: &str, end: &str, cell: &str, library: &str) -> form::Result<'v, ()> {
[INFO] [stdout]    |                                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut cfg = Config::from_url("redis://127.0.0.1/");
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cors`
[INFO] [stdout]   --> src/main.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let cors = rocket_cors::CorsOptions {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `exists`, `delete`, and `set_timeout` are never used
[INFO] [stdout]   --> src/utils/session.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Session {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn exists(&mut self, key: &str) -> bool{
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub async fn delete(&mut self, key: &str) {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn set_timeout(&mut self, sec: usize) {
[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 `LibraryInfo` is never constructed
[INFO] [stdout]  --> src/iorecord/responses.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LibraryInfo {}
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plugin` is never constructed
[INFO] [stdout]  --> src/plugin/plugin.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Plugin {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fast_log::init(fast_log::config::Config::new().console());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let _ = fast_log::init(fast_log::config::Config::new().console());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     rocket::build()
[INFO] [stdout] 66 | |         .mount("/api", user_urls::routes())
[INFO] [stdout] 67 | |         .mount("/api", iorecord_urls::routes())
[INFO] [stdout] 68 | |         .mount("/api", dis_urls::routes())
[INFO] [stdout] ...  |
[INFO] [stdout] 75 | |         .launch()
[INFO] [stdout] 76 | |         .await;
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let _ = rocket::build()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `default_words` should have an upper case name
[INFO] [stdout]   --> src/bookload_record/apis.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | static default_words: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 26 - static default_words: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout] 26 + static DEFAULT_WORDS: [&str; 15] = ["大学", "书院", "南方科技", "深圳", "敢为天下先", "青春", "一丹",
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Update` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | /     types.iter()
[INFO] [stdout] 134 | |         .update(|x| {
[INFO] [stdout] 135 | |             log::info!("{}", x.keyword.clone());
[INFO] [stdout] 136 | |             x.keyword.strip_prefix("['");
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |             x.writer_keyword.strip_suffix("']");
[INFO] [stdout] 140 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterator adaptors are lazy and do nothing unless consumed
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let _ = types.iter()
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_prefix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             x.keyword.strip_prefix("['");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let _ = x.keyword.strip_prefix("['");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_suffix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |             x.keyword.strip_suffix("']");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 137 |             let _ = x.keyword.strip_suffix("']");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_prefix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             x.writer_keyword.strip_prefix("['");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 138 |             let _ = x.writer_keyword.strip_prefix("['");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::str::<impl str>::strip_suffix` that must be used
[INFO] [stdout]    --> src/bookload_record/apis.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |             x.writer_keyword.strip_suffix("']");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this returns the remaining substring as a new slice, without modifying the original
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let _ = x.writer_keyword.strip_suffix("']");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.1, redis v0.21.5, sqlx-core v0.5.13, ubyte v0.10.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "2cca1fa10ac901786fa3b7bb8a3f2f4ecf63cdba9a60c4ca29aa5ede63be4dfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cca1fa10ac901786fa3b7bb8a3f2f4ecf63cdba9a60c4ca29aa5ede63be4dfa", kill_on_drop: false }`
[INFO] [stdout] 2cca1fa10ac901786fa3b7bb8a3f2f4ecf63cdba9a60c4ca29aa5ede63be4dfa
