[INFO] cloning repository https://github.com/BenNotBen1224/Berkeley-NanoTech
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BenNotBen1224/Berkeley-NanoTech" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenNotBen1224%2FBerkeley-NanoTech", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenNotBen1224%2FBerkeley-NanoTech'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bb532626e615aa841ec298ea7f0ad76994227af1
[INFO] checking BenNotBen1224/Berkeley-NanoTech against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenNotBen1224%2FBerkeley-NanoTech" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BenNotBen1224/Berkeley-NanoTech
[INFO] finished tweaking git repo https://github.com/BenNotBen1224/Berkeley-NanoTech
[INFO] tweaked toml for git repo https://github.com/BenNotBen1224/Berkeley-NanoTech written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BenNotBen1224/Berkeley-NanoTech on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BenNotBen1224/Berkeley-NanoTech 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b603721ab57c67e0ad2dcfacdfdb8a44470c33b3270be100a0619ad01224240d
[INFO] running `Command { std: "docker" "start" "-a" "b603721ab57c67e0ad2dcfacdfdb8a44470c33b3270be100a0619ad01224240d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b603721ab57c67e0ad2dcfacdfdb8a44470c33b3270be100a0619ad01224240d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b603721ab57c67e0ad2dcfacdfdb8a44470c33b3270be100a0619ad01224240d", kill_on_drop: false }`
[INFO] [stdout] b603721ab57c67e0ad2dcfacdfdb8a44470c33b3270be100a0619ad01224240d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3eb7eadcbe6af570c72d8a939b80e874b1c3c6c13d209f2bc1eace3d920b13de
[INFO] running `Command { std: "docker" "start" "-a" "3eb7eadcbe6af570c72d8a939b80e874b1c3c6c13d209f2bc1eace3d920b13de", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.166
[INFO] [stderr]    Compiling cc v1.2.1
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking inout v0.1.3
[INFO] [stderr]     Checking allocator-api2 v0.2.20
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling phf_codegen v0.11.2
[INFO] [stderr]    Compiling psm v0.1.24
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]    Compiling rustversion v1.0.18
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling stacker v0.1.17
[INFO] [stderr]     Checking bstr v1.11.0
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling unicase v2.8.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking globset v0.4.15
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]     Checking phf_shared v0.11.2
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking fastrand v2.2.0
[INFO] [stderr]    Compiling rustix v0.38.41
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking ignore v0.4.23
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking base64ct v1.6.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling anyhow v1.0.93
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking globwalk v0.9.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking email-encoding v0.3.1
[INFO] [stderr]     Checking hostname v0.4.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling chrono-tz-build v0.3.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking quoted_printable v0.5.1
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking uuid v1.11.0
[INFO] [stderr]    Compiling chrono-tz v0.9.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling async-trait v0.1.83
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling pest v2.7.14
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling pest_meta v2.7.14
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking hyper v1.5.1
[INFO] [stderr]     Checking tower v0.5.1
[INFO] [stderr]    Compiling pest_generator v2.7.14
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]     Checking tower-http v0.6.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling pest_derive v2.7.14
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking tempfile v3.14.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking rusqlite v0.32.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.16
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking lettre v0.11.10
[INFO] [stderr]     Checking tokio-rusqlite v0.6.0
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking tera v1.20.0
[INFO] [stderr]     Checking axum-extra v0.9.6
[INFO] [stderr]     Checking central-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `axum::response::AppendHeaders`
[INFO] [stdout]  --> src/utils/session/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use axum::response::AppendHeaders;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cookie::Cookie`
[INFO] [stdout]  --> src/utils/session/mod.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use axum_extra::extract::{cookie::Cookie, PrivateCookieJar};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::prelude::*`
[INFO] [stdout]   --> src/utils/session/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `database::user::User` and `utils::app_state::AppState`
[INFO] [stdout]   --> src/utils/session/mod.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{database::user::User, utils::app_state::AppState};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/utils/email.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `iter`
[INFO] [stdout]  --> src/api/mod.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, iter};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `delete`
[INFO] [stdout]  --> src/api/mod.rs:3:54
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::{middleware::from_fn_with_state, routing::{delete, put}};
[INFO] [stdout]   |                                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::session::Permission`
[INFO] [stdout]  --> src/api/mod.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{middleware::auth::admin_required, router_prelude::*, utils::session::Permission};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WARNING_SUCCESS` should have an upper camel case name
[INFO] [stdout]   --> src/api/response.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     WARNING_SUCCESS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WarningSuccess`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Router`
[INFO] [stdout]  --> src/admin/guard.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use axum::{extract::FromRequestParts, http::request::Parts, Router};
[INFO] [stdout]   |                                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::session_signature_from_cookies`
[INFO] [stdout]  --> src/admin/guard.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::{app_error::AppError, app_state::AppState, session::session_signature_from_cookies};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/admin/login.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/admin/login.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoMapRequestResult`, `IntoResponse`, and `StatusCode`
[INFO] [stdout]  --> src/middleware/auth.rs:2:49
[INFO] [stdout]   |
[INFO] [stdout] 2 |     body::Body, extract::State, http::{Request, StatusCode}, middleware::{IntoMapRequestResult, Next}, response::{IntoResponse, Response}
[INFO] [stdout]   |                                                 ^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::prelude::*`
[INFO] [stdout]  --> src/middleware/auth.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/private/auth.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/private/auth.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/private/auth.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{error, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::Permission`
[INFO] [stdout]  --> src/database/user/schema.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{app_state::tables::Table, session::Permission};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stdout]  --> src/database/user/mod.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, NaiveDateTime};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `prelude::AppError` and `utils::session::Permission`
[INFO] [stdout]  --> src/database/account/test.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{prelude::AppError, utils::session::Permission};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> src/database/account/test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rusqlite::params`
[INFO] [stdout]  --> src/database/account/test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rusqlite::params;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]  --> src/database/account/test.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rusqlite::Connection`
[INFO] [stdout]  --> src/database/account/test.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio_rusqlite::Connection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/database/experiment/cache.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::{BTreeMap, HashMap}, path::PathBuf, sync::{Arc, Mutex}};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `axum::response::AppendHeaders`
[INFO] [stdout]  --> src/utils/session/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use axum::response::AppendHeaders;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cookie::Cookie`
[INFO] [stdout]  --> src/utils/session/mod.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use axum_extra::extract::{cookie::Cookie, PrivateCookieJar};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::prelude::*`
[INFO] [stdout]   --> src/utils/session/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `database::user::User` and `utils::app_state::AppState`
[INFO] [stdout]   --> src/utils/session/mod.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{database::user::User, utils::app_state::AppState};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/utils/email.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `iter`
[INFO] [stdout]  --> src/api/mod.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, iter};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `delete`
[INFO] [stdout]  --> src/api/mod.rs:3:54
[INFO] [stdout]   |
[INFO] [stdout] 3 | use axum::{middleware::from_fn_with_state, routing::{delete, put}};
[INFO] [stdout]   |                                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::session::Permission`
[INFO] [stdout]  --> src/api/mod.rs:5:66
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{middleware::auth::admin_required, router_prelude::*, utils::session::Permission};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WARNING_SUCCESS` should have an upper camel case name
[INFO] [stdout]   --> src/api/response.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     WARNING_SUCCESS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WarningSuccess`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Router`
[INFO] [stdout]  --> src/admin/guard.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use axum::{extract::FromRequestParts, http::request::Parts, Router};
[INFO] [stdout]   |                                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::session_signature_from_cookies`
[INFO] [stdout]  --> src/admin/guard.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::{app_error::AppError, app_state::AppState, session::session_signature_from_cookies};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/admin/login.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/admin/login.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IntoMapRequestResult`, `IntoResponse`, and `StatusCode`
[INFO] [stdout]  --> src/middleware/auth.rs:2:49
[INFO] [stdout]   |
[INFO] [stdout] 2 |     body::Body, extract::State, http::{Request, StatusCode}, middleware::{IntoMapRequestResult, Next}, response::{IntoResponse, Response}
[INFO] [stdout]   |                                                 ^^^^^^^^^^                ^^^^^^^^^^^^^^^^^^^^                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::prelude::*`
[INFO] [stdout]  --> src/middleware/auth.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/private/auth.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/private/auth.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/private/auth.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{error, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::Permission`
[INFO] [stdout]  --> src/database/user/schema.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{app_state::tables::Table, session::Permission};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]  --> src/database/user/tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rusqlite::Connection`
[INFO] [stdout]  --> src/database/user/tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio_rusqlite::Connection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDateTime`
[INFO] [stdout]  --> src/database/user/mod.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, NaiveDateTime};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `prelude::AppError` and `utils::session::Permission`
[INFO] [stdout]  --> src/database/account/test.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{prelude::AppError, utils::session::Permission};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> src/database/account/test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rusqlite::params`
[INFO] [stdout]  --> src/database/account/test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rusqlite::params;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]  --> src/database/account/test.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rusqlite::Connection`
[INFO] [stdout]  --> src/database/account/test.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio_rusqlite::Connection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/database/experiment/cache.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::{BTreeMap, HashMap}, path::PathBuf, sync::{Arc, Mutex}};
[INFO] [stdout]   |                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/api/user.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     todo!("Ensure user requesting is superadmin or self");
[INFO] [stdout]    |     ----------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 53 |     todo!("Check password update rate limit");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/api/user.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     todo!("Ensure user requesting is superadmin or self");
[INFO] [stdout]    |     ----------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 53 |     todo!("Check password update rate limit");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/api/user.rs:49:36
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub async fn update_password(State(app_state): State<AppState>, Path(username): Path<String>, Json(password): Json<String>) -> Result<Jso...
[INFO] [stdout]    |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]   --> src/api/user.rs:49:70
[INFO] [stdout]    |
[INFO] [stdout] 49 | ...te): State<AppState>, Path(username): Path<String>, Json(password): Json<String>) -> Result<Json<ApiResponse>, AppError> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashed_new_pwd`
[INFO] [stdout]   --> src/api/user.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let hashed_new_pwd = utils::cryptography::hash(password).await?; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashed_new_pwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/admin/login.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Err(e) => {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn get_data(&self, id: u64) -> Result<ExperimentData, AppError> {
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:64:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |         if let Some(id) = cache.get(&expt.metadata.experiment_id) {
[INFO] [stdout]    |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:71:41
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn delete_experiment(&mut self, id: u64) -> Result<bool, AppError> {
[INFO] [stdout]    |                                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `anon_session_db` is never read
[INFO] [stdout]   --> src/utils/app_state/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     anon_session_db: Arc<Mutex<HashMap<Uuid, Session>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `email` and `token` are never read
[INFO] [stdout]   --> src/utils/app_state/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PwdResetToken {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 32 |     email: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     token: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `drop_table` is never used
[INFO] [stdout]  --> src/utils/app_state/tables.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait Table {
[INFO] [stdout]   |           ----- associated function in this trait
[INFO] [stdout] 7 |     fn create_table() -> String;
[INFO] [stdout] 8 |     fn drop_table() -> String;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_setup` is never used
[INFO] [stdout]   --> src/utils/app_state/tables.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn mock_setup<T: Table>() -> Result<Connection, AppError> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_permissions` is never used
[INFO] [stdout]   --> src/utils/session/state_handling.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl AppState {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     async fn validate_permissions(&self, user: &User, acls: Vec<AccessControls>) -> Result<bool, AppError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnonSession` is never constructed
[INFO] [stdout]  --> src/utils/session/anon_handling.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AnonSession {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_password_reset_handler` is never used
[INFO] [stdout]    --> src/utils/email.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn validate_password_reset_handler(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `experiment_file_upload` is never used
[INFO] [stdout]   --> src/api/experiment.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn experiment_file_upload() -> Result<Json<ApiResponse>, AppError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogoutForm` is never constructed
[INFO] [stdout]   --> src/admin/login.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LogoutForm {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access_code` is never read
[INFO] [stdout]   --> src/private/auth.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RegisterForm {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     access_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RegisterForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:99
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `central-server` (bin "central-server") due to 3 previous errors; 44 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/api/user.rs:49:36
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub async fn update_password(State(app_state): State<AppState>, Path(username): Path<String>, Json(password): Json<String>) -> Result<Jso...
[INFO] [stdout]    |                                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]   --> src/api/user.rs:49:70
[INFO] [stdout]    |
[INFO] [stdout] 49 | ...te): State<AppState>, Path(username): Path<String>, Json(password): Json<String>) -> Result<Json<ApiResponse>, AppError> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hashed_new_pwd`
[INFO] [stdout]   --> src/api/user.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let hashed_new_pwd = utils::cryptography::hash(password).await?; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hashed_new_pwd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/admin/login.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Err(e) => {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn get_data(&self, id: u64) -> Result<ExperimentData, AppError> {
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:64:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |         if let Some(id) = cache.get(&expt.metadata.experiment_id) {
[INFO] [stdout]    |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/database/experiment/cache.rs:71:41
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn delete_experiment(&mut self, id: u64) -> Result<bool, AppError> {
[INFO] [stdout]    |                                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `anon_session_db` is never read
[INFO] [stdout]   --> src/utils/app_state/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     anon_session_db: Arc<Mutex<HashMap<Uuid, Session>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `email` and `token` are never read
[INFO] [stdout]   --> src/utils/app_state/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct PwdResetToken {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 32 |     email: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     token: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_permissions` is never used
[INFO] [stdout]   --> src/utils/session/state_handling.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl AppState {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     async fn validate_permissions(&self, user: &User, acls: Vec<AccessControls>) -> Result<bool, AppError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnonSession` is never constructed
[INFO] [stdout]  --> src/utils/session/anon_handling.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AnonSession {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_password_reset_handler` is never used
[INFO] [stdout]    --> src/utils/email.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn validate_password_reset_handler(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `experiment_file_upload` is never used
[INFO] [stdout]   --> src/api/experiment.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn experiment_file_upload() -> Result<Json<ApiResponse>, AppError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogoutForm` is never constructed
[INFO] [stdout]   --> src/admin/login.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LogoutForm {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `access_code` is never read
[INFO] [stdout]   --> src/private/auth.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RegisterForm {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     access_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RegisterForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:99
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PrivateCookieJar, Infallible>
[INFO] [stdout]   --> src/admin/guard.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let jar: PrivateCookieJar<Key> = match PrivateCookieJar::from_request_parts(parts, state).await {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `central-server` (bin "central-server" test) due to 3 previous errors; 44 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3eb7eadcbe6af570c72d8a939b80e874b1c3c6c13d209f2bc1eace3d920b13de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3eb7eadcbe6af570c72d8a939b80e874b1c3c6c13d209f2bc1eace3d920b13de", kill_on_drop: false }`
[INFO] [stdout] 3eb7eadcbe6af570c72d8a939b80e874b1c3c6c13d209f2bc1eace3d920b13de
