[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 try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWillowInTheWind%2Fmorningexapiproduction" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/WillowInTheWind/morningexapiproduction on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2c343805737b9e58fa7105ddd3cc966aa12a626496f505088e511094eeaeecf8
[INFO] running `Command { std: "docker" "start" "-a" "2c343805737b9e58fa7105ddd3cc966aa12a626496f505088e511094eeaeecf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c343805737b9e58fa7105ddd3cc966aa12a626496f505088e511094eeaeecf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c343805737b9e58fa7105ddd3cc966aa12a626496f505088e511094eeaeecf8", kill_on_drop: false }`
[INFO] [stdout] 2c343805737b9e58fa7105ddd3cc966aa12a626496f505088e511094eeaeecf8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8f5019d5368655e18e03e6dba3e9ac9d1b4c0da4ed50f1f7ef6428e89f2ce04f
[INFO] running `Command { std: "docker" "start" "-a" "8f5019d5368655e18e03e6dba3e9ac9d1b4c0da4ed50f1f7ef6428e89f2ce04f", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling cc v1.1.7
[INFO] [stderr]     Checking bytes v1.7.1
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling serde_json v1.0.122
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking allocator-api2 v0.2.18
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]    Compiling tinyvec v1.8.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling unicode-bidi v0.3.15
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]     Checking rustls-pki-types v1.7.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling tokio v1.39.2
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling crc v3.2.1
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling syn v1.0.109
[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]    Compiling unicode-properties v0.1.1
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling url v2.5.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling axum-core v0.4.3
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]    Compiling whoami v1.5.1
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling fastrand v2.1.0
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking sqlformat v0.2.4
[INFO] [stderr]    Compiling blake3 v0.3.8
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]    Compiling axum v0.7.5
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking headers-core v0.3.0
[INFO] [stderr]     Checking webpki-roots v0.26.3
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking crypto-mac v0.11.0
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking arrayref v0.3.8
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking hmac v0.11.0
[INFO] [stderr]     Checking headers v0.4.0
[INFO] [stderr]     Checking rustls-pemfile v2.1.3
[INFO] [stderr]     Checking pem v3.0.4
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]    Compiling tempfile v3.11.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking uuid v1.10.0
[INFO] [stderr]     Checking hostname v0.4.0
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]    Compiling tokio-stream v0.1.15
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling axum-macros v0.4.1
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]     Checking rustls-webpki v0.102.6
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking simple_asn1 v0.6.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking indexmap v2.3.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-rustls v0.26.0
[INFO] [stderr]     Checking sha256 v1.5.0
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking hyper-util v0.1.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.16
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking hyper-rustls v0.27.2
[INFO] [stderr]     Checking sqlx-core v0.7.4
[INFO] [stderr]     Checking jsonwebtoken v9.3.0
[INFO] [stderr]     Checking async-session v3.0.0
[INFO] [stderr]     Checking reqwest v0.12.5
[INFO] [stderr]     Checking hyper v0.14.30
[INFO] [stderr]     Checking sqlx-postgres v0.7.4
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking axum-extra v0.9.3
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking oauth2 v4.4.2
[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 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] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:12:56
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:13:52
[INFO] [stdout]    |
[INFO] [stdout] 13 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |     async fn get_mx_by_title(&self, title: &str) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:15:56
[INFO] [stdout]    |
[INFO] [stdout] 15 |     async fn get_mxs_by_owner(&self, owner_id: i32) -> Result<Vec<MorningExercise>, (StatusCode, String)>;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     async fn get_mxs(&self) -> Result<Vec<MorningExercise>, (StatusCode, String)>;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:21:61
[INFO] [stdout]    |
[INFO] [stdout] 21 |     async fn get_mxs_by_sql_filter(&self, query: String) -> Result<Vec<MorningExercise>, (StatusCode,String)>;
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:27:46
[INFO] [stdout]    |
[INFO] [stdout] 27 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:56:56
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:85:52
[INFO] [stdout]    |
[INFO] [stdout] 85 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:114:53
[INFO] [stdout]     |
[INFO] [stdout] 114 |     async fn get_mx_by_title(&self, title: &str) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:144:56
[INFO] [stdout]     |
[INFO] [stdout] 144 |     async fn get_mxs_by_owner(&self, owner_id: i32) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |     async fn get_mxs(&self) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:299:61
[INFO] [stdout]     |
[INFO] [stdout] 299 |     async fn get_mxs_by_sql_filter(&self, query: String) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[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] For more information about this error, try `rustc --explain E0446`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `morningexapiproduction` (bin "morningexapiproduction") due to 14 previous errors; 59 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[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] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:12:56
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:13:52
[INFO] [stdout]    |
[INFO] [stdout] 13 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |     async fn get_mx_by_title(&self, title: &str) -> Result<MorningExercise, (StatusCode, String)>;
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:15:56
[INFO] [stdout]    |
[INFO] [stdout] 15 |     async fn get_mxs_by_owner(&self, owner_id: i32) -> Result<Vec<MorningExercise>, (StatusCode, String)>;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 |     async fn get_mxs(&self) -> Result<Vec<MorningExercise>, (StatusCode, String)>;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:21:61
[INFO] [stdout]    |
[INFO] [stdout] 21 |     async fn get_mxs_by_sql_filter(&self, query: String) -> Result<Vec<MorningExercise>, (StatusCode,String)>;
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:27:46
[INFO] [stdout]    |
[INFO] [stdout] 27 |     async fn get_mx_by_id(&self, id: i64) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:56:56
[INFO] [stdout]    |
[INFO] [stdout] 56 |     async fn get_mx_by_date(&self, date: NaiveDate) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]   --> src/services/mx_service.rs:85:52
[INFO] [stdout]    |
[INFO] [stdout] 85 |     async fn get_mx_by_index(&self, index: i64) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/types/data_representations.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct MorningExercise {
[INFO] [stdout]    | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:114:53
[INFO] [stdout]     |
[INFO] [stdout] 114 |     async fn get_mx_by_title(&self, title: &str) -> Result<MorningExercise, (StatusCode, String)> {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:144:56
[INFO] [stdout]     |
[INFO] [stdout] 144 |     async fn get_mxs_by_owner(&self, owner_id: i32) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |     async fn get_mxs(&self) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0446]: crate-private type `MorningExercise` in public interface
[INFO] [stdout]    --> src/services/mx_service.rs:299:61
[INFO] [stdout]     |
[INFO] [stdout] 299 |     async fn get_mxs_by_sql_filter(&self, query: String) -> Result<Vec<MorningExercise>, (StatusCode, String)> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/types/data_representations.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct MorningExercise {
[INFO] [stdout]     | --------------------------------- `MorningExercise` declared as crate-private
[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] For more information about this error, try `rustc --explain E0446`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `morningexapiproduction` (bin "morningexapiproduction" test) due to 14 previous errors; 59 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8f5019d5368655e18e03e6dba3e9ac9d1b4c0da4ed50f1f7ef6428e89f2ce04f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f5019d5368655e18e03e6dba3e9ac9d1b4c0da4ed50f1f7ef6428e89f2ce04f", kill_on_drop: false }`
[INFO] [stdout] 8f5019d5368655e18e03e6dba3e9ac9d1b4c0da4ed50f1f7ef6428e89f2ce04f
