[INFO] cloning repository https://github.com/oliveira-ramon/netkicks-api
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oliveira-ramon/netkicks-api" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliveira-ramon%2Fnetkicks-api", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliveira-ramon%2Fnetkicks-api'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bdc951d3b399a31d6e0ee73ffe7cd051ca12bad8
[INFO] checking oliveira-ramon/netkicks-api against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foliveira-ramon%2Fnetkicks-api" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oliveira-ramon/netkicks-api
[INFO] finished tweaking git repo https://github.com/oliveira-ramon/netkicks-api
[INFO] tweaked toml for git repo https://github.com/oliveira-ramon/netkicks-api written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oliveira-ramon/netkicks-api on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oliveira-ramon/netkicks-api 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" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio_schedule v0.3.2
[INFO] [stderr]   Downloaded tokio-pg-mapper-derive v0.2.0
[INFO] [stderr]   Downloaded tokio-pg-mapper v0.2.0
[INFO] [stderr]   Downloaded deadpool-postgres v0.14.1
[INFO] [stderr]   Downloaded deadpool-redis v0.22.0
[INFO] [stderr]   Downloaded mini-internal v0.1.45
[INFO] [stderr]   Downloaded miniserde v0.1.45
[INFO] [stderr]   Downloaded async-stripe-webhook v1.0.0-rc.0
[INFO] [stderr]   Downloaded async-stripe-types v1.0.0-rc.0
[INFO] [stderr]   Downloaded async-stripe-client-core v1.0.0-rc.0
[INFO] [stderr]   Downloaded async-stripe-checkout v1.0.0-rc.0
[INFO] [stderr]   Downloaded serde_qs v1.0.0-rc.5
[INFO] [stderr]   Downloaded async-stripe-shared v1.0.0-rc.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 18ecf6f92d217369480d271669d676be6446533b996d604ab41f09e329db1dfa
[INFO] running `Command { std: "docker" "start" "-a" "18ecf6f92d217369480d271669d676be6446533b996d604ab41f09e329db1dfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "18ecf6f92d217369480d271669d676be6446533b996d604ab41f09e329db1dfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18ecf6f92d217369480d271669d676be6446533b996d604ab41f09e329db1dfa", kill_on_drop: false }`
[INFO] [stdout] 18ecf6f92d217369480d271669d676be6446533b996d604ab41f09e329db1dfa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7dd7061802b3ebce83c9a09222ca60a1cb631a3d40a4cec7a7230c53f01c792e
[INFO] running `Command { std: "docker" "start" "-a" "7dd7061802b3ebce83c9a09222ca60a1cb631a3d40a4cec7a7230c53f01c792e", kill_on_drop: false }`
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling find-msvc-tools v0.1.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling cc v1.2.52
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]    Compiling miniserde v0.1.45
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling mini-internal v0.1.45
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking serde_json v1.0.148
[INFO] [stderr]     Checking smol_str v0.3.2
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]     Checking siphasher v1.0.1
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]     Checking postgres-protocol v0.6.9
[INFO] [stderr]     Checking phf_shared v0.13.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking async-stripe-types v1.0.0-rc.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]    Compiling bytestring v1.5.0
[INFO] [stderr]     Checking actix-service v2.0.3
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling regex-lite v0.1.8
[INFO] [stderr]    Compiling fallible-iterator v0.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking serde_qs v1.0.0-rc.5
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking async-stripe-shared v1.0.0-rc.0
[INFO] [stderr]     Checking postgres-types v0.2.11
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]     Checking whoami v1.6.1
[INFO] [stderr]     Checking tokio-postgres v0.7.15
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling struct_iterable_internal v0.1.1
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking deadpool-postgres v0.14.1
[INFO] [stderr]     Checking tokio-pg-mapper v0.2.0
[INFO] [stderr]     Checking tokio_schedule v0.3.2
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]    Compiling struct_iterable_derive v0.1.0
[INFO] [stderr]     Checking struct_iterable v0.1.1
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]    Compiling tokio-pg-mapper-derive v0.2.0
[INFO] [stderr]     Checking actix-http v3.11.2
[INFO] [stderr]     Checking redis v0.32.7
[INFO] [stderr]     Checking actix-web v4.12.1
[INFO] [stderr]     Checking actix-web-httpauth v0.8.2
[INFO] [stderr]     Checking deadpool-redis v0.22.0
[INFO] [stderr]     Checking async-stripe-client-core v1.0.0-rc.0
[INFO] [stderr]     Checking async-stripe-checkout v1.0.0-rc.0
[INFO] [stderr]     Checking async-stripe-webhook v1.0.0-rc.0
[INFO] [stderr]     Checking netkicks-api-actix-postgres v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `User`
[INFO] [stdout]  --> src/utils.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{MatchEvent, MatchSummary, User, PLAYER_LEVELS};
[INFO] [stdout]   |                                               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:41:25
[INFO] [stdout]    |
[INFO] [stdout] 41 |         their_points += (my_points * -1);
[INFO] [stdout]    |                         ^              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         their_points += (my_points * -1);
[INFO] [stdout] 41 +         their_points += my_points * -1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |         my_points += (their_points * -1);
[INFO] [stdout]    |                      ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -         my_points += (their_points * -1);
[INFO] [stdout] 46 +         my_points += their_points * -1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut win = (their_points / my_points);
[INFO] [stdout]    |                   ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 58 -     let mut win = (their_points / my_points);
[INFO] [stdout] 58 +     let mut win = their_points / my_points ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:228:15
[INFO] [stdout]     |
[INFO] [stdout] 228 |     if let Ok(mut game_match) = database::match_get(&db_pool, Option::from(path.0), None).await {
[INFO] [stdout]     |               ----^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `User`
[INFO] [stdout]  --> src/utils.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{MatchEvent, MatchSummary, User, PLAYER_LEVELS};
[INFO] [stdout]   |                                               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:41:25
[INFO] [stdout]    |
[INFO] [stdout] 41 |         their_points += (my_points * -1);
[INFO] [stdout]    |                         ^              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         their_points += (my_points * -1);
[INFO] [stdout] 41 +         their_points += my_points * -1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |         my_points += (their_points * -1);
[INFO] [stdout]    |                      ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 46 -         my_points += (their_points * -1);
[INFO] [stdout] 46 +         my_points += their_points * -1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/utils.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut win = (their_points / my_points);
[INFO] [stdout]    |                   ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 58 -     let mut win = (their_points / my_points);
[INFO] [stdout] 58 +     let mut win = their_points / my_points ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:472:52
[INFO] [stdout]     |
[INFO] [stdout] 472 | async fn user_get_history(path: web::Path<(i32,)>, mut query: web::Query<RankingQueryOptions>, db_pool: Data<Pool>, redis_pool: Dat...
[INFO] [stdout]     |                                                    ----^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:501:55
[INFO] [stdout]     |
[INFO] [stdout] 501 | pub async fn user_get_matches(path: web::Path<(i32,)>,mut query: web::Query<RankingQueryOptions>,db_pool: Data<Pool>, redis_pool: D...
[INFO] [stdout]     |                                                       ----^^^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:745:53
[INFO] [stdout]     |
[INFO] [stdout] 745 | async fn user_update_subscription(req: HttpRequest, mut payload: web::Bytes, db_pool: Data<Pool>) -> HttpResponse {
[INFO] [stdout]     |                                                     ----^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:228:15
[INFO] [stdout]     |
[INFO] [stdout] 228 |     if let Ok(mut game_match) = database::match_get(&db_pool, Option::from(path.0), None).await {
[INFO] [stdout]     |               ----^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:472:52
[INFO] [stdout]     |
[INFO] [stdout] 472 | async fn user_get_history(path: web::Path<(i32,)>, mut query: web::Query<RankingQueryOptions>, db_pool: Data<Pool>, redis_pool: Dat...
[INFO] [stdout]     |                                                    ----^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/database.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 290 | /     match client.execute(MATCH_INSERT, &[&m.home_team, &m.away_team, &m.server, &m.duration, &m.name, &match_token]).await {
[INFO] [stdout] 291 | |         Ok(_) => { return Ok(()) }
[INFO] [stdout] 292 | |         Err(e) => {
[INFO] [stdout] 293 | |             let a = e.as_db_error();
[INFO] [stdout] ...   |
[INFO] [stdout] 296 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 297 |
[INFO] [stdout] 298 |       Err(ErrorForbidden(""))
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:501:55
[INFO] [stdout]     |
[INFO] [stdout] 501 | pub async fn user_get_matches(path: web::Path<(i32,)>,mut query: web::Query<RankingQueryOptions>,db_pool: Data<Pool>, redis_pool: D...
[INFO] [stdout]     |                                                       ----^^^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/database.rs:445:21
[INFO] [stdout]     |
[INFO] [stdout] 445 |                 let mut record = TeamHistoryRecord::from_row_custom(row);
[INFO] [stdout]     |                     ----^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handlers.rs:745:53
[INFO] [stdout]     |
[INFO] [stdout] 745 | async fn user_update_subscription(req: HttpRequest, mut payload: web::Bytes, db_pool: Data<Pool>) -> HttpResponse {
[INFO] [stdout]     |                                                     ----^^^^^^^
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/database.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 290 | /     match client.execute(MATCH_INSERT, &[&m.home_team, &m.away_team, &m.server, &m.duration, &m.name, &match_token]).await {
[INFO] [stdout] 291 | |         Ok(_) => { return Ok(()) }
[INFO] [stdout] 292 | |         Err(e) => {
[INFO] [stdout] 293 | |             let a = e.as_db_error();
[INFO] [stdout] ...   |
[INFO] [stdout] 296 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 297 |
[INFO] [stdout] 298 |       Err(ErrorForbidden(""))
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/database.rs:445:21
[INFO] [stdout]     |
[INFO] [stdout] 445 |                 let mut record = TeamHistoryRecord::from_row_custom(row);
[INFO] [stdout]     |                     ----^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deadpool_redis::redis::AsyncCommands`
[INFO] [stdout]  --> src/scheduler.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use deadpool_redis::redis::AsyncCommands;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `query` is never read
[INFO] [stdout]    --> src/database.rs:210:21
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let mut query = MATCH_GET_EVENTS.to_string();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 217 |         query = MATCH_GET_EVENTS.replace("[additional_where_clause]", "");
[INFO] [stdout]     |         ----- `query` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/database.rs:388:23
[INFO] [stdout]     |
[INFO] [stdout] 388 |             if let Ok(rows) = client.query(USER_INCREMENT_STATISTICS_IN_USER_TEAM_HISTORY,
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `redis_pool`
[INFO] [stdout]    --> src/handlers.rs:204:73
[INFO] [stdout]     |
[INFO] [stdout] 204 | ... db_pool: Data<Pool>, redis_pool: Data<Option<deadpool_redis::Pool>>) -> HttpResponse {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_redis_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/database.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let a = e.as_db_error();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_pool`
[INFO] [stdout]    --> src/handlers.rs:317:63
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...ry<RankingQueryOptions>, db_pool: Data<Pool>, redis_pool: Data<Option<deadpool_redis::Pool>>) -> HttpResponse {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cache_tag` is never read
[INFO] [stdout]    --> src/handlers.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let mut cache_tag: String = String::new();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 358 |             cache_tag = format!("ranking:{}:{}", mode, country);
[INFO] [stdout]     |             --------- `cache_tag` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]     --> src/database.rs:1042:15
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     if let Ok(rows) = client.query(USER_RENEW_PREMIUM, &[&customer_email]).await {
[INFO] [stdout]      |               ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `deadpool_redis::redis::AsyncCommands`
[INFO] [stdout]  --> src/scheduler.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use deadpool_redis::redis::AsyncCommands;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `query` is never read
[INFO] [stdout]    --> src/database.rs:210:21
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let mut query = MATCH_GET_EVENTS.to_string();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 217 |         query = MATCH_GET_EVENTS.replace("[additional_where_clause]", "");
[INFO] [stdout]     |         ----- `query` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]    --> src/database.rs:388:23
[INFO] [stdout]     |
[INFO] [stdout] 388 |             if let Ok(rows) = client.query(USER_INCREMENT_STATISTICS_IN_USER_TEAM_HISTORY,
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `redis_pool`
[INFO] [stdout]    --> src/handlers.rs:204:73
[INFO] [stdout]     |
[INFO] [stdout] 204 | ... db_pool: Data<Pool>, redis_pool: Data<Option<deadpool_redis::Pool>>) -> HttpResponse {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_redis_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/database.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let a = e.as_db_error();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_pool`
[INFO] [stdout]    --> src/handlers.rs:317:63
[INFO] [stdout]     |
[INFO] [stdout] 317 | ...ry<RankingQueryOptions>, db_pool: Data<Pool>, redis_pool: Data<Option<deadpool_redis::Pool>>) -> HttpResponse {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cache_tag` is never read
[INFO] [stdout]    --> src/handlers.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let mut cache_tag: String = String::new();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 358 |             cache_tag = format!("ranking:{}:{}", mode, country);
[INFO] [stdout]     |             --------- `cache_tag` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rows`
[INFO] [stdout]     --> src/database.rs:1042:15
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     if let Ok(rows) = client.query(USER_RENEW_PREMIUM, &[&customer_email]).await {
[INFO] [stdout]      |               ^^^^ help: if this is intentional, prefix it with an underscore: `_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:93:43
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn calculate_user_time_spent_in_match(mut events: &Vec<MatchEvent>, match_duration: i32) -> i32 {
[INFO] [stdout]    |                                           ----^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/utils.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |     let points = 0;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `premium_ends_on`
[INFO] [stdout]    --> src/utils.rs:204:34
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn check_team_premium_status(premium_ends_on: Option<NaiveDateTime>) -> Option<bool> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_premium_ends_on`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNTRY_LIST_CACHE_EXPIRY_PERIOD` is never used
[INFO] [stdout]  --> src/redis.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const COUNTRY_LIST_CACHE_EXPIRY_PERIOD: u64 = 7200;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_KEY_TEAM_MATCHES` is never used
[INFO] [stdout]   --> src/redis.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const CACHE_KEY_TEAM_MATCHES: &str = "team:matches:latest:";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StripePayment` is never constructed
[INFO] [stdout]  --> src/models.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct StripePayment {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StripeEvent` is never constructed
[INFO] [stdout]   --> src/models.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct StripeEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SripeEventData` is never constructed
[INFO] [stdout]   --> src/models.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SripeEventData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BillingDetails` is never constructed
[INFO] [stdout]   --> src/models.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct BillingDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchHistoryRecord` is never constructed
[INFO] [stdout]    --> src/models.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct MatchHistoryRecord {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Server` is never constructed
[INFO] [stdout]    --> src/models.rs:504:12
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub struct Server {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_team_premium_status` is never used
[INFO] [stdout]    --> src/utils.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn check_team_premium_status(premium_ends_on: Option<NaiveDateTime>) -> Option<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:93:43
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn calculate_user_time_spent_in_match(mut events: &Vec<MatchEvent>, match_duration: i32) -> i32 {
[INFO] [stdout]    |                                           ----^^^^^^
[INFO] [stdout]    |                                           |
[INFO] [stdout]    |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `points`
[INFO] [stdout]    --> src/utils.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |     let points = 0;
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `premium_ends_on`
[INFO] [stdout]    --> src/utils.rs:204:34
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn check_team_premium_status(premium_ends_on: Option<NaiveDateTime>) -> Option<bool> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_premium_ends_on`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNTRY_LIST_CACHE_EXPIRY_PERIOD` is never used
[INFO] [stdout]  --> src/redis.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const COUNTRY_LIST_CACHE_EXPIRY_PERIOD: u64 = 7200;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_KEY_TEAM_MATCHES` is never used
[INFO] [stdout]   --> src/redis.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const CACHE_KEY_TEAM_MATCHES: &str = "team:matches:latest:";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StripePayment` is never constructed
[INFO] [stdout]  --> src/models.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct StripePayment {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StripeEvent` is never constructed
[INFO] [stdout]   --> src/models.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct StripeEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SripeEventData` is never constructed
[INFO] [stdout]   --> src/models.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SripeEventData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BillingDetails` is never constructed
[INFO] [stdout]   --> src/models.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct BillingDetails {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchHistoryRecord` is never constructed
[INFO] [stdout]    --> src/models.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct MatchHistoryRecord {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Server` is never constructed
[INFO] [stdout]    --> src/models.rs:504:12
[INFO] [stdout]     |
[INFO] [stdout] 504 | pub struct Server {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_team_premium_status` is never used
[INFO] [stdout]    --> src/utils.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn check_team_premium_status(premium_ends_on: Option<NaiveDateTime>) -> Option<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 05s
[INFO] running `Command { std: "docker" "inspect" "7dd7061802b3ebce83c9a09222ca60a1cb631a3d40a4cec7a7230c53f01c792e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7dd7061802b3ebce83c9a09222ca60a1cb631a3d40a4cec7a7230c53f01c792e", kill_on_drop: false }`
[INFO] [stdout] 7dd7061802b3ebce83c9a09222ca60a1cb631a3d40a4cec7a7230c53f01c792e
