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