[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] 1c394cbbdf677a8a5bffc2d09acf3c9185c806e0
[INFO] checking maxim-mertsalov/rust-auth-microservice against try#df1b9bf194c9183fb7c0604484171064069ce232 for pr-149195-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxim-mertsalov%2Frust-auth-microservice" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/maxim-mertsalov/rust-auth-microservice on toolchain df1b9bf194c9183fb7c0604484171064069ce232
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "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" "+df1b9bf194c9183fb7c0604484171064069ce232" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0589f1a88ca869c90c739ab18da45bcac5665cddb7fc7600fc52f82c67846db5
[INFO] running `Command { std: "docker" "start" "-a" "0589f1a88ca869c90c739ab18da45bcac5665cddb7fc7600fc52f82c67846db5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0589f1a88ca869c90c739ab18da45bcac5665cddb7fc7600fc52f82c67846db5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0589f1a88ca869c90c739ab18da45bcac5665cddb7fc7600fc52f82c67846db5", kill_on_drop: false }`
[INFO] [stdout] 0589f1a88ca869c90c739ab18da45bcac5665cddb7fc7600fc52f82c67846db5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 40fae5223de8c8180589067bf1d38b77dfb4408450d1ad215d6cd58de171ab68
[INFO] running `Command { std: "docker" "start" "-a" "40fae5223de8c8180589067bf1d38b77dfb4408450d1ad215d6cd58de171ab68", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling zerocopy v0.8.30
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling cc v1.2.47
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]     Checking tracing-core v0.1.35
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling aws-lc-sys v0.35.0
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling heapless v0.7.17
[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 proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling regex-lite v0.1.8
[INFO] [stderr]    Compiling aws-lc-rs v1.15.2
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]     Checking arcstr v1.2.0
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]     Checking email-encoding v0.4.1
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking hostname v0.4.1
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking quoted_printable v0.5.1
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking jiff v0.2.16
[INFO] [stderr]     Checking bcrypt v0.18.0
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking tracing v0.1.42
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling validator_derive v0.20.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking cobs v0.3.0
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking postcard v1.1.3
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking validator v0.20.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking bb8 v0.9.1
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking lettre v0.11.19
[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 sqlx-postgres v0.8.6
[INFO] [stderr]     Checking jsonwebtoken v10.2.0
[INFO] [stderr]     Checking actix-http v3.11.2
[INFO] [stderr]     Checking redis v1.0.2
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking actix-web v4.12.1
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking bb8-redis v0.26.0
[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: `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: `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: `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: `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: `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:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 |     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:66:47
[INFO] [stdout]    |
[INFO] [stdout] 66 |     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:101:41
[INFO] [stdout]     |
[INFO] [stdout] 101 |     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:129:39
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 |     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:209:42
[INFO] [stdout]     |
[INFO] [stdout] 209 |     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:246:42
[INFO] [stdout]     |
[INFO] [stdout] 246 |     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:280:18
[INFO] [stdout]     |
[INFO] [stdout] 280 |         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:339:33
[INFO] [stdout]     |
[INFO] [stdout] 339 |     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:33:42
[INFO] [stdout]    |
[INFO] [stdout] 33 |     async fn init_with_email_pass(&self, app_state: &AppState, user_req: InitEmailPassReq) -> Result<InitEmailPassRes, 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:92:37
[INFO] [stdout]    |
[INFO] [stdout] 92 |     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:127:34
[INFO] [stdout]     |
[INFO] [stdout] 127 |     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:183:33
[INFO] [stdout]     |
[INFO] [stdout] 183 |     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/signin.rs:231:34
[INFO] [stdout]     |
[INFO] [stdout] 231 |     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/signup.rs:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 |     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:66:47
[INFO] [stdout]    |
[INFO] [stdout] 66 |     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:101:41
[INFO] [stdout]     |
[INFO] [stdout] 101 |     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:129:39
[INFO] [stdout]     |
[INFO] [stdout] 129 |     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:169:47
[INFO] [stdout]     |
[INFO] [stdout] 169 |     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:209:42
[INFO] [stdout]     |
[INFO] [stdout] 209 |     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:246:42
[INFO] [stdout]     |
[INFO] [stdout] 246 |     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:280:18
[INFO] [stdout]     |
[INFO] [stdout] 280 |         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:339:33
[INFO] [stdout]     |
[INFO] [stdout] 339 |     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:33:42
[INFO] [stdout]    |
[INFO] [stdout] 33 |     async fn init_with_email_pass(&self, app_state: &AppState, user_req: InitEmailPassReq) -> Result<InitEmailPassRes, 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:92:37
[INFO] [stdout]    |
[INFO] [stdout] 92 |     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:127:34
[INFO] [stdout]     |
[INFO] [stdout] 127 |     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:183:33
[INFO] [stdout]     |
[INFO] [stdout] 183 |     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/signin.rs:231:34
[INFO] [stdout]     |
[INFO] [stdout] 231 |     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: `now`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let now = chrono::Utc::now();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn create(&self, user_id: &str, otp_code: &str) -> Result<String, DbError> {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `otp_code`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:24:43
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn create(&self, user_id: &str, otp_code: &str) -> Result<String, DbError> {
[INFO] [stdout]    |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_otp_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let now = chrono::Utc::now();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn create(&self, user_id: &str, otp_code: &str) -> Result<String, DbError> {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `otp_code`
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:24:43
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn create(&self, user_id: &str, otp_code: &str) -> Result<String, DbError> {
[INFO] [stdout]    |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_otp_code`
[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:19:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait ISignUpService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 19 |     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:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |         const CURRENT_STAGE: SignUpState = SignUpState::InitWithProfileStage;
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init_with_email_pass` is never used
[INFO] [stdout]   --> src/services/auth/signin.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait ISignInService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 17 |     async fn init_with_email_pass(&self, app_state: &AppState, user_req: InitEmailPassReq) -> Result<InitEmailPassRes, AppError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_STAGE` is never used
[INFO] [stdout]   --> src/services/auth/signin.rs:93:15
[INFO] [stdout]    |
[INFO] [stdout] 93 |         const CURRENT_STAGE: SignInState = SignInState::InitWithEmailStage;
[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 `PasswordResetRepository` is never used
[INFO] [stdout]  --> src/repositories/auth/password_reset.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait PasswordResetRepository {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetRepositoryRedis` is never constructed
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PasswordResetRepositoryRedis { pub pool: Arc<RedisPool> , }
[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: method `update_code` is never used
[INFO] [stdout]   --> src/repositories/auth/signin.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait SignInRepository {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 14 |     async fn update_code(&self, session_id: &str, code: &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 `PasswordReset` is never constructed
[INFO] [stdout]  --> src/models/auth/password_reset.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct PasswordReset {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PASSWORD_RESET_PREFIX` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const PASSWORD_RESET_PREFIX: &str = "password_reset";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PASSWORD_RESET_LIFETIME` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const PASSWORD_RESET_LIFETIME: i64 = 15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PwdResetState` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum PwdResetState {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PwdResetData` is never constructed
[INFO] [stdout]   --> src/models/auth/password_reset.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct PwdResetData {
[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: enum `ChallengeType` is never used
[INFO] [stdout]   --> src/models/auth/signin.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum ChallengeType {
[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: struct `InitEmailPassReq` is never constructed
[INFO] [stdout]   --> src/dto/auth/signin.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct InitEmailPassReq {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitEmailPassRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/signin.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct InitEmailPassRes {
[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:19:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait ISignUpService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 19 |     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:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |         const CURRENT_STAGE: SignUpState = SignUpState::InitWithProfileStage;
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init_with_email_pass` is never used
[INFO] [stdout]   --> src/services/auth/signin.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait ISignInService {
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] 17 |     async fn init_with_email_pass(&self, app_state: &AppState, user_req: InitEmailPassReq) -> Result<InitEmailPassRes, AppError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_STAGE` is never used
[INFO] [stdout]   --> src/services/auth/signin.rs:93:15
[INFO] [stdout]    |
[INFO] [stdout] 93 |         const CURRENT_STAGE: SignInState = SignInState::InitWithEmailStage;
[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 `PasswordResetRepository` is never used
[INFO] [stdout]  --> src/repositories/auth/password_reset.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait PasswordResetRepository {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PasswordResetRepositoryRedis` is never constructed
[INFO] [stdout]   --> src/repositories/auth/password_reset.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PasswordResetRepositoryRedis { pub pool: Arc<RedisPool> , }
[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: method `update_code` is never used
[INFO] [stdout]   --> src/repositories/auth/signin.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait SignInRepository {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 14 |     async fn update_code(&self, session_id: &str, code: &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 `PasswordReset` is never constructed
[INFO] [stdout]  --> src/models/auth/password_reset.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct PasswordReset {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PASSWORD_RESET_PREFIX` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const PASSWORD_RESET_PREFIX: &str = "password_reset";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PASSWORD_RESET_LIFETIME` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const PASSWORD_RESET_LIFETIME: i64 = 15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PwdResetState` is never used
[INFO] [stdout]   --> src/models/auth/password_reset.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum PwdResetState {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PwdResetData` is never constructed
[INFO] [stdout]   --> src/models/auth/password_reset.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct PwdResetData {
[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: enum `ChallengeType` is never used
[INFO] [stdout]   --> src/models/auth/signin.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum ChallengeType {
[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: struct `InitEmailPassReq` is never constructed
[INFO] [stdout]   --> src/dto/auth/signin.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct InitEmailPassReq {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InitEmailPassRes` is never constructed
[INFO] [stdout]   --> src/dto/auth/signin.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct InitEmailPassRes {
[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 2m 03s
[INFO] running `Command { std: "docker" "inspect" "40fae5223de8c8180589067bf1d38b77dfb4408450d1ad215d6cd58de171ab68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40fae5223de8c8180589067bf1d38b77dfb4408450d1ad215d6cd58de171ab68", kill_on_drop: false }`
[INFO] [stdout] 40fae5223de8c8180589067bf1d38b77dfb4408450d1ad215d6cd58de171ab68
