[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] testing ritesh089/tennis_scheduler against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fritesh089%2Ftennis_scheduler" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-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-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ritesh089/tennis_scheduler on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded blowfish v0.8.0
[INFO] [stderr]   Downloaded paperclip-macros v0.6.3
[INFO] [stderr]   Downloaded paperclip-core v0.6.2
[INFO] [stderr]   Downloaded bcrypt v0.10.1
[INFO] [stderr]   Downloaded actix-server v2.5.0
[INFO] [stderr]   Downloaded actix-cors v0.6.5
[INFO] [stderr]   Downloaded pq-sys v0.7.0
[INFO] [stderr]   Downloaded miniz_oxide v0.8.4
[INFO] [stderr]   Downloaded uuid v1.14.0
[INFO] [stderr]   Downloaded derive_more v0.99.19
[INFO] [stderr]   Downloaded diesel-derive-enum v2.1.0
[INFO] [stderr]   Downloaded actix-http v3.9.0
[INFO] [stderr]   Downloaded brotli-decompressor v4.0.2
[INFO] [stderr]   Downloaded actix-web v4.9.0
[INFO] [stderr]   Downloaded diesel v2.2.7
[INFO] [stderr]   Downloaded paperclip-actix v0.6.2
[INFO] [stderr]   Downloaded paperclip v0.8.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] de40841f57853723a9c75c6d3f6e0708aa363675131cb125bf4e6bae2d0fa35b
[INFO] running `Command { std: "docker" "start" "-a" "de40841f57853723a9c75c6d3f6e0708aa363675131cb125bf4e6bae2d0fa35b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "de40841f57853723a9c75c6d3f6e0708aa363675131cb125bf4e6bae2d0fa35b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de40841f57853723a9c75c6d3f6e0708aa363675131cb125bf4e6bae2d0fa35b", kill_on_drop: false }`
[INFO] [stdout] de40841f57853723a9c75c6d3f6e0708aa363675131cb125bf4e6bae2d0fa35b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7903d40f98bfb8d3084202297e1f991b150adb09a70ec7fec5551c8bf2852cda
[INFO] running `Command { std: "docker" "start" "-a" "7903d40f98bfb8d3084202297e1f991b150adb09a70ec7fec5551c8bf2852cda", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]    Compiling smallvec v1.14.0
[INFO] [stderr]    Compiling log v0.4.26
[INFO] [stderr]    Compiling bytes v1.10.0
[INFO] [stderr]    Compiling once_cell v1.20.3
[INFO] [stderr]    Compiling litemap v0.7.4
[INFO] [stderr]    Compiling serde v1.0.218
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling icu_properties_data v1.5.0
[INFO] [stderr]    Compiling zstd-safe v7.2.3
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling ryu v1.0.19
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling httparse v1.10.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling cc v1.2.15
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling miniz_oxide v0.8.4
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling tokio v1.43.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling actix-service v2.0.2
[INFO] [stderr]    Compiling brotli-decompressor v4.0.2
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling actix-utils v3.0.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling serde_json v1.0.139
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling flate2 v1.0.35
[INFO] [stderr]    Compiling local-channel v0.1.5
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling impl-more v0.1.9
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]    Compiling pq-sys v0.7.0
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling semver v1.0.25
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling brotli v6.0.0
[INFO] [stderr]    Compiling scheduled-thread-pool v0.2.7
[INFO] [stderr]    Compiling time v0.3.37
[INFO] [stderr]    Compiling cipher v0.3.0
[INFO] [stderr]    Compiling paperclip v0.8.2
[INFO] [stderr]    Compiling zstd-sys v2.0.14+zstd.1.5.7
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling blowfish v0.8.0
[INFO] [stderr]    Compiling r2d2 v0.8.10
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling uuid v1.14.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling bcrypt v0.10.1
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling tokio-util v0.7.13
[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 zstd v0.13.3
[INFO] [stderr]    Compiling paperclip-macros v0.6.3
[INFO] [stderr]    Compiling actix-codec v0.5.2
[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 serde_derive v1.0.218
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[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 diesel-derive-enum v2.1.0
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.5
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling dsl_auto_type v0.1.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling diesel_derives v2.2.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling actix-server v2.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.39
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling diesel v2.2.7
[INFO] [stderr]    Compiling actix-http v3.9.0
[INFO] [stderr]    Compiling actix-web v4.9.0
[INFO] [stderr]    Compiling paperclip-core v0.6.2
[INFO] [stderr]    Compiling actix-cors v0.6.5
[INFO] [stderr]    Compiling paperclip-actix v0.6.2
[INFO] [stderr]    Compiling 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 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: `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: 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: `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: 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 40s
[INFO] running `Command { std: "docker" "inspect" "7903d40f98bfb8d3084202297e1f991b150adb09a70ec7fec5551c8bf2852cda", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7903d40f98bfb8d3084202297e1f991b150adb09a70ec7fec5551c8bf2852cda", kill_on_drop: false }`
[INFO] [stdout] 7903d40f98bfb8d3084202297e1f991b150adb09a70ec7fec5551c8bf2852cda
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4666cb4598fc4d55f698f7c712eb48f2bad0187ed16378e41d65ddc2dc6131cc
[INFO] running `Command { std: "docker" "start" "-a" "4666cb4598fc4d55f698f7c712eb48f2bad0187ed16378e41d65ddc2dc6131cc", kill_on_drop: false }`
[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] [stderr]    Compiling tennis_scheduler v0.1.0 (/opt/rustwide/workdir)
[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: 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: 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: `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: 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: 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: 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: 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: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[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 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] [stderr] error: could not compile `tennis_scheduler` (test "reject_match_test") due to 1 previous error
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/opt/rustwide/target/debug/deps/rustcMkDdg1/symbols.o" "<9 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libtest-*,libgetopts-*,librustc_std_workspace_std-*}.rlib" "/opt/rustwide/target/debug/deps/{libtennis_scheduler-8f21722d05111539,libbcrypt-fd7b8016301bc47d,libbase64-ca04bc81345735d8,libblowfish-2477f4410492c460,libopaque_debug-342a7709f9760099,libcipher-55d927a033e639b1,libpaperclip-8b049c0a2cd13dc3,libpaperclip_actix-75e8e83c67440a2a,libfutures-10281799e6bca2fa,libfutures_executor-dae0afe4309bda5c,libpaperclip_core-376a1fceda7a6345,libserde_yaml-df2484e1335555e8,libunsafe_libyaml-ee31304e6444336c,libthiserror-4627142774880a48,libuuid-55d3ea1328fbb098,libgetrandom-f9308d09065d6401,libdotenv-cc0720b966868f2a,libdiesel-02cc9e8a95ef43c7,libr2d2-db3ab8fc2ada57fd,libscheduled_thread_pool-f29767b052e6b50e,libpq_sys-e31d6bd21c9f9851,libchrono-218938052485bc5d,libnum_traits-23f2965e3f41983a,libiana_time_zone-e7d8ac375b0183ef,libactix_web-ddb074470bb1c53a,libimpl_more-0b3a882d0920a1fa,liburl-99b9ca6208589ff7,libidna-f44aaf80d1bf8e7c,libidna_adapter-e1e336abbb98ba07,libicu_normalizer-f947413ff05b67a8,libicu_normalizer_data-4b5c44456cc627ca,libwrite16-15146d2aa47160d5,libutf8_iter-59a8409a508f6435,libutf16_iter-c1af3ddfa7e5f3a7,libicu_properties-24691d542679b497,libicu_properties_data-67051a8c54b1360e,libicu_locid_transform-5b82d126873281ea,libicu_locid_transform_data-9f3f28f86fe9fd7b,libicu_collections-ac6bb849867890ef,libicu_provider-1b9e94ab2dc27869,libicu_locid-95362b3d75d2cdfd,liblitemap-437542e65e6f1fa7,libtinystr-205bb2bfb0c07d3e,libzerovec-7dcd67f22e2662e1,libwriteable-4c6ecafd704edc02,libyoke-a0d3315c34e2f1b1,libzerofrom-4a3a3dc1f9d9870c,libstable_deref_trait-f21eb645b5f1a504,libserde_urlencoded-8115e809d18e0b72,libform_urlencoded-d1717968e1495eb5,libserde_json-781f0c3e1c36ef56,libryu-c1d3b0007143e987,libactix_server-fa687f2d922c10f3,libactix_router-289de6d79619978e,libregex-906d2c1509d9f694,libregex_automata-e74f9badc1c27478,libaho_corasick-94dee27b416f3169,libregex_syntax-b63f40d8dd8ed2c8,libserde-d28151c2f44b6839,libcookie-ec59c3edcdfac279,libtime-3dc40510fdfbc2ea,libtime_core-0af53189a01a0fb9,libnum_conv-011f38542da43a44,libderanged-57c6316ec85985c9,libpowerfmt-6dad2d624cb624e5,libactix_http-eafeb91c49c2c35f,librand-f92e7f52af85de1d,librand_chacha-b88c58e57b80f693,libppv_lite86-6ba18eb566673e16,librand_core-d4dc901821c3e30e,libhttparse-ac28d08c843b59aa,libbrotli-f1c66141d9a8b473,libbrotli_decompressor-45a62e721795b49d,liballoc_stdlib-c6288fa278bc62cd,liballoc_no_stdlib-2aa0c89147eaf2d9,libhttpdate-b0fc619c413f3320,libsha1-ff549ebb639b93b9,libcpufeatures-5bf216af22f7e564,libdigest-a7dbc0036c5736c2,libblock_buffer-5ac0706ccca62eaa,libcrypto_common-ffc9dcdc747271bc,libgeneric_array-e6237bd925f74c5d,libtypenum-6d6c2fc3f1711c63,libbase64-6d64914d1112fcae,liblocal_channel-af7125b9242debaf,libbytestring-e76176612c679f58,libencoding_rs-3b3be7a4a36f981e,liblanguage_tags-3669b5589d5349bc,libahash-14e2e0e89ea459a1,libgetrandom-0409b22410f17daf,libzerocopy-94f1cb5f2928955f,libbyteorder-cb17835726abdeba,libmime-ce0319f53a2119cd,libpercent_encoding-64aa0cd0dae32c77,libh2-d9703ed3c808c6dd,libindexmap-68b94afe18ae0cef,libequivalent-da934a6694ab360d,libhashbrown-0fbf5d7969e72995,libfutures_util-f77d0d97471ecec5,libfutures_io-5a2f8f0fec9840ef,libslab-30c737ad89ec3345,libfutures_channel-d09cd48edea8b58b,libfutures_task-3c0c581cbf2d293a,libpin_utils-9ccfc56f2c5b0c36,libzstd-cd1c7fb537c12b84,libzstd_safe-42d224605761cf02,libzstd_sys-f703d81b3bba2515,libflate2-16fa1a79941ee033,libminiz_oxide-1de453a01614c9ab,libadler2-ff9e0c97665bd463,libcrc32fast-c9716594718437ef,libactix_service-0cc0e5bbba5c56da,libactix_codec-b6d7675671cc8430,libtracing-edd92e2e4e2cbbfb,libtracing_core-1543ba90d9e610d3,libonce_cell-f8ddf2aa81977c75,libmemchr-c8afc9b06af24d19,libbitflags-06974a8eb3c6b941,libtokio_util-527ac6e8afd7f370,libfutures_sink-c898839eae976927,libactix_utils-f6103749c4b30020,liblocal_waker-4d09614f6c21b85d,libactix_rt-9f4e5072ed40cbcd,libtokio-4b103fe04c70aeda,libsignal_hook_registry-b0a13e8bea8eb533,libsocket2-88537c85bd90203c,libmio-3d8a23cc2ca7d63b,liblog-2e3fc4e20e869124,libparking_lot-3deb8f562a849c25,libparking_lot_core-da868f1471cd375d,liblibc-6240d51d52ec63d9,libcfg_if-cfb20768436a17c8,libsmallvec-ac6a16a9fe5c9fad,liblock_api-6e1697359a9bb5cd,libscopeguard-eb77609449485574,libpin_project_lite-8cda137948184924,libfutures_core-8350092af0f0339b,libhttp-057dd9f3813fd521,libitoa-2f6c1bdd8040d503,libbytes-5158d4d8b3a0d0c8,libfnv-77106f9ed4748ca6}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lpq" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/opt/rustwide/target/debug/deps/rustcMkDdg1/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/target/debug/build/zstd-sys-808ba80389f667e8/out" "-L" "/usr/lib/x86_64-linux-gnu" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/reject_match_test-804338a0a4e62a59" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: collect2: fatal error: ld terminated with signal 9 [Killed]
[INFO] [stdout]           compilation terminated.
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[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: `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: `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: 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: 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] running `Command { std: "docker" "inspect" "4666cb4598fc4d55f698f7c712eb48f2bad0187ed16378e41d65ddc2dc6131cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4666cb4598fc4d55f698f7c712eb48f2bad0187ed16378e41d65ddc2dc6131cc", kill_on_drop: false }`
[INFO] [stdout] 4666cb4598fc4d55f698f7c712eb48f2bad0187ed16378e41d65ddc2dc6131cc
