[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 master#a26e97be8826d408309fffbd8168362365719f50 for pr-136776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenNotBen1224%2FBerkeley-NanoTech" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/BenNotBen1224/Berkeley-NanoTech on toolchain a26e97be8826d408309fffbd8168362365719f50
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-1-tc1/source/Cargo.toml
[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" "+a26e97be8826d408309fffbd8168362365719f50" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_derive v2.7.14
[INFO] [stderr]   Downloaded pest_generator v2.7.14
[INFO] [stderr]   Downloaded quoted_printable v0.5.1
[INFO] [stderr]   Downloaded tokio-rusqlite v0.6.0
[INFO] [stderr]   Downloaded email-encoding v0.3.1
[INFO] [stderr]   Downloaded axum-macros v0.4.2
[INFO] [stderr]   Downloaded axum-extra v0.9.6
[INFO] [stderr]   Downloaded chumsky v0.9.3
[INFO] [stderr]   Downloaded pest_meta v2.7.14
[INFO] [stderr]   Downloaded email_address v0.2.9
[INFO] [stderr]   Downloaded lettre v0.11.10
[INFO] [stderr]   Downloaded http-range-header v0.4.2
[INFO] [stderr]   Downloaded axum v0.7.9
[INFO] [stderr]   Downloaded pest v2.7.14
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded syn v2.0.89
[INFO] [stderr]   Downloaded bstr v1.11.0
[INFO] [stderr]   Downloaded libc v0.2.166
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b96fafef0d4c9389bf20be720d48813616d321b5eca62003eeb1f45dd7fad033
[INFO] running `Command { std: "docker" "start" "-a" "b96fafef0d4c9389bf20be720d48813616d321b5eca62003eeb1f45dd7fad033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b96fafef0d4c9389bf20be720d48813616d321b5eca62003eeb1f45dd7fad033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b96fafef0d4c9389bf20be720d48813616d321b5eca62003eeb1f45dd7fad033", kill_on_drop: false }`
[INFO] [stdout] b96fafef0d4c9389bf20be720d48813616d321b5eca62003eeb1f45dd7fad033
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+a26e97be8826d408309fffbd8168362365719f50" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e1f86891a726a34075b8c3adce9ff72bec3b1401d2689f7981ed52aee4c2b49a
[INFO] running `Command { std: "docker" "start" "-a" "e1f86891a726a34075b8c3adce9ff72bec3b1401d2689f7981ed52aee4c2b49a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.166
[INFO] [stderr]     Checking pin-project-lite v0.2.15
[INFO] [stderr]     Checking bytes v1.9.0
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]    Compiling cc v1.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking futures-util v0.3.31
[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]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking cpufeatures v0.2.16
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]     Checking inout v0.1.3
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking allocator-api2 v0.2.20
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling rustversion v1.0.18
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]    Compiling phf v0.11.2
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking bstr v1.11.0
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking unic-common v0.9.0
[INFO] [stderr]    Compiling unicase v2.8.0
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]     Checking unic-char-range v0.9.0
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling phf_codegen v0.11.2
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]     Checking unic-char-property v0.9.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling psm v0.1.24
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling stacker v0.1.17
[INFO] [stderr]     Checking unic-ucd-version v0.9.0
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking fastrand v2.2.0
[INFO] [stderr]    Compiling rustix v0.38.41
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking unic-ucd-segment v0.9.0
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling anyhow v1.0.93
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking deunicode v1.6.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking base64ct v1.6.0
[INFO] [stderr]     Checking humansize v2.1.3
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking slug v0.1.6
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking unic-segment v0.9.0
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking hostname v0.4.0
[INFO] [stderr]     Checking email-encoding v0.3.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking quoted_printable v0.5.1
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking uuid v1.11.0
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]     Checking globset v0.4.15
[INFO] [stderr]     Checking ignore v0.4.23
[INFO] [stderr]    Compiling chrono-tz-build v0.3.0
[INFO] [stderr]     Checking tempfile v3.14.0
[INFO] [stderr]     Checking globwalk v0.9.1
[INFO] [stderr]    Compiling chrono-tz v0.9.0
[INFO] [stderr]    Compiling synstructure v0.13.1
[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]    Compiling serde_derive v1.0.215
[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]    Compiling async-trait v0.1.83
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling pest v2.7.14
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[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 icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling pest_meta v2.7.14
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking hyper v1.5.1
[INFO] [stderr]     Checking tower v0.5.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]    Compiling pest_generator v2.7.14
[INFO] [stderr]     Checking tower-http v0.6.2
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]    Compiling pest_derive v2.7.14
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking serde_path_to_error v0.1.16
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.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 axum v0.7.9
[INFO] [stderr]     Checking lettre v0.11.10
[INFO] [stderr]     Checking tokio-rusqlite v0.6.0
[INFO] [stderr]     Checking axum-extra v0.9.6
[INFO] [stderr]     Checking tera v1.20.0
[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)]` 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)]` 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 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)]` 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 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: 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)]` 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: 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)]` 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)]` 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: 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)]` 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)]` 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: 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)]` 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]   = note: `AnonSession` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[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: field `username` is never read
[INFO] [stdout]   --> src/admin/login.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LogoutForm {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 27 |     username: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogoutForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[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] 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)]` 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]   = note: `AnonSession` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[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: field `username` is never read
[INFO] [stdout]   --> src/admin/login.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct LogoutForm {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 27 |     username: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogoutForm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.53s
[INFO] running `Command { std: "docker" "inspect" "e1f86891a726a34075b8c3adce9ff72bec3b1401d2689f7981ed52aee4c2b49a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1f86891a726a34075b8c3adce9ff72bec3b1401d2689f7981ed52aee4c2b49a", kill_on_drop: false }`
[INFO] [stdout] e1f86891a726a34075b8c3adce9ff72bec3b1401d2689f7981ed52aee4c2b49a
