[INFO] cloning repository https://github.com/ritesh089/tennis_scheduler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ritesh089/tennis_scheduler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fritesh089%2Ftennis_scheduler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fritesh089%2Ftennis_scheduler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ff9703beaad23595ce9ed5fae2eeb5e9491d7492
[INFO] checking ritesh089/tennis_scheduler against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fritesh089%2Ftennis_scheduler" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ritesh089/tennis_scheduler
[INFO] finished tweaking git repo https://github.com/ritesh089/tennis_scheduler
[INFO] tweaked toml for git repo https://github.com/ritesh089/tennis_scheduler written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ritesh089/tennis_scheduler on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ritesh089/tennis_scheduler 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded paperclip-macros v0.6.3
[INFO] [stderr]   Downloaded paperclip-core v0.6.2
[INFO] [stderr]   Downloaded diesel-derive-enum v2.1.0
[INFO] [stderr]   Downloaded pq-sys v0.7.0
[INFO] [stderr]   Downloaded actix-cors v0.6.5
[INFO] [stderr]   Downloaded paperclip v0.8.2
[INFO] [stderr]   Downloaded paperclip-actix v0.6.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fe54baeff3eb268f01f3746819518d45740d8c54bf82bde549c29671673d41bf
[INFO] running `Command { std: "docker" "start" "-a" "fe54baeff3eb268f01f3746819518d45740d8c54bf82bde549c29671673d41bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe54baeff3eb268f01f3746819518d45740d8c54bf82bde549c29671673d41bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe54baeff3eb268f01f3746819518d45740d8c54bf82bde549c29671673d41bf", kill_on_drop: false }`
[INFO] [stdout] fe54baeff3eb268f01f3746819518d45740d8c54bf82bde549c29671673d41bf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 751884d0c7043f354d09edc7def6e7a60b7161e0ba43407a7e5cc9f11416fb1a
[INFO] running `Command { std: "docker" "start" "-a" "751884d0c7043f354d09edc7def6e7a60b7161e0ba43407a7e5cc9f11416fb1a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling serde v1.0.218
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling bytes v1.10.0
[INFO] [stderr]     Checking indexmap v2.7.1
[INFO] [stderr]     Checking miniz_oxide v0.8.4
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]    Compiling serde_json v1.0.139
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling pq-sys v0.7.0
[INFO] [stderr]    Compiling anyhow v1.0.96
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling semver v1.0.25
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.7
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling paperclip v0.8.2
[INFO] [stderr]     Checking blowfish v0.8.0
[INFO] [stderr]     Checking r2d2 v0.8.10
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]     Checking flate2 v1.0.35
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]    Compiling cc v1.2.15
[INFO] [stderr]     Checking uuid v1.14.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking bcrypt v0.10.1
[INFO] [stderr]     Checking time v0.3.37
[INFO] [stderr]    Compiling zstd-sys v2.0.14+zstd.1.5.7
[INFO] [stderr]     Checking cookie v0.16.2
[INFO] [stderr]     Checking tokio-util v0.7.13
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling diesel_table_macro_syntax v0.2.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.218
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling derive_more v0.99.19
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling diesel-derive-enum v2.1.0
[INFO] [stderr]     Checking actix-rt v2.10.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling paperclip-macros v0.6.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]    Compiling zstd-safe v7.2.3
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling dsl_auto_type v0.1.3
[INFO] [stderr]    Compiling diesel_derives v2.2.3
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking actix-server v2.5.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking chrono v0.4.39
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking actix-http v3.9.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking diesel v2.2.7
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking actix-web v4.9.0
[INFO] [stderr]     Checking paperclip-core v0.6.2
[INFO] [stderr]     Checking actix-cors v0.6.5
[INFO] [stderr]     Checking paperclip-actix v0.6.2
[INFO] [stderr]     Checking tennis_scheduler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::db::models::Player`
[INFO] [stdout]   --> src/api/leagues.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::db::models::Player;
[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: `Serialize`
[INFO] [stdout]  --> src/api/players.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/matches.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/api/matches.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db::models::Player`
[INFO] [stdout]   --> src/api/leagues.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::db::models::Player;
[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: `Serialize`
[INFO] [stdout]  --> src/api/players.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/matches.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/api/matches.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn create_appointment(item: web::Json<CreateAppointmentInput>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     path: web::Path<i32>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     item: web::Json<UpdateAppointmentInput>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn cancel_appointment(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn create_appointment(item: web::Json<CreateAppointmentInput>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     path: web::Path<i32>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     item: web::Json<UpdateAppointmentInput>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn cancel_appointment(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/players.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub async fn get_calendar(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/players.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub async fn get_calendar(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let result: Result<(), AppError> = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let result: Result<(), AppError> = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requester_id`, `opponent_id`, `start_time`, `end_time`, and `league_id` are never read
[INFO] [stdout]   --> src/api/appointments.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct CreateAppointmentInput {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  6 |     pub requester_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  7 |     pub opponent_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     pub start_time: String, // Ideally, use a datetime type; using String here for simplicity.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]  9 |     pub end_time: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub league_id: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/api/appointments.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct UpdateAppointmentInput {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 30 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeagueResponse` is never constructed
[INFO] [stdout]   --> src/api/leagues.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct LeagueResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_league_by_id` is never used
[INFO] [stdout]   --> src/api/leagues.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn get_league_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_league` is never used
[INFO] [stdout]    --> src/api/leagues.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub async fn leave_league(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requester_id`, `opponent_id`, `start_time`, `end_time`, and `league_id` are never read
[INFO] [stdout]   --> src/api/appointments.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct CreateAppointmentInput {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  6 |     pub requester_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  7 |     pub opponent_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     pub start_time: String, // Ideally, use a datetime type; using String here for simplicity.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]  9 |     pub end_time: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub league_id: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/api/appointments.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct UpdateAppointmentInput {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 30 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeagueResponse` is never constructed
[INFO] [stdout]   --> src/api/leagues.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct LeagueResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_league_by_id` is never used
[INFO] [stdout]   --> src/api/leagues.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn get_league_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_league` is never used
[INFO] [stdout]    --> src/api/leagues.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub async fn leave_league(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> tests/test_runner.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         TEST_DB_POOL.clone().unwrap()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `diesel::prelude`
[INFO] [stdout]  --> tests/fixed_match_tests.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use diesel::prelude::*;
[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: `diesel::prelude`
[INFO] [stdout]  --> tests/match_tests.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use diesel::prelude::*;
[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: `crate::db::models::Player`
[INFO] [stdout]   --> src/api/leagues.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::db::models::Player;
[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: `Serialize`
[INFO] [stdout]  --> src/api/players.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/matches.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/api/matches.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::db::models::Player`
[INFO] [stdout]   --> src/api/leagues.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::db::models::Player;
[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: `Serialize`
[INFO] [stdout]  --> src/api/players.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/matches.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/api/matches.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `completed_match_id`
[INFO] [stdout]    --> tests/match_tests.rs:867:9
[INFO] [stdout]     |
[INFO] [stdout] 867 |     let completed_match_id = completed_match_body["id"].as_str().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_completed_match_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn create_appointment(item: web::Json<CreateAppointmentInput>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     path: web::Path<i32>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     item: web::Json<UpdateAppointmentInput>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn cancel_appointment(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn create_appointment(item: web::Json<CreateAppointmentInput>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     path: web::Path<i32>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/api/appointments.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     item: web::Json<UpdateAppointmentInput>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/appointments.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn cancel_appointment(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/players.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub async fn get_calendar(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/api/players.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub async fn get_calendar(path: web::Path<i32>) -> impl Responder {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let result: Result<(), AppError> = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/api/matches.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let result: Result<(), AppError> = web::block(move || {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requester_id`, `opponent_id`, `start_time`, `end_time`, and `league_id` are never read
[INFO] [stdout]   --> src/api/appointments.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct CreateAppointmentInput {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  6 |     pub requester_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  7 |     pub opponent_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     pub start_time: String, // Ideally, use a datetime type; using String here for simplicity.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]  9 |     pub end_time: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub league_id: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/api/appointments.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct UpdateAppointmentInput {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 30 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeagueResponse` is never constructed
[INFO] [stdout]   --> src/api/leagues.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct LeagueResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_league_by_id` is never used
[INFO] [stdout]   --> src/api/leagues.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn get_league_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_league` is never used
[INFO] [stdout]    --> src/api/leagues.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub async fn leave_league(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeaguePlayer` is never constructed
[INFO] [stdout]   --> src/db/models.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct LeaguePlayer {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Appointment` is never constructed
[INFO] [stdout]   --> src/db/models.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Appointment {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateMatchInput` is never constructed
[INFO] [stdout]    --> src/db/models.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct UpdateMatchInput {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requester_id`, `opponent_id`, `start_time`, `end_time`, and `league_id` are never read
[INFO] [stdout]   --> src/api/appointments.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct CreateAppointmentInput {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout]  6 |     pub requester_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]  7 |     pub opponent_id: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  8 |     pub start_time: String, // Ideally, use a datetime type; using String here for simplicity.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]  9 |     pub end_time: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 10 |     pub league_id: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/api/appointments.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct UpdateAppointmentInput {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 30 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeagueResponse` is never constructed
[INFO] [stdout]   --> src/api/leagues.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct LeagueResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_league_by_id` is never used
[INFO] [stdout]   --> src/api/leagues.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn get_league_by_id(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leave_league` is never used
[INFO] [stdout]    --> src/api/leagues.rs:138:14
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub async fn leave_league(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LeaguePlayer` is never constructed
[INFO] [stdout]   --> src/db/models.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct LeaguePlayer {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Appointment` is never constructed
[INFO] [stdout]   --> src/db/models.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Appointment {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateMatchInput` is never constructed
[INFO] [stdout]    --> src/db/models.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct UpdateMatchInput {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 06s
[INFO] running `Command { std: "docker" "inspect" "751884d0c7043f354d09edc7def6e7a60b7161e0ba43407a7e5cc9f11416fb1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "751884d0c7043f354d09edc7def6e7a60b7161e0ba43407a7e5cc9f11416fb1a", kill_on_drop: false }`
[INFO] [stdout] 751884d0c7043f354d09edc7def6e7a60b7161e0ba43407a7e5cc9f11416fb1a
