[INFO] cloning repository https://github.com/maxim-mertsalov/rust-auth-microservice
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maxim-mertsalov/rust-auth-microservice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxim-mertsalov%2Frust-auth-microservice", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxim-mertsalov%2Frust-auth-microservice'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 521597528f78dc8e2878aaf327e60bdf3cf46060
[INFO] checking maxim-mertsalov/rust-auth-microservice against 36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6 for pr-160581
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxim-mertsalov%2Frust-auth-microservice" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/maxim-mertsalov/rust-auth-microservice
[INFO] finished tweaking git repo https://github.com/maxim-mertsalov/rust-auth-microservice
[INFO] tweaked toml for git repo https://github.com/maxim-mertsalov/rust-auth-microservice written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maxim-mertsalov/rust-auth-microservice on toolchain 36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/maxim-mertsalov/rust-auth-microservice 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" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e
[INFO] running `Command { std: "docker" "start" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e" "/opt/rustwide/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e" "/opt/rustwide/cargo-home/bin/cargo" "+36e0a7eac2392bdd51fab6e7ff1d8c0e42d33bf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling zerocopy v0.8.30
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]    Compiling tracing-core v0.1.35
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking tracing v0.1.42
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling cc v1.2.47
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling bytestring v1.5.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]    Compiling aws-lc-sys v0.35.0
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]    Compiling regex-lite v0.1.8
[INFO] [stderr]    Compiling aws-lc-rs v1.15.2
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]     Checking bb8 v0.9.1
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]     Checking arcstr v1.2.0
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]    Compiling validator_derive v0.20.0
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking cookie v0.16.2
[INFO] [stderr]     Checking cobs v0.3.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking email-encoding v0.4.1
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]     Checking hostname v0.4.1
[INFO] [stderr]     Checking quoted_printable v0.5.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking postcard v1.1.3
[INFO] [stderr]     Checking bcrypt v0.18.0
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking validator v0.20.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking lettre v0.11.19
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking actix-http v3.11.2
[INFO] [stderr]     Checking redis v1.0.2
[INFO] [stderr]     Checking sqlx-postgres v0.8.6
[INFO] [stderr]     Checking actix-web v4.12.1
[INFO] [stderr]     Checking jsonwebtoken v10.2.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking bb8-redis v0.26.0
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking auth_service v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Responder`
[INFO] [stdout]  --> src/errors/app_error.rs:3:52
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::{HttpResponse, HttpResponseBuilder, Responder, ResponseError};
[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: `std::error::Error`
[INFO] [stdout]  --> src/api/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponseBuilder` and `ResponseError`
[INFO] [stdout]  --> src/api/mod.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::{web, HttpResponse, HttpResponseBuilder, Responder, ResponseError};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Session`
[INFO] [stdout]  --> src/api/auth/sessions.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::sessions::{MinFieldsSession, Session};
[INFO] [stdout]   |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/api/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     ;
[INFO] [stdout]    |     ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Session` and `TERMINATED_SESSION_EXPIRATION_DAYS`
[INFO] [stdout]  --> src/services/auth/session.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::auth::sessions::{MinFieldsSession, Session, SessionStatus, TERMINATED_SESSION_EXPIRATION_DAYS};
[INFO] [stdout]   |                                                       ^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::auth::users::User`
[INFO] [stdout]  --> src/services/auth/utils.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::users::User;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/services/auth/signup.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Address`
[INFO] [stdout]  --> src/services/email_sender/smtp_sender.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use lettre::{Address, AsyncSmtpTransport, AsyncTransport, Message, Tokio1Executor};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Responder`
[INFO] [stdout]  --> src/errors/app_error.rs:3:52
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::{HttpResponse, HttpResponseBuilder, Responder, ResponseError};
[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: `std::error::Error`
[INFO] [stdout]  --> src/api/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponseBuilder` and `ResponseError`
[INFO] [stdout]  --> src/api/mod.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_web::{web, HttpResponse, HttpResponseBuilder, Responder, ResponseError};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Session`
[INFO] [stdout]  --> src/api/auth/sessions.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::sessions::{MinFieldsSession, Session};
[INFO] [stdout]   |                                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/api/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     ;
[INFO] [stdout]    |     ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Session` and `TERMINATED_SESSION_EXPIRATION_DAYS`
[INFO] [stdout]  --> src/services/auth/session.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::models::auth::sessions::{MinFieldsSession, Session, SessionStatus, TERMINATED_SESSION_EXPIRATION_DAYS};
[INFO] [stdout]   |                                                       ^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::auth::users::User`
[INFO] [stdout]  --> src/services/auth/utils.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::users::User;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/services/auth/signup.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_allocvec`
[INFO] [stdout]  --> src/repositories/auth/signin.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use postcard::{to_allocvec};
[INFO] [stdout]   |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SignInState`
[INFO] [stdout]  --> src/repositories/auth/signin.rs:7:50
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::signin::{SignInSession, SignInState, SIGNIN_SESSION_LIFETIME, SIGNIN_SESSION_PREFIX};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Address`
[INFO] [stdout]  --> src/services/email_sender/smtp_sender.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use lettre::{Address, AsyncSmtpTransport, AsyncTransport, Message, Tokio1Executor};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_allocvec`
[INFO] [stdout]  --> src/repositories/auth/signin.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use postcard::{to_allocvec};
[INFO] [stdout]   |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SignInState`
[INFO] [stdout]  --> src/repositories/auth/signin.rs:7:50
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::auth::signin::{SignInSession, SignInState, SIGNIN_SESSION_LIFETIME, SIGNIN_SESSION_PREFIX};
[INFO] [stdout]   |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/dto/auth/user_management.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/dto/auth/password_resets.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValidationErrors`
[INFO] [stdout]  --> src/utils/validators.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use validator::{ValidationError, ValidationErrors};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/utils/scope_validator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth`
[INFO] [stdout]   --> src/main.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::api::{auth};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/dto/auth/user_management.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/dto/auth/password_resets.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValidationErrors`
[INFO] [stdout]  --> src/utils/validators.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use validator::{ValidationError, ValidationErrors};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/utils/scope_validator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `auth`
[INFO] [stdout]   --> src/main.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::api::{auth};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/api/test.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 | async fn test_argon2(req_body: String, state: web::Data<Arc<AppState>>) -> Result<HttpResponse, AppError> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/api/test.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 | async fn test_argon2(req_body: String, state: web::Data<Arc<AppState>>) -> Result<HttpResponse, AppError> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signup.rs:39:34
[INFO] [stdout]    |
[INFO] [stdout] 39 |     async fn init_session(&self, app_state: &AppState, user_req: InitSessionReq) -> Result<InitSessionRes, AppError> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signup.rs:67:47
[INFO] [stdout]    |
[INFO] [stdout] 67 |     async fn init_session_with_profile(&self, app_state: &AppState, user_req: InitProfileReq) -> Result<InitProfileRes, AppError> {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:102:41
[INFO] [stdout]     |
[INFO] [stdout] 102 |     async fn set_profile_session(&self, app_state: &AppState, user_req: SetProfileReq) -> Result<SetProfileRes, AppError> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:130:39
[INFO] [stdout]     |
[INFO] [stdout] 130 |     async fn set_email_session(&self, app_state: &AppState, user_req: SetEmailReq) -> Result<SetEmailRes, AppError> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:170:47
[INFO] [stdout]     |
[INFO] [stdout] 170 |     async fn resend_email_verification(&self, app_state: &AppState, user_req: ResendEmailCodeReq) -> Result<ResendEmailCodeRes, App...
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:210:42
[INFO] [stdout]     |
[INFO] [stdout] 210 |     async fn verify_email_session(&self, app_state: &AppState, user_req: VerifyEmailReq) -> Result<VerifyEmailRes, AppError> {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |     async fn set_password_session(&self, app_state: &AppState, user_req: SetPasswordReq) -> Result<SetPasswordRes, AppError> {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/services/auth/signup.rs:281:18
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let Some(mut session) = self.repos.signup_repo.get(&user_req.session_token).await? else {
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     async fn return_back(&self, app_state: &AppState, user_req: ReturnBackSessionReq) -> Result<ReturnBackSessionRes, AppError> {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signin.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |     async fn init_with_email(&self, app_state: &AppState, user_req: InitEmailReq) -> Result<InitEmailRes, AppError> {
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:113:38
[INFO] [stdout]     |
[INFO] [stdout] 113 |     async fn get_auth_methods(&self, app_state: &AppState, user_req: GetAuthMethodsReq) -> Result<GetAuthMethodsRes, AppError> {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:149:40
[INFO] [stdout]     |
[INFO] [stdout] 149 |     async fn select_auth_method(&self, app_state: &AppState, user_req: SelectAuthMethodReq) -> Result<SelectAuthMethodRes, AppError> {
[INFO] [stdout]     |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:211:34
[INFO] [stdout]     |
[INFO] [stdout] 211 |     async fn set_password(&self, app_state: &AppState, user_req: SetPasswordReq) -> Result<SetPasswordRes, AppError> {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:263:41
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn get_recovery_emails(&self, app_state: &AppState, user_req: GetRecoveryEmailsReq) -> Result<GetRecoveryEmailsRes, AppEr...
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:297:43
[INFO] [stdout]     |
[INFO] [stdout] 297 |     async fn select_recovery_email(&self, app_state: &AppState, user_req: SelectRecoveryEmailReq) -> Result<SelectRecoveryEmailRes,...
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:344:48
[INFO] [stdout]     |
[INFO] [stdout] 344 | ...very_email_code(&self, app_state: &AppState, user_req: VerifyRecoveryEmailCodeReq) -> Result<VerifyRecoveryEmailCodeRes, AppErro...
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/services/auth/signin.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let code = parts[1..parts.len()].join("");
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:394:39
[INFO] [stdout]     |
[INFO] [stdout] 394 |     async fn set_recovery_code(&self, app_state: &AppState, user_req: SetRecoveryCodeReq) -> Result<SetRecoveryCodeRes, AppError> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:454:34
[INFO] [stdout]     |
[INFO] [stdout] 454 |     async fn verify_email(&self, app_state: &AppState, user_req: VerifyEmailReq) -> Result<VerifyEmailRes, AppError> {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:505:33
[INFO] [stdout]     |
[INFO] [stdout] 505 |     async fn resend_code(&self, app_state: &AppState, user_req: ResendCodeReq) -> Result<ResendCodeRes, AppError> {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signup.rs:39:34
[INFO] [stdout]    |
[INFO] [stdout] 39 |     async fn init_session(&self, app_state: &AppState, user_req: InitSessionReq) -> Result<InitSessionRes, AppError> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signup.rs:67:47
[INFO] [stdout]    |
[INFO] [stdout] 67 |     async fn init_session_with_profile(&self, app_state: &AppState, user_req: InitProfileReq) -> Result<InitProfileRes, AppError> {
[INFO] [stdout]    |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:102:41
[INFO] [stdout]     |
[INFO] [stdout] 102 |     async fn set_profile_session(&self, app_state: &AppState, user_req: SetProfileReq) -> Result<SetProfileRes, AppError> {
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:130:39
[INFO] [stdout]     |
[INFO] [stdout] 130 |     async fn set_email_session(&self, app_state: &AppState, user_req: SetEmailReq) -> Result<SetEmailRes, AppError> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:170:47
[INFO] [stdout]     |
[INFO] [stdout] 170 |     async fn resend_email_verification(&self, app_state: &AppState, user_req: ResendEmailCodeReq) -> Result<ResendEmailCodeRes, App...
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:210:42
[INFO] [stdout]     |
[INFO] [stdout] 210 |     async fn verify_email_session(&self, app_state: &AppState, user_req: VerifyEmailReq) -> Result<VerifyEmailRes, AppError> {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |     async fn set_password_session(&self, app_state: &AppState, user_req: SetPasswordReq) -> Result<SetPasswordRes, AppError> {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/services/auth/signup.rs:281:18
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let Some(mut session) = self.repos.signup_repo.get(&user_req.session_token).await? else {
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signup.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     async fn return_back(&self, app_state: &AppState, user_req: ReturnBackSessionReq) -> Result<ReturnBackSessionRes, AppError> {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]   --> src/services/auth/signin.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |     async fn init_with_email(&self, app_state: &AppState, user_req: InitEmailReq) -> Result<InitEmailRes, AppError> {
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:113:38
[INFO] [stdout]     |
[INFO] [stdout] 113 |     async fn get_auth_methods(&self, app_state: &AppState, user_req: GetAuthMethodsReq) -> Result<GetAuthMethodsRes, AppError> {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:149:40
[INFO] [stdout]     |
[INFO] [stdout] 149 |     async fn select_auth_method(&self, app_state: &AppState, user_req: SelectAuthMethodReq) -> Result<SelectAuthMethodRes, AppError> {
[INFO] [stdout]     |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:211:34
[INFO] [stdout]     |
[INFO] [stdout] 211 |     async fn set_password(&self, app_state: &AppState, user_req: SetPasswordReq) -> Result<SetPasswordRes, AppError> {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:263:41
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn get_recovery_emails(&self, app_state: &AppState, user_req: GetRecoveryEmailsReq) -> Result<GetRecoveryEmailsRes, AppEr...
[INFO] [stdout]     |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:297:43
[INFO] [stdout]     |
[INFO] [stdout] 297 |     async fn select_recovery_email(&self, app_state: &AppState, user_req: SelectRecoveryEmailReq) -> Result<SelectRecoveryEmailRes,...
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:344:48
[INFO] [stdout]     |
[INFO] [stdout] 344 | ...very_email_code(&self, app_state: &AppState, user_req: VerifyRecoveryEmailCodeReq) -> Result<VerifyRecoveryEmailCodeRes, AppErro...
[INFO] [stdout]     |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/services/auth/signin.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let code = parts[1..parts.len()].join("");
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:394:39
[INFO] [stdout]     |
[INFO] [stdout] 394 |     async fn set_recovery_code(&self, app_state: &AppState, user_req: SetRecoveryCodeReq) -> Result<SetRecoveryCodeRes, AppError> {
[INFO] [stdout]     |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:454:34
[INFO] [stdout]     |
[INFO] [stdout] 454 |     async fn verify_email(&self, app_state: &AppState, user_req: VerifyEmailReq) -> Result<VerifyEmailRes, AppError> {
[INFO] [stdout]     |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app_state`
[INFO] [stdout]    --> src/services/auth/signin.rs:505:33
[INFO] [stdout]     |
[INFO] [stdout] 505 |     async fn resend_code(&self, app_state: &AppState, user_req: ResendCodeReq) -> Result<ResendCodeRes, AppError> {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Other` is never constructed
[INFO] [stdout]   --> src/errors/app_error.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AppError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Other(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `QueryError` is never constructed
[INFO] [stdout]  --> src/errors/db_error.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum DbError {
[INFO] [stdout]   |          ------- variant in this enum
[INFO] [stdout] 8 |     ConnectionError(String),
[INFO] [stdout] 9 |     QueryError(String),
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/errors/message_sender_error.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     SmtpError(String),
[INFO] [stdout]   |     --------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 4 -     SmtpError(String),
[INFO] [stdout] 4 +     SmtpError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/errors/message_sender_error.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Other(String),
[INFO] [stdout]   |     ----- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 5 -     Other(String),
[INFO] [stdout] 5 +     Other(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IncorrectCred` is never constructed
[INFO] [stdout]  --> src/errors/message_sender_error.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum MessageSenderError {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 3 |     IncorrectCred(String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HashingFailed` is never constructed
[INFO] [stdout]  --> src/errors/hash_error.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum HashError {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 5 |     InvalidHash(String),
[INFO] [stdout] 6 |     HashingFailed(String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HashError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pg`, `redis`, `require_email_confirmation`, and `enable_email_reset` are never read
[INFO] [stdout]   --> src/state/app_state.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pg: Arc<PgPool>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 14 |     redis: Arc<RedisPool>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     require_email_confirmation: bool, // if true email_sender confirmation is required after registration
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     enable_email_reset: bool, // if true changing emails is enabled
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_secret` is never read
[INFO] [stdout]   --> src/state/app_state.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct AppStateBuilder {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     hash_secret: Option<[u8; 16]>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pg`, `get_redis`, `is_email_confirmation_required`, and `is_email_reset_enabled` are never used
[INFO] [stdout]    --> src/state/app_state.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl AppState {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_pg(&self) -> Arc<PgPool> { self.pg.clone() }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_redis(&self) -> Arc<RedisPool> { self.redis.clone() }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn is_email_confirmation_required(&self) -> bool { self.require_email_confirmation }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |     pub fn is_email_reset_enabled(&self) -> bool { self.enable_email_reset }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init_session` is never used
[INFO] [stdout]   --> src/services/auth/signup.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait ISignUpService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 20 |     async fn init_session(&self, app_state: &AppState, user_req: InitSessionReq) -> Result<InitSessionRes, AppError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_STAGE` is never used
[INFO] [stdout]   --> src/services/auth/signup.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |         const CURRENT_STAGE: SignUpState = SignUpState::InitWithProfileStage;
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `test`, `send_forgot_password`, and `send_change_email` are never used
[INFO] [stdout]   --> src/services/email_sender/mod.rs:7:14
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait EmailSender {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout]  7 |     async fn test(&self);
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     async fn send_forgot_password(&self, to: &str, code: &str);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn send_change_email(&self, to: &str, code: &str);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_all_by_user` is never used
[INFO] [stdout]   --> src/repositories/auth/sessions.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait SessionRepository {
[INFO] [stdout]    |           ----------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     async fn delete_all_by_user(&self, user_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_expiration` is never used
[INFO] [stdout]   --> src/repositories/auth/tokens.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait TokenSessionRepository {
[INFO] [stdout]    |           ---------------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     async fn set_expiration(&self, refresh_token: &str, expire_in_days: i64) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ResetAuthRepository` is never used
[INFO] [stdout]  --> src/repositories/auth/reset_auth.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait ResetAuthRepository {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetAuthRepositoryRedis` is never constructed
[INFO] [stdout]   --> src/repositories/auth/reset_auth.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ResetAuthRepositoryRedis { pub pool: Arc<RedisPool> , }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_data` and `update_code` are never used
[INFO] [stdout]   --> src/repositories/auth/signup.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait SignUpRepository {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn update_data(&self, session_id: &str, user_data: &SignUpData) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn update_code(&self, session_id: &str, code: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `verify_email`, `get_by_user_id`, `get_count_of_emails`, and `delete_with_id` are never used
[INFO] [stdout]   --> src/repositories/auth/recovery_emails.rs:8:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait RecoveryEmailsRepository {
[INFO] [stdout]    |           ------------------------ methods in this trait
[INFO] [stdout]  8 |     async fn create(&self, user_id: &str, recovery_email: &str) -> Result<RecoveryEmails, DbError>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]  9 |     async fn verify_email(&self, email_id: &str) -> Result<Option<RecoveryEmails>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 10 |     async fn get_by_user_id(&self, user_id: &str) -> Result<Vec<RecoveryEmails>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn get_by_user_id_verified(&self, user_id: &str) -> Result<Vec<RecoveryEmails>, DbError>;
[INFO] [stdout] 12 |     async fn get_count_of_emails(&self, user_id: &str) -> Result<i64, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn exists_verified(&self, user_id: &str) -> Result<bool, DbError>;
[INFO] [stdout] 14 |     async fn delete_with_id(&self, email_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `get_by_user_id`, `get_count_of_codes`, and `delete_all_by_user` are never used
[INFO] [stdout]   --> src/repositories/auth/recovery_codes.rs:8:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait RecoveryCodesRepository {
[INFO] [stdout]    |           ----------------------- methods in this trait
[INFO] [stdout]  8 |     async fn create(&self, user_id: &str, recovery_codes: Vec<&str>) -> Result<Vec<RecoveryCodes>, DbError>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]  9 |     async fn get_by_user_id_and_prefix(&self, user_id: &str, recovery_code: &str) -> Result<Option<RecoveryCodes>, DbError>;
[INFO] [stdout] 10 |     async fn get_by_user_id(&self, user_id: &str) -> Result<Vec<RecoveryCodes>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn get_count_of_codes(&self, user_id: &str) -> Result<i64, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     async fn delete_all_by_user(&self, user_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_secret` is never read
[INFO] [stdout]   --> src/config/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct AppConfig{
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub hash_secret: String, // used for salting password hashes
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINATED_SESSION_EXPIRATION_DAYS` is never used
[INFO] [stdout]   --> src/models/auth/sessions.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const TERMINATED_SESSION_EXPIRATION_DAYS: i64 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetAuth` is never constructed
[INFO] [stdout]  --> src/models/auth/reset_auth.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ResetAuth {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESET_AUTH_PREFIX` is never used
[INFO] [stdout]  --> src/models/auth/reset_auth.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RESET_AUTH_PREFIX: &str = "reset_auth";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESET_AUTH_LIFETIME` is never used
[INFO] [stdout]   --> src/models/auth/reset_auth.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const RESET_AUTH_LIFETIME: i64 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `refresh_token` is never read
[INFO] [stdout]  --> src/dto/auth/user_management.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct DeleteUserReq {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     pub access_token: String,
[INFO] [stdout] 8 |     pub refresh_token: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeleteUserReq` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePasswordReq` is never constructed
[INFO] [stdout]  --> src/dto/auth/password_resets.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ChangePasswordReq {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePasswordRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ChangePasswordRes;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ForgotPasswordReq` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ForgotPasswordReq {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ForgotPasswordRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ForgotPasswordRes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitSessionReq` is never constructed
[INFO] [stdout]  --> src/dto/auth/signup.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct InitSessionReq {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitSessionRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/signup.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct InitSessionRes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_device_info` is never used
[INFO] [stdout]  --> src/utils/converter.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Converter {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new_device_info(http_req: HttpRequest) -> DeviceInfo {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `verify_password` is never used
[INFO] [stdout]   --> src/utils/hash.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Hasher {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub async fn verify_password(hash: String, password: String) -> Result<bool, HashError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Other` is never constructed
[INFO] [stdout]   --> src/errors/app_error.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AppError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Other(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `QueryError` is never constructed
[INFO] [stdout]  --> src/errors/db_error.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum DbError {
[INFO] [stdout]   |          ------- variant in this enum
[INFO] [stdout] 8 |     ConnectionError(String),
[INFO] [stdout] 9 |     QueryError(String),
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/errors/message_sender_error.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     SmtpError(String),
[INFO] [stdout]   |     --------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 4 -     SmtpError(String),
[INFO] [stdout] 4 +     SmtpError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/errors/message_sender_error.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Other(String),
[INFO] [stdout]   |     ----- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 5 -     Other(String),
[INFO] [stdout] 5 +     Other(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IncorrectCred` is never constructed
[INFO] [stdout]  --> src/errors/message_sender_error.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum MessageSenderError {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 3 |     IncorrectCred(String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MessageSenderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HashingFailed` is never constructed
[INFO] [stdout]  --> src/errors/hash_error.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum HashError {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] 5 |     InvalidHash(String),
[INFO] [stdout] 6 |     HashingFailed(String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HashError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pg`, `redis`, `require_email_confirmation`, and `enable_email_reset` are never read
[INFO] [stdout]   --> src/state/app_state.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pg: Arc<PgPool>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 14 |     redis: Arc<RedisPool>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     require_email_confirmation: bool, // if true email_sender confirmation is required after registration
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     enable_email_reset: bool, // if true changing emails is enabled
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_secret` is never read
[INFO] [stdout]   --> src/state/app_state.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct AppStateBuilder {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     hash_secret: Option<[u8; 16]>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pg`, `get_redis`, `is_email_confirmation_required`, and `is_email_reset_enabled` are never used
[INFO] [stdout]    --> src/state/app_state.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl AppState {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_pg(&self) -> Arc<PgPool> { self.pg.clone() }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_redis(&self) -> Arc<RedisPool> { self.redis.clone() }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn is_email_confirmation_required(&self) -> bool { self.require_email_confirmation }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 |     pub fn is_email_reset_enabled(&self) -> bool { self.enable_email_reset }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init_session` is never used
[INFO] [stdout]   --> src/services/auth/signup.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait ISignUpService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 20 |     async fn init_session(&self, app_state: &AppState, user_req: InitSessionReq) -> Result<InitSessionRes, AppError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_STAGE` is never used
[INFO] [stdout]   --> src/services/auth/signup.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |         const CURRENT_STAGE: SignUpState = SignUpState::InitWithProfileStage;
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `test`, `send_forgot_password`, and `send_change_email` are never used
[INFO] [stdout]   --> src/services/email_sender/mod.rs:7:14
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait EmailSender {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout]  7 |     async fn test(&self);
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     async fn send_forgot_password(&self, to: &str, code: &str);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn send_change_email(&self, to: &str, code: &str);
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_all_by_user` is never used
[INFO] [stdout]   --> src/repositories/auth/sessions.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait SessionRepository {
[INFO] [stdout]    |           ----------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     async fn delete_all_by_user(&self, user_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_expiration` is never used
[INFO] [stdout]   --> src/repositories/auth/tokens.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait TokenSessionRepository {
[INFO] [stdout]    |           ---------------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     async fn set_expiration(&self, refresh_token: &str, expire_in_days: i64) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ResetAuthRepository` is never used
[INFO] [stdout]  --> src/repositories/auth/reset_auth.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait ResetAuthRepository {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetAuthRepositoryRedis` is never constructed
[INFO] [stdout]   --> src/repositories/auth/reset_auth.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ResetAuthRepositoryRedis { pub pool: Arc<RedisPool> , }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_data` and `update_code` are never used
[INFO] [stdout]   --> src/repositories/auth/signup.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait SignUpRepository {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 12 |     async fn update_data(&self, session_id: &str, user_data: &SignUpData) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn update_code(&self, session_id: &str, code: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `verify_email`, `get_by_user_id`, `get_count_of_emails`, and `delete_with_id` are never used
[INFO] [stdout]   --> src/repositories/auth/recovery_emails.rs:8:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait RecoveryEmailsRepository {
[INFO] [stdout]    |           ------------------------ methods in this trait
[INFO] [stdout]  8 |     async fn create(&self, user_id: &str, recovery_email: &str) -> Result<RecoveryEmails, DbError>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]  9 |     async fn verify_email(&self, email_id: &str) -> Result<Option<RecoveryEmails>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 10 |     async fn get_by_user_id(&self, user_id: &str) -> Result<Vec<RecoveryEmails>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn get_by_user_id_verified(&self, user_id: &str) -> Result<Vec<RecoveryEmails>, DbError>;
[INFO] [stdout] 12 |     async fn get_count_of_emails(&self, user_id: &str) -> Result<i64, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     async fn exists_verified(&self, user_id: &str) -> Result<bool, DbError>;
[INFO] [stdout] 14 |     async fn delete_with_id(&self, email_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `get_by_user_id`, `get_count_of_codes`, and `delete_all_by_user` are never used
[INFO] [stdout]   --> src/repositories/auth/recovery_codes.rs:8:14
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait RecoveryCodesRepository {
[INFO] [stdout]    |           ----------------------- methods in this trait
[INFO] [stdout]  8 |     async fn create(&self, user_id: &str, recovery_codes: Vec<&str>) -> Result<Vec<RecoveryCodes>, DbError>;
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]  9 |     async fn get_by_user_id_and_prefix(&self, user_id: &str, recovery_code: &str) -> Result<Option<RecoveryCodes>, DbError>;
[INFO] [stdout] 10 |     async fn get_by_user_id(&self, user_id: &str) -> Result<Vec<RecoveryCodes>, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     async fn get_count_of_codes(&self, user_id: &str) -> Result<i64, DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     async fn delete_all_by_user(&self, user_id: &str) -> Result<(), DbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_secret` is never read
[INFO] [stdout]   --> src/config/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct AppConfig{
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub hash_secret: String, // used for salting password hashes
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINATED_SESSION_EXPIRATION_DAYS` is never used
[INFO] [stdout]   --> src/models/auth/sessions.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const TERMINATED_SESSION_EXPIRATION_DAYS: i64 = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetAuth` is never constructed
[INFO] [stdout]  --> src/models/auth/reset_auth.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ResetAuth {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESET_AUTH_PREFIX` is never used
[INFO] [stdout]  --> src/models/auth/reset_auth.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RESET_AUTH_PREFIX: &str = "reset_auth";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESET_AUTH_LIFETIME` is never used
[INFO] [stdout]   --> src/models/auth/reset_auth.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const RESET_AUTH_LIFETIME: i64 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `refresh_token` is never read
[INFO] [stdout]  --> src/dto/auth/user_management.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct DeleteUserReq {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     pub access_token: String,
[INFO] [stdout] 8 |     pub refresh_token: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DeleteUserReq` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePasswordReq` is never constructed
[INFO] [stdout]  --> src/dto/auth/password_resets.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ChangePasswordReq {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangePasswordRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ChangePasswordRes;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ForgotPasswordReq` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ForgotPasswordReq {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ForgotPasswordRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/password_resets.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ForgotPasswordRes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitSessionReq` is never constructed
[INFO] [stdout]  --> src/dto/auth/signup.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct InitSessionReq {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitSessionRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/signup.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct InitSessionRes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_device_info` is never used
[INFO] [stdout]  --> src/utils/converter.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Converter {
[INFO] [stdout]   | -------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new_device_info(http_req: HttpRequest) -> DeviceInfo {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `verify_password` is never used
[INFO] [stdout]   --> src/utils/hash.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Hasher {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub async fn verify_password(hash: String, password: String) -> Result<bool, HashError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1, redis v1.0.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e", kill_on_drop: false }`
[INFO] [stdout] 240168215dda830cad37bcf7a7a94bd22beae5a888f6131c7eb3cf7d3c89217e
