[INFO] cloning repository https://github.com/WillowInTheWind/morningexapiproduction
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WillowInTheWind/morningexapiproduction" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWillowInTheWind%2Fmorningexapiproduction", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWillowInTheWind%2Fmorningexapiproduction'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8dcdf6255aedf6e04fac2aa85237840222becd38
[INFO] checking WillowInTheWind/morningexapiproduction against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146470-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWillowInTheWind%2Fmorningexapiproduction" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/WillowInTheWind/morningexapiproduction
[INFO] finished tweaking git repo https://github.com/WillowInTheWind/morningexapiproduction
[INFO] tweaked toml for git repo https://github.com/WillowInTheWind/morningexapiproduction written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/WillowInTheWind/morningexapiproduction on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/WillowInTheWind/morningexapiproduction 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tower-layer v0.3.2
[INFO] [stderr]   Downloaded tower-service v0.3.2
[INFO] [stderr]   Downloaded urlencoding v2.1.3
[INFO] [stderr]   Downloaded time-core v0.1.2
[INFO] [stderr]   Downloaded iana-time-zone-haiku v0.1.2
[INFO] [stderr]   Downloaded simple_asn1 v0.6.2
[INFO] [stderr]   Downloaded serde_path_to_error v0.1.16
[INFO] [stderr]   Downloaded wasite v0.1.0
[INFO] [stderr]   Downloaded sync_wrapper v1.0.1
[INFO] [stderr]   Downloaded num-conv v0.1.0
[INFO] [stderr]   Downloaded quinn-udp v0.5.4
[INFO] [stderr]   Downloaded num-iter v0.1.45
[INFO] [stderr]   Downloaded jsonwebtoken v9.3.0
[INFO] [stderr]   Downloaded constant_time_eq v0.1.5
[INFO] [stderr]   Downloaded cfg-if v0.1.10
[INFO] [stderr]   Downloaded block-buffer v0.9.0
[INFO] [stderr]   Downloaded sha2 v0.9.9
[INFO] [stderr]   Downloaded hmac v0.11.0
[INFO] [stderr]   Downloaded num-bigint-dig v0.8.4
[INFO] [stderr]   Downloaded arrayvec v0.5.2
[INFO] [stderr]   Downloaded hkdf v0.12.4
[INFO] [stderr]   Downloaded hyper v1.4.1
[INFO] [stderr]   Downloaded anyhow v1.0.86
[INFO] [stderr]   Downloaded cookie v0.18.1
[INFO] [stderr]   Downloaded headers v0.4.0
[INFO] [stderr]   Downloaded webpki-roots v0.25.4
[INFO] [stderr]   Downloaded webpki-roots v0.26.3
[INFO] [stderr]   Downloaded rustls v0.21.12
[INFO] [stderr]   Downloaded blake3 v0.3.8
[INFO] [stderr]   Downloaded axum v0.7.5
[INFO] [stderr]   Downloaded hyper v0.14.30
[INFO] [stderr]   Downloaded object v0.36.2
[INFO] [stderr]   Downloaded idna v0.5.0
[INFO] [stderr]   Downloaded gimli v0.29.0
[INFO] [stderr]   Downloaded rustls v0.23.12
[INFO] [stderr]   Downloaded tokio-util v0.7.11
[INFO] [stderr]   Downloaded quinn-proto v0.11.6
[INFO] [stderr]   Downloaded chrono v0.4.38
[INFO] [stderr]   Downloaded async-lock v2.8.0
[INFO] [stderr]   Downloaded bincode v1.3.3
[INFO] [stderr]   Downloaded matchit v0.7.3
[INFO] [stderr]   Downloaded axum-extra v0.9.3
[INFO] [stderr]   Downloaded axum-macros v0.4.1
[INFO] [stderr]   Downloaded rustls-webpki v0.102.6
[INFO] [stderr]   Downloaded reqwest v0.12.5
[INFO] [stderr]   Downloaded sqlx v0.7.4
[INFO] [stderr]   Downloaded rustls-webpki v0.101.7
[INFO] [stderr]   Downloaded serde_json v1.0.122
[INFO] [stderr]   Downloaded rustversion v1.0.17
[INFO] [stderr]   Downloaded colored v2.1.0
[INFO] [stderr]   Downloaded time v0.3.36
[INFO] [stderr]   Downloaded sqlx-postgres v0.7.4
[INFO] [stderr]   Downloaded sqlx-core v0.7.4
[INFO] [stderr]   Downloaded tokio v1.39.2
[INFO] [stderr]   Downloaded unicode-normalization v0.1.23
[INFO] [stderr]   Downloaded cc v1.1.7
[INFO] [stderr]   Downloaded mio v1.0.1
[INFO] [stderr]   Downloaded tower v0.4.13
[INFO] [stderr]   Downloaded digest v0.9.0
[INFO] [stderr]   Downloaded async-session v3.0.0
[INFO] [stderr]   Downloaded axum-core v0.4.3
[INFO] [stderr]   Downloaded base64 v0.13.1
[INFO] [stderr]   Downloaded der v0.7.9
[INFO] [stderr]   Downloaded futures-intrusive v0.5.0
[INFO] [stderr]   Downloaded indexmap v2.3.0
[INFO] [stderr]   Downloaded url v2.5.2
[INFO] [stderr]   Downloaded backtrace v0.3.73
[INFO] [stderr]   Downloaded tower-http v0.5.2
[INFO] [stderr]   Downloaded oauth2 v4.4.2
[INFO] [stderr]   Downloaded quinn v0.11.3
[INFO] [stderr]   Downloaded rsa v0.9.6
[INFO] [stderr]   Downloaded flume v0.11.0
[INFO] [stderr]   Downloaded unicode_categories v0.1.1
[INFO] [stderr]   Downloaded unicode-bidi v0.3.15
[INFO] [stderr]   Downloaded sqlx-sqlite v0.7.4
[INFO] [stderr]   Downloaded socket2 v0.5.7
[INFO] [stderr]   Downloaded bytes v1.7.1
[INFO] [stderr]   Downloaded dotenv v0.15.0
[INFO] [stderr]   Downloaded hyper-rustls v0.24.2
[INFO] [stderr]   Downloaded hyper-util v0.1.6
[INFO] [stderr]   Downloaded async-trait v0.1.81
[INFO] [stderr]   Downloaded sqlx-mysql v0.7.4
[INFO] [stderr]   Downloaded hmac v0.12.1
[INFO] [stderr]   Downloaded unicode-properties v0.1.1
[INFO] [stderr]   Downloaded const-oid v0.9.6
[INFO] [stderr]   Downloaded time-macros v0.2.18
[INFO] [stderr]   Downloaded http v1.1.0
[INFO] [stderr]   Downloaded crypto-mac v0.8.0
[INFO] [stderr]   Downloaded crypto-mac v0.11.0
[INFO] [stderr]   Downloaded opaque-debug v0.3.1
[INFO] [stderr]   Downloaded hostname v0.4.0
[INFO] [stderr]   Downloaded pem v3.0.4
[INFO] [stderr]   Downloaded tokio-rustls v0.24.1
[INFO] [stderr]   Downloaded hyper-rustls v0.27.2
[INFO] [stderr]   Downloaded httparse v1.9.4
[INFO] [stderr]   Downloaded ipnet v2.9.0
[INFO] [stderr]   Downloaded rustls-pemfile v2.1.3
[INFO] [stderr]   Downloaded encoding_rs v0.8.34
[INFO] [stderr]   Downloaded tokio-rustls v0.26.0
[INFO] [stderr]   Downloaded rustls-pki-types v1.7.0
[INFO] [stderr]   Downloaded tempfile v3.11.0
[INFO] [stderr]   Downloaded sqlx-macros-core v0.7.4
[INFO] [stderr]   Downloaded pkcs1 v0.7.5
[INFO] [stderr]   Downloaded pkcs8 v0.10.2
[INFO] [stderr]   Downloaded pem-rfc7468 v0.7.0
[INFO] [stderr]   Downloaded md-5 v0.10.6
[INFO] [stderr]   Downloaded stringprep v0.1.5
[INFO] [stderr]   Downloaded iana-time-zone v0.1.60
[INFO] [stderr]   Downloaded crc-catalog v2.4.0
[INFO] [stderr]   Downloaded hashlink v0.8.4
[INFO] [stderr]   Downloaded sct v0.7.1
[INFO] [stderr]   Downloaded sha2 v0.10.8
[INFO] [stderr]   Downloaded sqlformat v0.2.4
[INFO] [stderr]   Downloaded tokio-stream v0.1.15
[INFO] [stderr]   Downloaded deranged v0.3.11
[INFO] [stderr]   Downloaded powerfmt v0.2.0
[INFO] [stderr]   Downloaded addr2line v0.22.0
[INFO] [stderr]   Downloaded spin v0.9.8
[INFO] [stderr]   Downloaded headers-core v0.3.0
[INFO] [stderr]   Downloaded winreg v0.52.0
[INFO] [stderr]   Downloaded sha256 v1.5.0
[INFO] [stderr]   Downloaded signature v2.2.0
[INFO] [stderr]   Downloaded base64ct v1.6.0
[INFO] [stderr]   Downloaded spki v0.7.3
[INFO] [stderr]   Downloaded etcetera v0.8.0
[INFO] [stderr]   Downloaded whoami v1.5.1
[INFO] [stderr]   Downloaded android-tzdata v0.1.1
[INFO] [stderr]   Downloaded cpufeatures v0.2.12
[INFO] [stderr]   Downloaded home v0.5.9
[INFO] [stderr]   Downloaded atoi v2.0.0
[INFO] [stderr]   Downloaded dotenvy v0.15.7
[INFO] [stderr]   Downloaded tokio-macros v2.4.0
[INFO] [stderr]   Downloaded crc v3.2.1
[INFO] [stderr]   Downloaded http-body-util v0.1.2
[INFO] [stderr]   Downloaded sqlx-macros v0.7.4
[INFO] [stderr]   Downloaded ring v0.17.8
[INFO] [stderr]   Downloaded libsqlite3-sys v0.27.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 20855c043013aad2ba4565a9b7b33930a079bbe4dd05f6d3feac5614715403fc
[INFO] running `Command { std: "docker" "start" "-a" "20855c043013aad2ba4565a9b7b33930a079bbe4dd05f6d3feac5614715403fc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "20855c043013aad2ba4565a9b7b33930a079bbe4dd05f6d3feac5614715403fc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20855c043013aad2ba4565a9b7b33930a079bbe4dd05f6d3feac5614715403fc", kill_on_drop: false }`
[INFO] [stdout] 20855c043013aad2ba4565a9b7b33930a079bbe4dd05f6d3feac5614715403fc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de709d230563e6bb60eea5de2630ad5d450c1c065dc3d3eedf1381757d05e0ef
[INFO] running `Command { std: "docker" "start" "-a" "de709d230563e6bb60eea5de2630ad5d450c1c065dc3d3eedf1381757d05e0ef", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling cc v1.1.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking bytes v1.7.1
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling serde_json v1.0.122
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]     Checking tower-service v0.3.2
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking cpufeatures v0.2.12
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking allocator-api2 v0.2.18
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking tinyvec v1.8.0
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking equivalent v1.0.1
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking tower-layer v0.3.2
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]     Checking rustls-pki-types v1.7.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling tokio v1.39.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]     Checking indexmap v2.3.0
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling sqlformat v0.2.4
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling tokio-stream v0.1.15
[INFO] [stderr]    Compiling crc v3.2.1
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]    Compiling url v2.5.2
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling rustls v0.23.12
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling unicode-properties v0.1.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]     Checking hyper-util v0.1.6
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling sqlx-core v0.7.4
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking rustls-webpki v0.102.6
[INFO] [stderr]    Compiling axum-core v0.4.3
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling fastrand v2.1.0
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling whoami v1.5.1
[INFO] [stderr]    Compiling tempfile v3.11.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.16
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]    Compiling axum v0.7.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling blake3 v0.3.8
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking ipnet v2.9.0
[INFO] [stderr]     Checking sync_wrapper v1.0.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking webpki-roots v0.26.3
[INFO] [stderr]     Checking headers-core v0.3.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling sqlx-postgres v0.7.4
[INFO] [stderr]     Checking hyper v0.14.30
[INFO] [stderr]     Checking crypto-mac v0.11.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking encoding_rs v0.8.34
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking tokio-rustls v0.26.0
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking arrayref v0.3.8
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking hyper-rustls v0.27.2
[INFO] [stderr]     Checking hmac v0.11.0
[INFO] [stderr]     Checking simple_asn1 v0.6.2
[INFO] [stderr]     Checking headers v0.4.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking rustls-pemfile v2.1.3
[INFO] [stderr]     Checking pem v3.0.4
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking jsonwebtoken v9.3.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.12.5
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking async-session v3.0.0
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking sha256 v1.5.0
[INFO] [stderr]    Compiling axum-macros v0.4.1
[INFO] [stderr]     Checking uuid v1.10.0
[INFO] [stderr]     Checking hostname v0.4.0
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking oauth2 v4.4.2
[INFO] [stderr]     Checking constant_time_eq v0.3.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking axum-extra v0.9.3
[INFO] [stderr]     Checking morningexapiproduction v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `async_session::hmac::digest::generic_array::typenum::private::IsNotEqualPrivate`
[INFO] [stdout]  --> src/routes/mx_routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use async_session::hmac::digest::generic_array::typenum::private::IsNotEqualPrivate;
[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: `Response`
[INFO] [stdout]  --> src/routes/mx_routes.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use axum::response::{IntoResponse, Response};
[INFO] [stdout]   |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/routes/mx_routes.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::query`
[INFO] [stdout]   --> src/routes/mx_routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sqlx::query;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::routes::user_routes::GetUserBy`
[INFO] [stdout]   --> src/routes/mx_routes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::routes::user_routes::GetUserBy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `title` should have an upper camel case name
[INFO] [stdout]    --> src/routes/mx_routes.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct title {
[INFO] [stdout]     |            ^^^^^ help: convert the identifier to upper camel case: `Title`
[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: `axum_macros::debug_handler`
[INFO] [stdout]   --> src/routes/middlewares.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use axum_macros::debug_handler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/middlewares.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     if (user.email != "wayland.chase@gmail.com") {
[INFO] [stdout]    |        ^                                       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 94 -     if (user.email != "wayland.chase@gmail.com") {
[INFO] [stdout] 94 +     if user.email != "wayland.chase@gmail.com"  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/middlewares.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |         if (!user.is_admin.unwrap()) {
[INFO] [stdout]    |            ^                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -         if (!user.is_admin.unwrap()) {
[INFO] [stdout] 95 +         if !user.is_admin.unwrap()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::from_utf8_mut`
[INFO] [stdout]  --> src/routes/api_routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::from_utf8_mut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/routes/api_routes.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use axum::extract::{Path, Query, State};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Utc`
[INFO] [stdout]  --> src/routes/api_routes.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{Datelike, Days, Local, NaiveDate, Utc};
[INFO] [stdout]   |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderMap`
[INFO] [stdout]  --> src/routes/api_routes.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use http::{HeaderMap, StatusCode};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AuthRequest`
[INFO] [stdout]   --> src/routes/api_routes.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::types::internal_types::{AuthRequest, DateToString};
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/api_routes.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 |     if (key != env::var("TEMP_MASTER_KEY").unwrap()) {
[INFO] [stdout]    |        ^                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -     if (key != env::var("TEMP_MASTER_KEY").unwrap()) {
[INFO] [stdout] 21 +     if key != env::var("TEMP_MASTER_KEY").unwrap()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ACCEPT` and `AUTHORIZATION`
[INFO] [stdout]   --> src/routes.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use http::header::{ACCEPT, AUTHORIZATION};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefreshToken` and `TokenResponse`
[INFO] [stdout]  --> src/services/calendar_service.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oauth2::{RefreshToken, TokenResponse};
[INFO] [stdout]   |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oauth2::reqwest::async_http_client`
[INFO] [stdout]  --> src/services/calendar_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use oauth2::reqwest::async_http_client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format`
[INFO] [stdout]  --> src/services/calendar_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::services::cycle_manager`
[INFO] [stdout]  --> src/services/calendar_service.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::services::cycle_manager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CalendarEvent`
[INFO] [stdout]  --> src/services/calendar_service.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::data_representations::{CalendarEvent, GoogleUser, MorningExercise};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]  --> src/services/mx_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GoogleUser`
[INFO] [stdout]  --> src/services/mx_service.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::data_representations::{GoogleUser, MorningExercise};
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `query`
[INFO] [stdout]  --> src/services/user_manager.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use sqlx::{Pool, Error, Postgres, query};
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/services/cycle_manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Datelike, Days, NaiveDate, NaiveDateTime, Utc, Weekday};
[INFO] [stdout]   |              ^^^^^^^^                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     if (NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day) {
[INFO] [stdout]    |        ^                                                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -     if (NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day) {
[INFO] [stdout] 19 +     if NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if (start_date.month() > 7) {
[INFO] [stdout]    |            ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         if (start_date.month() > 7) {
[INFO] [stdout] 27 +         if start_date.month() > 7  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |         if (end_date.month() > 7) {
[INFO] [stdout]    |            ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -         if (end_date.month() > 7) {
[INFO] [stdout] 32 +         if end_date.month() > 7  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 |     while (start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()) {
[INFO] [stdout]    |           ^                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -     while (start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()) {
[INFO] [stdout] 42 +     while start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::data_representations::GoogleUser`
[INFO] [stdout]  --> src/types/internal_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::data_representations::GoogleUser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `async_session::hmac::digest::generic_array::typenum::private::IsNotEqualPrivate`
[INFO] [stdout]  --> src/routes/mx_routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use async_session::hmac::digest::generic_array::typenum::private::IsNotEqualPrivate;
[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: `Response`
[INFO] [stdout]  --> src/routes/mx_routes.rs:5:36
[INFO] [stdout]   |
[INFO] [stdout] 5 | use axum::response::{IntoResponse, Response};
[INFO] [stdout]   |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/routes/mx_routes.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::query`
[INFO] [stdout]   --> src/routes/mx_routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sqlx::query;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::routes::user_routes::GetUserBy`
[INFO] [stdout]   --> src/routes/mx_routes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::routes::user_routes::GetUserBy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `title` should have an upper camel case name
[INFO] [stdout]    --> src/routes/mx_routes.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct title {
[INFO] [stdout]     |            ^^^^^ help: convert the identifier to upper camel case: `Title`
[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: `axum_macros::debug_handler`
[INFO] [stdout]   --> src/routes/middlewares.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use axum_macros::debug_handler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/middlewares.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     if (user.email != "wayland.chase@gmail.com") {
[INFO] [stdout]    |        ^                                       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 94 -     if (user.email != "wayland.chase@gmail.com") {
[INFO] [stdout] 94 +     if user.email != "wayland.chase@gmail.com"  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/middlewares.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |         if (!user.is_admin.unwrap()) {
[INFO] [stdout]    |            ^                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -         if (!user.is_admin.unwrap()) {
[INFO] [stdout] 95 +         if !user.is_admin.unwrap()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::from_utf8_mut`
[INFO] [stdout]  --> src/routes/api_routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::from_utf8_mut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/routes/api_routes.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use axum::extract::{Path, Query, State};
[INFO] [stdout]   |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Utc`
[INFO] [stdout]  --> src/routes/api_routes.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{Datelike, Days, Local, NaiveDate, Utc};
[INFO] [stdout]   |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderMap`
[INFO] [stdout]  --> src/routes/api_routes.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | use http::{HeaderMap, StatusCode};
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AuthRequest`
[INFO] [stdout]   --> src/routes/api_routes.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::types::internal_types::{AuthRequest, DateToString};
[INFO] [stdout]    |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/routes/api_routes.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 |     if (key != env::var("TEMP_MASTER_KEY").unwrap()) {
[INFO] [stdout]    |        ^                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 -     if (key != env::var("TEMP_MASTER_KEY").unwrap()) {
[INFO] [stdout] 21 +     if key != env::var("TEMP_MASTER_KEY").unwrap()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ACCEPT` and `AUTHORIZATION`
[INFO] [stdout]   --> src/routes.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use http::header::{ACCEPT, AUTHORIZATION};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RefreshToken` and `TokenResponse`
[INFO] [stdout]  --> src/services/calendar_service.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use oauth2::{RefreshToken, TokenResponse};
[INFO] [stdout]   |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `oauth2::reqwest::async_http_client`
[INFO] [stdout]  --> src/services/calendar_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use oauth2::reqwest::async_http_client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format`
[INFO] [stdout]  --> src/services/calendar_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing_subscriber::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::services::cycle_manager`
[INFO] [stdout]  --> src/services/calendar_service.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::services::cycle_manager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CalendarEvent`
[INFO] [stdout]  --> src/services/calendar_service.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::data_representations::{CalendarEvent, GoogleUser, MorningExercise};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]  --> src/services/mx_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GoogleUser`
[INFO] [stdout]  --> src/services/mx_service.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::data_representations::{GoogleUser, MorningExercise};
[INFO] [stdout]   |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `query`
[INFO] [stdout]  --> src/services/user_manager.rs:2:35
[INFO] [stdout]   |
[INFO] [stdout] 2 | use sqlx::{Pool, Error, Postgres, query};
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/services/cycle_manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Datelike, Days, NaiveDate, NaiveDateTime, Utc, Weekday};
[INFO] [stdout]   |              ^^^^^^^^                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     if (NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day) {
[INFO] [stdout]    |        ^                                                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -     if (NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day) {
[INFO] [stdout] 19 +     if NaiveDate::from_ymd_opt(2025, 1, 22).unwrap().and_hms_opt(23,59,59).unwrap() < day  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if (start_date.month() > 7) {
[INFO] [stdout]    |            ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         if (start_date.month() > 7) {
[INFO] [stdout] 27 +         if start_date.month() > 7  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |         if (end_date.month() > 7) {
[INFO] [stdout]    |            ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -         if (end_date.month() > 7) {
[INFO] [stdout] 32 +         if end_date.month() > 7  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/services/cycle_manager.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 |     while (start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()) {
[INFO] [stdout]    |           ^                                                                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -     while (start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()) {
[INFO] [stdout] 42 +     while start.and_utc().timestamp_millis() < day.and_utc().timestamp_millis()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::data_representations::GoogleUser`
[INFO] [stdout]  --> src/types/internal_types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::data_representations::GoogleUser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/routes/mx_routes.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut editors = string_to_list(payload.editors_json).unwrap();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/routes/mx_routes.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut editors = string_to_list(payload.editors_json).unwrap();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/routes/mx_routes.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn all_consumed_dates(Extension(state): Extension<AppState>) -> Json<NaiveDate> {
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_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: `date`
[INFO] [stdout]    --> src/services/mx_service.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 |         let date: NaiveDate = mx.date ;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `owner`
[INFO] [stdout]    --> src/services/mx_service.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let owner: i32 = mx.owner.id.unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mx_status_code`
[INFO] [stdout]    --> src/routes/mx_routes.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mx_status_code = state.reqwest_client.mx_to_calendar(state.oauth_client, state.dbreference.get_user_by_id(config::MORNING_E...
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mx_status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:58
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mx`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:76
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                                                            ^^ help: if this is intentional, prefix it with an underscore: `_mx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `AppState`
[INFO] [stdout]   --> src/routes/api_routes.rs:33:39
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   State(AppState): State<AppState>
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_AppState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `approved_cors`
[INFO] [stdout]   --> src/routes.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let approved_cors = env::var("REDIRECT_URL").unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_approved_cors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/types/internal_types.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let mut number: Result<T, &str> = number.parse::<T>().map_err(|e| "oops");
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/types/internal_types.rs:82:72
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let mut number: Result<T, &str> = number.parse::<T>().map_err(|e| "oops");
[INFO] [stdout]    |                                                                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_admin_user` is never used
[INFO] [stdout]   --> src/routes/user_routes.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn make_admin_user(Json(payload): Json<ID>,State(state): State<AppState>) -> StatusCode {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ID` is never constructed
[INFO] [stdout]   --> src/routes/user_routes.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ID {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_consumed_dates` is never used
[INFO] [stdout]   --> src/routes/mx_routes.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn all_consumed_dates(Extension(state): Extension<AppState>) -> Json<NaiveDate> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_key` is never used
[INFO] [stdout]    --> src/routes/middlewares.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn is_valid_key(key: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_api_token` is never used
[INFO] [stdout]   --> src/routes/api_routes.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn generate_api_token(Extension(user): Extension<GoogleUser>,
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mx_by_date`, `get_mx_by_index`, and `delete_mx_by_title` are never used
[INFO] [stdout]   --> src/services/mx_service.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait MxService {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] 11 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout] 12 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     async fn delete_mx_by_title(&self, title: &str) -> (StatusCode,String);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `make_user_admin`, `delete_user_by_id`, `delete_user_by_user_name`, `edit_username`, and `delete_user_by_email` are never used
[INFO] [stdout]   --> src/services/user_manager.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) trait UserService: Send + Sync {
[INFO] [stdout]    |                  ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn make_user_admin(&self, id: i32) -> Result<StatusCode, Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     async fn delete_user_by_id(&self, id: i32) -> Result<StatusCode, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     async fn delete_user_by_user_name(&self, name: String) -> Result<StatusCode, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     async fn edit_username(&self, new_user: GoogleUser) ->  Result<GoogleUser, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     async fn reset_user_token(&self, token: String, id: i32) -> Result<StatusCode, Error>;
[INFO] [stdout] 21 |     async fn delete_user_by_email(&self, email: String) -> Result<StatusCode, Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OFF_DAYS` is never used
[INFO] [stdout]  --> src/services/cycle_manager.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub static OFF_DAYS: [[&str; 2]; 12]= [["September 2 2024", "September 2 2024"],
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day_to_cycle` is never used
[INFO] [stdout]   --> src/services/cycle_manager.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn day_to_cycle(day: NaiveDateTime ) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OauthError` is never constructed
[INFO] [stdout]  --> src/types/errors.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct OauthError {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/errors.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl OauthError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 63 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorResponse` is never constructed
[INFO] [stdout]   --> src/types/errors.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct ErrorResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CalendarEvent` is never constructed
[INFO] [stdout]   --> src/types/data_representations.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct CalendarEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/data_representations.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl CalendarEvent {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 55 |     pub fn new(summary: String, start: NaiveDateTime, end: NaiveDateTime, description: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `time` is never constructed
[INFO] [stdout]  --> src/types/internal_types.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct time {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `date_to_long_string` is never used
[INFO] [stdout]   --> src/types/internal_types.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) trait DateToString {
[INFO] [stdout]    |                  ------------ method in this trait
[INFO] [stdout] 29 |     fn date_to_long_string(&self) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AppState` should have a snake case name
[INFO] [stdout]   --> src/routes/api_routes.rs:33:39
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   State(AppState): State<AppState>
[INFO] [stdout]    |                             ^^^^^^^^ help: convert the identifier to snake case: `app_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/routes/mx_routes.rs:33:43
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn all_consumed_dates(Extension(state): Extension<AppState>) -> Json<NaiveDate> {
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_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: `date`
[INFO] [stdout]    --> src/services/mx_service.rs:200:13
[INFO] [stdout]     |
[INFO] [stdout] 200 |         let date: NaiveDate = mx.date ;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `owner`
[INFO] [stdout]    --> src/services/mx_service.rs:201:13
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let owner: i32 = mx.owner.id.unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mx_status_code`
[INFO] [stdout]    --> src/routes/mx_routes.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mx_status_code = state.reqwest_client.mx_to_calendar(state.oauth_client, state.dbreference.get_user_by_id(config::MORNING_E...
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mx_status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:58
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mx`
[INFO] [stdout]   --> src/services/calendar_service.rs:14:76
[INFO] [stdout]    |
[INFO] [stdout] 14 |      async fn mx_to_calendar(&self, client: BasicClient, user: GoogleUser, mx: MorningExercise) -> Result<StatusCode, StatusCode> {
[INFO] [stdout]    |                                                                            ^^ help: if this is intentional, prefix it with an underscore: `_mx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `AppState`
[INFO] [stdout]   --> src/routes/api_routes.rs:33:39
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   State(AppState): State<AppState>
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_AppState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `approved_cors`
[INFO] [stdout]   --> src/routes.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let approved_cors = env::var("REDIRECT_URL").unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_approved_cors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/types/internal_types.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let mut number: Result<T, &str> = number.parse::<T>().map_err(|e| "oops");
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/types/internal_types.rs:82:72
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let mut number: Result<T, &str> = number.parse::<T>().map_err(|e| "oops");
[INFO] [stdout]    |                                                                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_admin_user` is never used
[INFO] [stdout]   --> src/routes/user_routes.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn make_admin_user(Json(payload): Json<ID>,State(state): State<AppState>) -> StatusCode {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ID` is never constructed
[INFO] [stdout]   --> src/routes/user_routes.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ID {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_consumed_dates` is never used
[INFO] [stdout]   --> src/routes/mx_routes.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn all_consumed_dates(Extension(state): Extension<AppState>) -> Json<NaiveDate> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_key` is never used
[INFO] [stdout]    --> src/routes/middlewares.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn is_valid_key(key: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_api_token` is never used
[INFO] [stdout]   --> src/routes/api_routes.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn generate_api_token(Extension(user): Extension<GoogleUser>,
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_mx_by_date`, `get_mx_by_index`, and `delete_mx_by_title` are never used
[INFO] [stdout]   --> src/services/mx_service.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait MxService {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] 11 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout] 12 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     async fn delete_mx_by_title(&self, title: &str) -> (StatusCode,String);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `make_user_admin`, `delete_user_by_id`, `delete_user_by_user_name`, `edit_username`, and `delete_user_by_email` are never used
[INFO] [stdout]   --> src/services/user_manager.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub(crate) trait UserService: Send + Sync {
[INFO] [stdout]    |                  ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn make_user_admin(&self, id: i32) -> Result<StatusCode, Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     async fn delete_user_by_id(&self, id: i32) -> Result<StatusCode, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     async fn delete_user_by_user_name(&self, name: String) -> Result<StatusCode, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     async fn edit_username(&self, new_user: GoogleUser) ->  Result<GoogleUser, sqlx::Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     async fn reset_user_token(&self, token: String, id: i32) -> Result<StatusCode, Error>;
[INFO] [stdout] 21 |     async fn delete_user_by_email(&self, email: String) -> Result<StatusCode, Error>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `OFF_DAYS` is never used
[INFO] [stdout]  --> src/services/cycle_manager.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub static OFF_DAYS: [[&str; 2]; 12]= [["September 2 2024", "September 2 2024"],
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day_to_cycle` is never used
[INFO] [stdout]   --> src/services/cycle_manager.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn day_to_cycle(day: NaiveDateTime ) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OauthError` is never constructed
[INFO] [stdout]  --> src/types/errors.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct OauthError {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/errors.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl OauthError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 63 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorResponse` is never constructed
[INFO] [stdout]   --> src/types/errors.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct ErrorResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CalendarEvent` is never constructed
[INFO] [stdout]   --> src/types/data_representations.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct CalendarEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/types/data_representations.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl CalendarEvent {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 55 |     pub fn new(summary: String, start: NaiveDateTime, end: NaiveDateTime, description: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `time` is never constructed
[INFO] [stdout]  --> src/types/internal_types.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct time {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `date_to_long_string` is never used
[INFO] [stdout]   --> src/types/internal_types.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) trait DateToString {
[INFO] [stdout]    |                  ------------ method in this trait
[INFO] [stdout] 29 |     fn date_to_long_string(&self) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AppState` should have a snake case name
[INFO] [stdout]   --> src/routes/api_routes.rs:33:39
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   State(AppState): State<AppState>
[INFO] [stdout]    |                             ^^^^^^^^ help: convert the identifier to snake case: `app_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 40s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: sqlx-postgres v0.7.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "de709d230563e6bb60eea5de2630ad5d450c1c065dc3d3eedf1381757d05e0ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de709d230563e6bb60eea5de2630ad5d450c1c065dc3d3eedf1381757d05e0ef", kill_on_drop: false }`
[INFO] [stdout] de709d230563e6bb60eea5de2630ad5d450c1c065dc3d3eedf1381757d05e0ef
