[INFO] cloning repository https://github.com/RhysHolloway/chess-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RhysHolloway/chess-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRhysHolloway%2Fchess-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRhysHolloway%2Fchess-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4fd83b3e1e861ee8be89d41422701f1172f432c8
[INFO] checking RhysHolloway/chess-rs/4fd83b3e1e861ee8be89d41422701f1172f432c8 against master#fcac501a73cdde54de46a0683567f1a890730555 for pr-151102
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRhysHolloway%2Fchess-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/RhysHolloway/chess-rs
[INFO] finished tweaking git repo https://github.com/RhysHolloway/chess-rs
[INFO] tweaked toml for git repo https://github.com/RhysHolloway/chess-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/RhysHolloway/chess-rs on toolchain fcac501a73cdde54de46a0683567f1a890730555
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/RhysHolloway/chess-rs 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" "+fcac501a73cdde54de46a0683567f1a890730555" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-properties v0.1.2
[INFO] [stderr]   Downloaded sqlformat v0.2.4
[INFO] [stderr]   Downloaded sqlx-macros v0.8.1
[INFO] [stderr]   Downloaded impl-more v0.1.6
[INFO] [stderr]   Downloaded actix-multipart-derive v0.6.1
[INFO] [stderr]   Downloaded deadpool-redis v0.11.1
[INFO] [stderr]   Downloaded sqlx-macros-core v0.8.1
[INFO] [stderr]   Downloaded deadpool v0.9.5
[INFO] [stderr]   Downloaded actix-multipart v0.6.2
[INFO] [stderr]   Downloaded sqlx-sqlite v0.8.1
[INFO] [stderr]   Downloaded actix-session v0.7.2
[INFO] [stderr]   Downloaded ed25519-compact v2.1.1
[INFO] [stderr]   Downloaded ws v0.9.2
[INFO] [stderr]   Downloaded sqlx-mysql v0.8.1
[INFO] [stderr]   Downloaded sqlx-core v0.8.1
[INFO] [stderr]   Downloaded sqlx-postgres v0.8.1
[INFO] [stderr]   Downloaded redis v0.22.3
[INFO] [stderr]   Downloaded pasetors v0.6.8
[INFO] [stderr]   Downloaded sqlx v0.8.1
[INFO] [stderr]   Downloaded orion v0.17.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 855d7d2f8c9fee0864dcf5364928c471f48ea3ad850cc0b82146250f260c16d3
[INFO] running `Command { std: "docker" "start" "-a" "855d7d2f8c9fee0864dcf5364928c471f48ea3ad850cc0b82146250f260c16d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "855d7d2f8c9fee0864dcf5364928c471f48ea3ad850cc0b82146250f260c16d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "855d7d2f8c9fee0864dcf5364928c471f48ea3ad850cc0b82146250f260c16d3", kill_on_drop: false }`
[INFO] [stdout] 855d7d2f8c9fee0864dcf5364928c471f48ea3ad850cc0b82146250f260c16d3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 30949311eea02ba58e5c59424294e5e85673cddd851744f6540e9518bf02ec6a
[INFO] running `Command { std: "docker" "start" "-a" "30949311eea02ba58e5c59424294e5e85673cddd851744f6540e9518bf02ec6a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling serde v1.0.209
[INFO] [stderr]    Compiling syn v2.0.76
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking cpufeatures v0.2.13
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling serde_json v1.0.127
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling rustls v0.23.12
[INFO] [stderr]    Compiling rustix v0.38.35
[INFO] [stderr]    Compiling rustls-pki-types v1.8.0
[INFO] [stderr]     Checking inout v0.1.3
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling parking v2.2.0
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking url v2.5.2
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.1.15
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling openssl v0.10.66
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling tokio v1.39.3
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling event-listener v5.3.1
[INFO] [stderr]    Compiling rustls-pemfile v2.1.3
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling sqlformat v0.2.4
[INFO] [stderr]    Compiling bytestring v1.3.1
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling webpki-roots v0.26.3
[INFO] [stderr]    Compiling serde_derive v1.0.209
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]     Checking indexmap v2.4.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling tokio-stream v0.1.15
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling rustls-webpki v0.102.7
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling unicode-properties v0.1.2
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking flate2 v1.0.33
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]    Compiling whoami v1.5.1
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]     Checking base64 v0.20.0
[INFO] [stderr]    Compiling sqlx-core v0.8.1
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking block-padding v0.1.5
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]     Checking actix-rt v2.10.0
[INFO] [stderr]     Checking actix-server v2.5.0
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling sqlx-postgres v0.8.1
[INFO] [stderr]     Checking impl-more v0.1.6
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]     Checking zstd v0.13.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking chess-lib v0.1.0 (/opt/rustwide/workdir/crates/chess-lib)
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         self.modified.drain(..)
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking fiat-crypto v0.2.9
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |         self.pieces.get_mut(pos).inspect(|_| self.modified.push(*pos))
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:34:45
[INFO] [stdout]    |
[INFO] [stdout] 34 |         self.pieces.remove(pos).inspect(|_| self.modified.push(*pos))
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         self.modified.push(mov.to);
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             self.modified.push(pos);
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:55:53
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.pieces.extend(iter.inspect(|(pos, ..)| self.modified.push(*pos)));
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:62:52
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Self { pieces: iter.into_iter().collect(), modified: Vec::new() }
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         self.history.add(mov, taken);
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         self.history.reset();
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/pawn.rs:89:112
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...   board.players.piece_at(&pos).filter(|(other, piece)| *other != side && matches!(piece, Piece::Pawn) && board.history.of(pos).c...
[INFO] [stdout]    |                                                                                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/king.rs:58:85
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...   let no_rook_move = || board.players.piece_at(&rook).filter(|(other, piece)| board.history.of(rook).count() == 1 && matches!(pi...
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/king.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let no_king_move = || board.history.of(mov.from).count() == 1;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `iter_with_move` and `drain_changes` are never used
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PlayerPieces {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn iter_with_move<'a>(&'a self, mov: &'a Move) -> impl Iterator<Item = (&'a Pos, &'a Piece)> + 'a {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn drain_changes(&mut self) -> impl Iterator<Item = Pos> + '_ {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EndRequest` is never used
[INFO] [stdout]  --> crates/chess-lib/src/board/player.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum EndRequest {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time` is never read
[INFO] [stdout]   --> crates/chess-lib/src/board/player.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct BoardPlayer<S: Side> {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     time: Duration,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking retain_mut v0.1.9
[INFO] [stderr]    Compiling parse-size v1.0.0
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]    Compiling actix-multipart-derive v0.6.1
[INFO] [stderr]     Checking sha-1 v0.8.2
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking deadpool v0.9.5
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking serde_plain v1.0.2
[INFO] [stderr]     Checking tracing-serde v0.1.3
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking ed25519-compact v2.1.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking ct-codecs v1.1.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking ws v0.9.2
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking actix-http v3.9.0
[INFO] [stderr]     Checking chess-tui v0.1.0 (/opt/rustwide/workdir/crates/chess-tui)
[INFO] [stdout] warning: use of deprecated field `chess_lib::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-tui/src/local.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 |             for (side, piece) in self.board.history.taken(&side) {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `chess_lib::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-tui/src/local.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 |             for (side, piece) in self.board.history.taken(&side) {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         self.modified.drain(..)
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking redis v0.21.7
[INFO] [stderr]     Checking redis v0.22.3
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |         self.pieces.get_mut(pos).inspect(|_| self.modified.push(*pos))
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:34:45
[INFO] [stdout]    |
[INFO] [stdout] 34 |         self.pieces.remove(pos).inspect(|_| self.modified.push(*pos))
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         self.modified.push(mov.to);
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             self.modified.push(pos);
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:55:53
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.pieces.extend(iter.inspect(|(pos, ..)| self.modified.push(*pos)));
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::pieces::PlayerPieces::modified`: move to main piece holder
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:62:52
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Self { pieces: iter.into_iter().collect(), modified: Vec::new() }
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         self.history.add(mov, taken);
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |         self.history.reset();
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/pawn.rs:89:112
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...   board.players.piece_at(&pos).filter(|(other, piece)| *other != side && matches!(piece, Piece::Pawn) && board.history.of(pos).c...
[INFO] [stdout]    |                                                                                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/king.rs:58:85
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...   let no_rook_move = || board.players.piece_at(&rook).filter(|(other, piece)| board.history.of(rook).count() == 1 && matches!(pi...
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `board::Board::history`: move history into players
[INFO] [stdout]   --> crates/chess-lib/src/piece/step/king.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let no_king_move = || board.history.of(mov.from).count() == 1;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `iter_with_move` and `drain_changes` are never used
[INFO] [stdout]   --> crates/chess-lib/src/board/pieces.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PlayerPieces {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn iter_with_move<'a>(&'a self, mov: &'a Move) -> impl Iterator<Item = (&'a Pos, &'a Piece)> + 'a {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn drain_changes(&mut self) -> impl Iterator<Item = Pos> + '_ {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EndRequest` is never used
[INFO] [stdout]  --> crates/chess-lib/src/board/player.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum EndRequest {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `time` is never read
[INFO] [stdout]   --> crates/chess-lib/src/board/player.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct BoardPlayer<S: Side> {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     time: Duration,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.1
[INFO] [stderr]     Checking actix-web v4.9.0
[INFO] [stderr]    Compiling sqlx-macros v0.8.1
[INFO] [stderr]     Checking deadpool-redis v0.11.1
[INFO] [stderr]     Checking orion v0.17.6
[INFO] [stderr]     Checking pasetors v0.6.8
[INFO] [stderr]     Checking sqlx v0.8.1
[INFO] [stderr]     Checking actix-session v0.7.2
[INFO] [stderr]     Checking actix-multipart v0.6.2
[INFO] [stderr]     Checking chess-server v0.1.0 (/opt/rustwide/workdir/crates/chess-server)
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/message.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chess_lib::{Move, MoveError, Piece, Pos, DefaultSides, Turn};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/host.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chess_lib::{Board, DefaultSides};
[INFO] [stdout]   |                        ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/mod.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chess_lib::{Board, DefaultSides};
[INFO] [stdout]   |                        ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/message.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chess_lib::{Move, MoveError, Piece, Pos, DefaultSides, Turn};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/host.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chess_lib::{Board, DefaultSides};
[INFO] [stdout]   |                        ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `chess_lib::DefaultSides`
[INFO] [stdout]  --> crates/chess-server/src/board/mod.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chess_lib::{Board, DefaultSides};
[INFO] [stdout]   |                        ^^^^^^^^^^^^ no `DefaultSides` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           chess_lib::boards::DefaultSides
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]    --> crates/chess-server/src/server/settings.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             config::Environment::with_prefix("APP")
[INFO] [stdout]     |             ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]    --> crates/chess-server/src/server/settings.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             config::Environment::with_prefix("APP")
[INFO] [stdout]     |             ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:15:63
[INFO] [stdout]    |
[INFO] [stdout] 15 |                     actix_web::HttpResponse::Ok().json(crate::types::UserVisible {
[INFO] [stdout]    |                                                               ^^^^^
[INFO] [stdout]    |                                                               |
[INFO] [stdout]    |                                                               unresolved import
[INFO] [stdout]    |                                                               help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:15:63
[INFO] [stdout]    |
[INFO] [stdout] 15 |                     actix_web::HttpResponse::Ok().json(crate::types::UserVisible {
[INFO] [stdout]    |                                                               ^^^^^
[INFO] [stdout]    |                                                               |
[INFO] [stdout]    |                                                               unresolved import
[INFO] [stdout]    |                                                               help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |                         profile: crate::types::UserProfile {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         unresolved import
[INFO] [stdout]    |                                         help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |                         profile: crate::types::UserProfile {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         unresolved import
[INFO] [stdout]    |                                         help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |             crate::utils::send_multipart_email(
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    unresolved import
[INFO] [stdout]    |                    help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:31:59
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 actix_web::HttpResponse::Ok().json(crate::types::UserVisible {
[INFO] [stdout]    |                                                           ^^^^^
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           unresolved import
[INFO] [stdout]    |                                                           help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:41:37
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     profile: crate::types::UserProfile {
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     unresolved import
[INFO] [stdout]    |                                     help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |             crate::utils::send_multipart_email(
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    unresolved import
[INFO] [stdout]    |                    help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:31:59
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 actix_web::HttpResponse::Ok().json(crate::types::UserVisible {
[INFO] [stdout]    |                                                           ^^^^^
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           unresolved import
[INFO] [stdout]    |                                                           help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:41:37
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     profile: crate::types::UserProfile {
[INFO] [stdout]    |                                     ^^^^^
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     unresolved import
[INFO] [stdout]    |                                     help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |             crate::utils::send_multipart_email(
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    unresolved import
[INFO] [stdout]    |                    help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     crate::utils::send_multipart_email(
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `uploads` in the crate root
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:38:44
[INFO] [stdout]    |
[INFO] [stdout] 38 |     s3_client: actix_web::web::Data<crate::uploads::Client>,
[INFO] [stdout]    |                                            ^^^^^^^ could not find `uploads` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |             crate::utils::send_multipart_email(
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    unresolved import
[INFO] [stdout]    |                    help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:175:20
[INFO] [stdout]     |
[INFO] [stdout] 175 |             crate::types::UserVisible {
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    unresolved import
[INFO] [stdout]     |                    help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:185:33
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 profile: crate::types::UserProfile {
[INFO] [stdout]     |                                 ^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 unresolved import
[INFO] [stdout]     |                                 help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     crate::utils::send_multipart_email(
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `server::utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 | ) -> Result<crate::types::ConfirmationToken, String> {
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    unresolved import
[INFO] [stdout]     |                    help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:174:27
[INFO] [stdout]     |
[INFO] [stdout] 174 |                 Ok(crate::types::ConfirmationToken { user_id: user_uuid })
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           unresolved import
[INFO] [stdout]     |                           help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `routes` in the crate root
[INFO] [stdout]    --> crates/chess-server/src/server/mod.rs:116:29
[INFO] [stdout]     |
[INFO] [stdout] 116 |             .service(crate::routes::health_check)
[INFO] [stdout]     |                             ^^^^^^ could not find `routes` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `routes` in the crate root
[INFO] [stdout]    --> crates/chess-server/src/server/mod.rs:118:31
[INFO] [stdout]     |
[INFO] [stdout] 118 |             .configure(crate::routes::auth_routes_config)
[INFO] [stdout]     |                               ^^^^^^ could not find `routes` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `board` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:86
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...   endpoint.value().send(ServerMessage::Moves { from: pos, to : board.pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, po...
[INFO] [stdout]    |                                                                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `board` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:142
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                      ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `uploads` in the crate root
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:38:44
[INFO] [stdout]    |
[INFO] [stdout] 38 |     s3_client: actix_web::web::Data<crate::uploads::Client>,
[INFO] [stdout]    |                                            ^^^^^^^ could not find `uploads` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `servers` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 | ...                   let board = servers.get_mut(&game.id).unwrap();
[INFO] [stdout]    |                                   ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `EmailSettings` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub email: EmailSettings,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 | pub struct RedisSettings {
[INFO] [stdout]    | ------------------------ similarly named struct `RedisSettings` defined here
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 12 -     pub email: EmailSettings,
[INFO] [stdout] 12 +     pub email: RedisSettings,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let settings = config::Config::builder()
[INFO] [stdout]    |                    ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  3 + use deadpool_redis::Config;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Config`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 96 -     let settings = config::Config::builder()
[INFO] [stdout] 96 +     let settings = Config::builder()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:97:21
[INFO] [stdout]    |
[INFO] [stdout] 97 |         .add_source(config::File::from(settings_directory.join("base.yaml")))
[INFO] [stdout]    |                     ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]    |
[INFO] [stdout]  3 + use std::fs::File;
[INFO] [stdout]    |
[INFO] [stdout]  3 + use tokio::fs::File;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 97 -         .add_source(config::File::from(settings_directory.join("base.yaml")))
[INFO] [stdout] 97 +         .add_source(File::from(settings_directory.join("base.yaml")))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |         .add_source(config::File::from(
[INFO] [stdout]    |                     ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]    |
[INFO] [stdout]  3 + use std::fs::File;
[INFO] [stdout]    |
[INFO] [stdout]  3 + use tokio::fs::File;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 98 -         .add_source(config::File::from(
[INFO] [stdout] 98 +         .add_source(File::from(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> crates/chess-server/src/server/routes/health.rs:6:47
[INFO] [stdout]   |
[INFO] [stdout] 6 |     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]   |                                               ^^^^^ unresolved import
[INFO] [stdout]   |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]   |
[INFO] [stdout] 6 |     actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]   |                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::server::types;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 6 -     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 6 +     actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 13 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 13 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 .json(crate::types::ErrorResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 .json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 26 -                 .json(crate::types::ErrorResponse {
[INFO] [stdout] 26 +                 .json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:32:43
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 32 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 32 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:58:30
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 .json(crate::types::SuccessResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 .json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 58 -                 .json(crate::types::SuccessResponse {
[INFO] [stdout] 58 +                 .json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |     match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                  ^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 10 |     match crate::server::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::routes::users::logout;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `logout`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 10 -     match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout] 10 +     match logout::session_user_id(&session).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |             match crate::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |                          ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 12 |             match crate::server::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 12 -             match crate::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout] 12 +             match utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let error_message = crate::types::ErrorResponse {
[INFO] [stdout]    |                                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 36 -                     let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 36 +                     let error_message = types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:46:65
[INFO] [stdout]    |
[INFO] [stdout] 46 |             actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                 ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 46 |             actix_web::HttpResponse::Unauthorized().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                 ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 46 -             actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout] 46 +             actix_web::HttpResponse::Unauthorized().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 |     date_joined: chrono::DateTime<chrono::Utc>,
[INFO] [stdout]    |                  ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     date_joined: chrono::DateTime<chrono::Utc>,
[INFO] [stdout]    |                                   ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |                         crate::types::ErrorResponse {
[INFO] [stdout]    |                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 36 |                         crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 36 -                         crate::types::ErrorResponse {
[INFO] [stdout] 36 +                         types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 53 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 53 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 53 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::server::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout] 14 +     match utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 16 |             crate::server::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |                    ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 16 -             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout] 16 +             utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:25:36
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     .insert(crate::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     .insert(crate::sqlx::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -                     .insert(crate::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout] 25 +                     .insert(types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     .insert(crate::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     .insert(crate::sqlx::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 28 -                     .insert(crate::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout] 28 +                     .insert(types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:52:67
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                   ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                   ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 52 -                 actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 52 +                 actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> crates/chess-server/src/server/routes/users/logout.rs:8:55
[INFO] [stdout]   |
[INFO] [stdout] 8 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]   |                                                       ^^^^^ unresolved import
[INFO] [stdout]   |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]   |
[INFO] [stdout] 8 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]   |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::server::types;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 8 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 8 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/logout.rs:14:63
[INFO] [stdout]    |
[INFO] [stdout] 14 |             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                               ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |             actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 14 +             actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/logout.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     match session.get(crate::types::USER_ID_KEY) {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 25 |     match session.get(crate::sqlx::types::USER_ID_KEY) {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -     match session.get(crate::types::USER_ID_KEY) {
[INFO] [stdout] 25 +     match session.get(types::USER_ID_KEY) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 17 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 37 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 37 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:47:70
[INFO] [stdout]    |
[INFO] [stdout] 47 |             return actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                      ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 47 |             return actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                      ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 47 -             return actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 47 +             return actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:54:36
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let new_user_password = crate::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let new_user_password = crate::server::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |                                    ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let new_user_password = crate::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout] 54 +     let new_user_password = utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:59:55
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:65:63
[INFO] [stdout]    |
[INFO] [stdout] 65 |             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                               ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |             actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 65 +             actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 12 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 12 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:32:43
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 32 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 32 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:52:37
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let issued_token = match crate::utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |                                     ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let issued_token = match crate::server::utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 52 -     let issued_token = match crate::utils::issue_confirmation_token_pasetors(
[INFO] [stdout] 52 +     let issued_token = match utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:67:30
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 .json(crate::types::ErrorResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 .json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 67 -                 .json(crate::types::ErrorResponse {
[INFO] [stdout] 67 +                 .json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 13 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 13 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::server::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout] 14 +     match utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |                         crate::types::ErrorResponse {
[INFO] [stdout]    |                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 24 |                         crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 24 -                         crate::types::ErrorResponse {
[INFO] [stdout] 24 +                         types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 41 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 41 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 41 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:47:61
[INFO] [stdout]    |
[INFO] [stdout] 47 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 47 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 47 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 47 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 37 -                 crate::types::ErrorResponse {
[INFO] [stdout] 37 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let hashed_password = crate::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |                                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let hashed_password = crate::server::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |                                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 43 -     let hashed_password = crate::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout] 43 +     let hashed_password = utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:65:24
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -                 crate::types::ErrorResponse {
[INFO] [stdout] 65 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 69 -                 crate::types::ErrorResponse {
[INFO] [stdout] 69 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:83:72
[INFO] [stdout]    |
[INFO] [stdout] 83 |             actix_web::HttpResponse::InternalServerError().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 83 |             actix_web::HttpResponse::InternalServerError().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 83 -             actix_web::HttpResponse::InternalServerError().json(crate::types::ErrorResponse {
[INFO] [stdout] 83 +             actix_web::HttpResponse::InternalServerError().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]     |                                               ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 106 |     actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]     |                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 106 -     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 106 +     actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     birth_date: Option<chrono::NaiveDate>,
[INFO] [stdout]    |                        ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:40:37
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let session_uuid = match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                                     ^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let session_uuid = match crate::server::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::routes::users::logout;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `logout`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 40 -     let session_uuid = match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout] 40 +     let session_uuid = match logout::session_user_id(&session).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:44:72
[INFO] [stdout]    |
[INFO] [stdout] 44 |             return actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 44 |             return actix_web::HttpResponse::Unauthorized().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 44 -             return actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout] 44 +             return actix_web::HttpResponse::Unauthorized().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 57 -                 crate::types::ErrorResponse {
[INFO] [stdout] 57 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |         match chrono::NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout]     |               ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use sqlx::types::chrono::NaiveDate;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `NaiveDate`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 139 -         match chrono::NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout] 139 +         match NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:158:40
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let error_message = crate::types::ErrorResponse {
[INFO] [stdout]     |                                        ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]     |                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 158 -             let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 158 +             let error_message = types::ErrorResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let updated_user = match crate::utils::get_active_user_from_db(
[INFO] [stdout]     |                                     ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let updated_user = match crate::server::utils::get_active_user_from_db(
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::utils;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 165 -     let updated_user = match crate::utils::get_active_user_from_db(
[INFO] [stdout] 165 +     let updated_user = match utils::get_active_user_from_db(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:196:40
[INFO] [stdout]     |
[INFO] [stdout] 196 |             let error_message = crate::types::ErrorResponse {
[INFO] [stdout]     |                                        ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 196 |             let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]     |                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 196 -             let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 196 +             let error_message = types::ErrorResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let settings = crate::server::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout] 65 +     let settings = settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `time_to_live` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             time_to_live.num_seconds().try_into().unwrap(),
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dt` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:96:24
[INFO] [stdout]    |
[INFO] [stdout] 96 |     claims.expiration(&dt.to_rfc3339()).unwrap();
[INFO] [stdout]    |                        ^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:123:27
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |                           ^^^^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let settings = crate::server::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::settings;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 123 -     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout] 123 +     let settings = settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Board`
[INFO] [stdout]  --> crates/chess-server/src/board/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chess_lib::{Board, DefaultSides};
[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 imports: `App` and `HttpServer`
[INFO] [stdout]  --> crates/chess-server/src/server/mod.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use actix_web::{App, HttpServer, dev::Server};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `health::health_check`
[INFO] [stdout]  --> crates/chess-server/src/server/routes/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use health::health_check;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `users::auth_routes_config`
[INFO] [stdout]  --> crates/chess-server/src/server/routes/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use users::auth_routes_config;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `verify_password`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use password::{hash, verify_password};
[INFO] [stdout]   |                    ^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `issue_confirmation_token_pasetors` and `verify_confirmation_token_pasetor`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tokens::{issue_confirmation_token_pasetors, verify_confirmation_token_pasetor};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `users::*`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use users::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Turn`
[INFO] [stdout]   --> crates/chess-server/src/board/message.rs:18:49
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Join { playing: Option<DefaultSides>, turn: Turn, },
[INFO] [stdout]    |                                                 ^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Turn<S: Side> {
[INFO] [stdout]    |            ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Join { playing: Option<DefaultSides>, turn: Turn<S>, },
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:175:20
[INFO] [stdout]     |
[INFO] [stdout] 175 |             crate::types::UserVisible {
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    unresolved import
[INFO] [stdout]     |                    help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:185:33
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 profile: crate::types::UserProfile {
[INFO] [stdout]     |                                 ^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 unresolved import
[INFO] [stdout]     |                                 help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 | /             crate::utils::send_multipart_email(
[INFO] [stdout] 43 | |                 "RustAuth - Let's get you verified".to_string(),
[INFO] [stdout] 44 | |                 visible_user_detail.id,
[INFO] [stdout] 45 | |                 visible_user_detail.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |           Ok(loggedin_user) => match tokio::task::spawn_blocking(move || {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 16 | |             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout] 17 | |         })
[INFO] [stdout] 18 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 | ) -> Result<crate::types::ConfirmationToken, String> {
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    unresolved import
[INFO] [stdout]     |                    help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 | /             crate::utils::send_multipart_email(
[INFO] [stdout] 31 | |                 "RustAuth - Password Reset Instructions".to_string(),
[INFO] [stdout] 32 | |                 visible_user_detail.id,
[INFO] [stdout] 33 | |                 visible_user_detail.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 39 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:174:27
[INFO] [stdout]     |
[INFO] [stdout] 174 |                 Ok(crate::types::ConfirmationToken { user_id: user_uuid })
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           unresolved import
[INFO] [stdout]     |                           help: a similar path exists: `sqlx::types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | /     crate::utils::send_multipart_email(
[INFO] [stdout] 90 | |         "RustAuth - Let's get you verified".to_string(),
[INFO] [stdout] 91 | |         user_id,
[INFO] [stdout] 92 | |         create_new_user.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 98 | |     .await
[INFO] [stdout]    | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:130:16
[INFO] [stdout]     |
[INFO] [stdout] 130 |     .fetch_one(&mut *transaction)
[INFO] [stdout]     |      --------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |       let user_id = match sqlx::query(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 121 | |         "INSERT INTO users (email, password, first_name, last_name) VALUES ($1, $2, $3, $4) RETURNING id",
[INFO] [stdout] 122 | |     )
[INFO] [stdout] 123 | |     .bind(&new_user.email)
[INFO] [stdout] ...   |
[INFO] [stdout] 129 | |    })
[INFO] [stdout] 130 | |     .fetch_one(&mut *transaction)
[INFO] [stdout]     | |_________________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `routes` in the crate root
[INFO] [stdout]    --> crates/chess-server/src/server/mod.rs:116:29
[INFO] [stdout]     |
[INFO] [stdout] 116 |             .service(crate::routes::health_check)
[INFO] [stdout]     |                             ^^^^^^ could not find `routes` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 |     .fetch_one(&mut *transaction)
[INFO] [stdout]     |      --------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 141 | |         "INSERT INTO user_profile (user_id) 
[INFO] [stdout] 142 | |                 VALUES ($1) 
[INFO] [stdout] 143 | |             ON CONFLICT (user_id) 
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |     .map(|row: sqlx::postgres::PgRow| -> uuid::Uuid { row.get("user_id") })
[INFO] [stdout] 149 | |     .fetch_one(&mut *transaction)
[INFO] [stdout]     | |_________________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:150:6
[INFO] [stdout]     |
[INFO] [stdout] 150 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `routes` in the crate root
[INFO] [stdout]    --> crates/chess-server/src/server/mod.rs:118:31
[INFO] [stdout]     |
[INFO] [stdout] 118 |             .configure(crate::routes::auth_routes_config)
[INFO] [stdout]     |                               ^^^^^^ could not find `routes` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `board` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:86
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...   endpoint.value().send(ServerMessage::Moves { from: pos, to : board.pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, po...
[INFO] [stdout]    |                                                                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `board` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:142
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                      ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `servers` in this scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 | ...                   let board = servers.get_mut(&game.id).unwrap();
[INFO] [stdout]    |                                   ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `EmailSettings` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub email: EmailSettings,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 | pub struct RedisSettings {
[INFO] [stdout]    | ------------------------ similarly named struct `RedisSettings` defined here
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 12 -     pub email: EmailSettings,
[INFO] [stdout] 12 +     pub email: RedisSettings,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let settings = config::Config::builder()
[INFO] [stdout]    |                    ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  3 + use deadpool_redis::Config;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Config`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 96 -     let settings = config::Config::builder()
[INFO] [stdout] 96 +     let settings = Config::builder()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:97:21
[INFO] [stdout]    |
[INFO] [stdout] 97 |         .add_source(config::File::from(settings_directory.join("base.yaml")))
[INFO] [stdout]    |                     ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]    |
[INFO] [stdout]  3 + use std::fs::File;
[INFO] [stdout]    |
[INFO] [stdout]  3 + use tokio::fs::File;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 97 -         .add_source(config::File::from(settings_directory.join("base.yaml")))
[INFO] [stdout] 97 +         .add_source(File::from(settings_directory.join("base.yaml")))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |         .add_source(config::File::from(
[INFO] [stdout]    |                     ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing one of these structs
[INFO] [stdout]    |
[INFO] [stdout]  3 + use std::fs::File;
[INFO] [stdout]    |
[INFO] [stdout]  3 + use tokio::fs::File;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `File`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 98 -         .add_source(config::File::from(
[INFO] [stdout] 98 +         .add_source(File::from(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> crates/chess-server/src/server/routes/health.rs:6:47
[INFO] [stdout]   |
[INFO] [stdout] 6 |     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]   |                                               ^^^^^ unresolved import
[INFO] [stdout]   |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]   |
[INFO] [stdout] 6 |     actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]   |                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::server::types;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 6 -     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 6 +     actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 13 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 13 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 .json(crate::types::ErrorResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 .json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 26 -                 .json(crate::types::ErrorResponse {
[INFO] [stdout] 26 +                 .json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:32:43
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 32 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 32 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/confirm_registration.rs:58:30
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 .json(crate::types::SuccessResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 .json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 58 -                 .json(crate::types::SuccessResponse {
[INFO] [stdout] 58 +                 .json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |     match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                  ^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 10 |     match crate::server::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::routes::users::logout;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `logout`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 10 -     match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout] 10 +     match logout::session_user_id(&session).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |             match crate::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |                          ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 12 |             match crate::server::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |                          ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 12 -             match crate::utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout] 12 +             match utils::get_active_user_from_db(Some(&pool), None, Some(id), None).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let error_message = crate::types::ErrorResponse {
[INFO] [stdout]    |                                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 36 -                     let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 36 +                     let error_message = types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/current_user.rs:46:65
[INFO] [stdout]    |
[INFO] [stdout] 46 |             actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                 ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 46 |             actix_web::HttpResponse::Unauthorized().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                 ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 46 -             actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout] 46 +             actix_web::HttpResponse::Unauthorized().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 |     date_joined: chrono::DateTime<chrono::Utc>,
[INFO] [stdout]    |                  ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     date_joined: chrono::DateTime<chrono::Utc>,
[INFO] [stdout]    |                                   ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:36:32
[INFO] [stdout]    |
[INFO] [stdout] 36 |                         crate::types::ErrorResponse {
[INFO] [stdout]    |                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 36 |                         crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 36 -                         crate::types::ErrorResponse {
[INFO] [stdout] 36 +                         types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 53 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 53 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 53 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::server::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout] 14 +     match utils::get_active_user_from_db(Some(&pool), None, None, Some(&user.email)).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 |             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 16 |             crate::server::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |                    ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 16 -             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout] 16 +             utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:25:36
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     .insert(crate::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     .insert(crate::sqlx::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -                     .insert(crate::types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout] 25 +                     .insert(types::USER_ID_KEY, loggedin_user.id)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     .insert(crate::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     .insert(crate::sqlx::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 28 -                     .insert(crate::types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout] 28 +                     .insert(types::USER_EMAIL_KEY, &loggedin_user.email)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:52:67
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                   ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                   ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 52 -                 actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 52 +                 actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> crates/chess-server/src/server/routes/users/logout.rs:8:55
[INFO] [stdout]   |
[INFO] [stdout] 8 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]   |                                                       ^^^^^ unresolved import
[INFO] [stdout]   |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]   |
[INFO] [stdout] 8 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]   |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]   |
[INFO] [stdout] 1 + use crate::server::types;
[INFO] [stdout]   |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]   |
[INFO] [stdout] 8 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 8 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/logout.rs:14:63
[INFO] [stdout]    |
[INFO] [stdout] 14 |             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                               ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |             actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 14 +             actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/logout.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     match session.get(crate::types::USER_ID_KEY) {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 25 |     match session.get(crate::sqlx::types::USER_ID_KEY) {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -     match session.get(crate::types::USER_ID_KEY) {
[INFO] [stdout] 25 +     match session.get(types::USER_ID_KEY) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 17 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 37 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 37 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:47:70
[INFO] [stdout]    |
[INFO] [stdout] 47 |             return actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                      ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 47 |             return actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                      ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 47 -             return actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 47 +             return actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:54:36
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let new_user_password = crate::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let new_user_password = crate::server::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |                                    ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 54 -     let new_user_password = crate::utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout] 54 +     let new_user_password = utils::hash(new_password.0.password.as_bytes()).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |     .execute(&mut *transaction)
[INFO] [stdout]     |      ------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:59:55
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 59 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 59 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 59 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 219 | |         "
[INFO] [stdout] 220 | |         UPDATE 
[INFO] [stdout] 221 | |             users 
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |     .bind(user_id)
[INFO] [stdout] 247 | |     .execute(&mut *transaction)
[INFO] [stdout]     | |_______________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/change.rs:65:63
[INFO] [stdout]    |
[INFO] [stdout] 65 |             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                               ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |             actix_web::HttpResponse::BadRequest().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -             actix_web::HttpResponse::BadRequest().json(crate::types::ErrorResponse {
[INFO] [stdout] 65 +             actix_web::HttpResponse::BadRequest().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:248:6
[INFO] [stdout]     |
[INFO] [stdout] 248 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 12 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 12 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:32:43
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let confirmation_token = match crate::server::utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |                                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 32 -     let confirmation_token = match crate::utils::verify_confirmation_token_pasetor(
[INFO] [stdout] 32 +     let confirmation_token = match utils::verify_confirmation_token_pasetor(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:52:37
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let issued_token = match crate::utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |                                     ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let issued_token = match crate::server::utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 52 -     let issued_token = match crate::utils::issue_confirmation_token_pasetors(
[INFO] [stdout] 52 +     let issued_token = match utils::issue_confirmation_token_pasetors(
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/confirm_change_request.rs:67:30
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 .json(crate::types::ErrorResponse {
[INFO] [stdout]    |                              ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 .json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                              ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 67 -                 .json(crate::types::ErrorResponse {
[INFO] [stdout] 67 +                 .json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let settings = crate::server::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 13 -     let settings = crate::settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout] 13 +     let settings = settings::get_settings().expect("Failed to read settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:285:14
[INFO] [stdout]     |
[INFO] [stdout] 285 |     .execute(&mut *transaction)
[INFO] [stdout]     |      ------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 14 |     match crate::server::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 14 -     match crate::utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout] 14 +     match utils::get_active_user_from_db(Some(&pool), None, None, Some(&user_email.0.email))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:259:11
[INFO] [stdout]     |
[INFO] [stdout] 259 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 260 | |         "
[INFO] [stdout] 261 | |         UPDATE 
[INFO] [stdout] 262 | |             user_profile 
[INFO] [stdout] ...   |
[INFO] [stdout] 284 | |     .bind(user_id)
[INFO] [stdout] 285 | |     .execute(&mut *transaction)
[INFO] [stdout]     | |_______________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |                         crate::types::ErrorResponse {
[INFO] [stdout]    |                                ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 24 |                         crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 24 -                         crate::types::ErrorResponse {
[INFO] [stdout] 24 +                         types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:286:6
[INFO] [stdout]     |
[INFO] [stdout] 286 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 |             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]    |                                                       ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 41 |             actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]    |                                                       ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 41 -             actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 41 +             actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:47:61
[INFO] [stdout]    |
[INFO] [stdout] 47 |             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                             ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 47 |             actix_web::HttpResponse::NotFound().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                             ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 47 -             actix_web::HttpResponse::NotFound().json(crate::types::ErrorResponse {
[INFO] [stdout] 47 +             actix_web::HttpResponse::NotFound().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 37 -                 crate::types::ErrorResponse {
[INFO] [stdout] 37 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let hashed_password = crate::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |                                  ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let hashed_password = crate::server::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |                                  ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::utils;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 43 -     let hashed_password = crate::utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout] 43 +     let hashed_password = utils::hash(new_user.0.password.as_bytes()).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:65:24
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -                 crate::types::ErrorResponse {
[INFO] [stdout] 65 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 69 -                 crate::types::ErrorResponse {
[INFO] [stdout] 69 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:83:72
[INFO] [stdout]    |
[INFO] [stdout] 83 |             actix_web::HttpResponse::InternalServerError().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 83 |             actix_web::HttpResponse::InternalServerError().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 83 -             actix_web::HttpResponse::InternalServerError().json(crate::types::ErrorResponse {
[INFO] [stdout] 83 +             actix_web::HttpResponse::InternalServerError().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 |     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout]     |                                               ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 106 |     actix_web::HttpResponse::Ok().json(crate::sqlx::types::SuccessResponse {
[INFO] [stdout]     |                                               ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 106 -     actix_web::HttpResponse::Ok().json(crate::types::SuccessResponse {
[INFO] [stdout] 106 +     actix_web::HttpResponse::Ok().json(types::SuccessResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     birth_date: Option<chrono::NaiveDate>,
[INFO] [stdout]    |                        ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use sqlx::types::chrono;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:40:37
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let session_uuid = match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                                     ^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let session_uuid = match crate::server::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout]    |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::routes::users::logout;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `logout`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 40 -     let session_uuid = match crate::routes::users::logout::session_user_id(&session).await {
[INFO] [stdout] 40 +     let session_uuid = match logout::session_user_id(&session).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:44:72
[INFO] [stdout]    |
[INFO] [stdout] 44 |             return actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 44 |             return actix_web::HttpResponse::Unauthorized().json(crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                                                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 44 -             return actix_web::HttpResponse::Unauthorized().json(crate::types::ErrorResponse {
[INFO] [stdout] 44 +             return actix_web::HttpResponse::Unauthorized().json(types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/update_user.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 crate::types::ErrorResponse {
[INFO] [stdout]    |                        ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 crate::sqlx::types::ErrorResponse {
[INFO] [stdout]    |                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::types;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 57 -                 crate::types::ErrorResponse {
[INFO] [stdout] 57 +                 types::ErrorResponse {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |         match chrono::NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout]     |               ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use sqlx::types::chrono::NaiveDate;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `NaiveDate`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 139 -         match chrono::NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout] 139 +         match NaiveDate::parse_from_str(&bd.0, "%Y-%m-%d") {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:158:40
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let error_message = crate::types::ErrorResponse {
[INFO] [stdout]     |                                        ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 158 |             let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]     |                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 158 -             let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 158 +             let error_message = types::ErrorResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let updated_user = match crate::utils::get_active_user_from_db(
[INFO] [stdout]     |                                     ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let updated_user = match crate::server::utils::get_active_user_from_db(
[INFO] [stdout]     |                                     ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::utils;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `utils`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 165 -     let updated_user = match crate::utils::get_active_user_from_db(
[INFO] [stdout] 165 +     let updated_user = match utils::get_active_user_from_db(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:196:40
[INFO] [stdout]     |
[INFO] [stdout] 196 |             let error_message = crate::types::ErrorResponse {
[INFO] [stdout]     |                                        ^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 196 |             let error_message = crate::sqlx::types::ErrorResponse {
[INFO] [stdout]     |                                        ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::types;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `types`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 196 -             let error_message = crate::types::ErrorResponse {
[INFO] [stdout] 196 +             let error_message = types::ErrorResponse {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |                           ^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let settings = crate::server::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::server::settings;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 65 -     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout] 65 +     let settings = settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `time_to_live` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             time_to_live.num_seconds().try_into().unwrap(),
[INFO] [stdout]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `dt` in this scope
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:96:24
[INFO] [stdout]    |
[INFO] [stdout] 96 |     claims.expiration(&dt.to_rfc3339()).unwrap();
[INFO] [stdout]    |                        ^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:123:27
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |                           ^^^^^^^^ unresolved import
[INFO] [stdout]     |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let settings = crate::server::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |                           ++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::server::settings;
[INFO] [stdout]     |
[INFO] [stdout] help: if you import `settings`, refer to it directly
[INFO] [stdout]     |
[INFO] [stdout] 123 -     let settings = crate::settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout] 123 +     let settings = settings::get_settings().expect("Cannot load settings.");
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[tracing::instrument(name = "Issue pasetors token", skip(redis_connection))]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]    = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |         .set(
[INFO] [stdout]    |          ^^^
[INFO] [stdout]    = note: `#[deny(dependency_on_unit_never_type_fallback)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout]    = note: this error originates in the attribute macro `tracing::instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Board`
[INFO] [stdout]  --> crates/chess-server/src/board/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chess_lib::{Board, DefaultSides};
[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 imports: `App` and `HttpServer`
[INFO] [stdout]  --> crates/chess-server/src/server/mod.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use actix_web::{App, HttpServer, dev::Server};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[tracing::instrument(name = "Verify pasetors token", skip(token, redis_connection))]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:171:22
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     .del(redis_key.clone())
[INFO] [stdout]     |                      ^^^
[INFO] [stdout]     = note: this error originates in the attribute macro `tracing::instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `health::health_check`
[INFO] [stdout]  --> crates/chess-server/src/server/routes/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use health::health_check;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `users::auth_routes_config`
[INFO] [stdout]  --> crates/chess-server/src/server/routes/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use users::auth_routes_config;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `verify_password`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use password::{hash, verify_password};
[INFO] [stdout]   |                    ^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `issue_confirmation_token_pasetors` and `verify_confirmation_token_pasetor`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tokens::{issue_confirmation_token_pasetors, verify_confirmation_token_pasetor};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `users::*`
[INFO] [stdout]  --> crates/chess-server/src/server/utils/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use users::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `Turn`
[INFO] [stdout]   --> crates/chess-server/src/board/message.rs:18:49
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Join { playing: Option<DefaultSides>, turn: Turn, },
[INFO] [stdout]    |                                                 ^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]   --> crates/chess-lib/src/board.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Turn<S: Side> {
[INFO] [stdout]    |            ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 18 |     Join { playing: Option<DefaultSides>, turn: Turn<S>, },
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:27:39
[INFO] [stdout]    |
[INFO] [stdout] 27 |         self.0.get_mut(&id).map(|s| s.leave(clients)).ok_or(ClientError::NoServer)
[INFO] [stdout]    |                                       ^^^^^---------
[INFO] [stdout]    |                                            ||
[INFO] [stdout]    |                                            |expected `&ClientList`, found `()`
[INFO] [stdout]    |                                            argument #2 is missing
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn leave(&mut self, clients: &ClientList, side: DefaultSides) {
[INFO] [stdout]    |            ^^^^^            --------------------  ------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 27 -         self.0.get_mut(&id).map(|s| s.leave(clients)).ok_or(ClientError::NoServer)
[INFO] [stdout] 27 +         self.0.get_mut(&id).map(|s| s.leave(/* &ClientList */, /* side */)).ok_or(ClientError::NoServer)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let playing = side.and_then(|side| {
[INFO] [stdout]    |                                      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |             } else if self.players[side.other() as usize].is_none() {
[INFO] [stdout]    |                                    ---- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let playing = side.and_then(|side: /* Type */| {
[INFO] [stdout]    |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pieces` on type `Board`
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:49:20
[INFO] [stdout]    |
[INFO] [stdout] 49 |         self.board.pieces.iter().for_each(|(pos, piece)| {
[INFO] [stdout]    |                    ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `players`, `turn`, `history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn leave(&mut self, clients: &ClientList, side: DefaultSides) {
[INFO] [stdout]    |                                                                      - help: try adding a return type: `-> [std::option::Option<host::Side>; 2]`
[INFO] [stdout] 55 |         self.players
[INFO] [stdout]    |         ^^^^^^^^^^^^ expected `()`, found `[Option<Side>; 2]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                   found array `[std::option::Option<host::Side>; 2]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `host::ServerList` in the current scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut games = ServerList::new();
[INFO] [stdout]    |                                 ^^^ function or associated item not found in `host::ServerList`
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/chess-server/src/board/host.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ServerList(std::collections::HashMap<ServerId, Server>);
[INFO] [stdout]    | --------------------- function or associated item `new` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]            candidate #1: `UniformSampler`
[INFO] [stdout]            candidate #2: `ahash::HashMapExt`
[INFO] [stdout]            candidate #3: `ahash::HashSetExt`
[INFO] [stdout]            candidate #4: `brotli::enc::backward_references::hash_to_binary_tree::Allocable`
[INFO] [stdout]            candidate #5: `brotli::enc::threading::AnyBoxConstructor`
[INFO] [stdout]            candidate #6: `crypto_common::KeyInit`
[INFO] [stdout]            candidate #7: `crypto_common::KeyIvInit`
[INFO] [stdout]            candidate #8: `digest::VariableOutput`
[INFO] [stdout]            candidate #9: `digest::VariableOutput`
[INFO] [stdout]            candidate #10: `digest::core_api::VariableOutputCore`
[INFO] [stdout]            candidate #11: `digest::digest::Digest`
[INFO] [stdout]            candidate #12: `digest::digest::Digest`
[INFO] [stdout]            candidate #13: `digest::mac::Mac`
[INFO] [stdout]            candidate #14: `parking_lot_core::thread_parker::ThreadParkerT`
[INFO] [stdout]            candidate #15: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]            candidate #16: `ring::aead::BoundKey`
[INFO] [stdout]            candidate #17: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:130
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...: board.pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                  ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         endpoint.value().send(ServerMessage::Moves { from: pos, to : board.pieces.at(&pos).into_iter().flat_map(|p: /* Type */| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                                                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `side` on type `&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:61:36
[INFO] [stdout]    |
[INFO] [stdout] 61 |                         match game.side {
[INFO] [stdout]    |                                    ^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:63:67
[INFO] [stdout]    |
[INFO] [stdout] 63 | ...                   let board = servers.get_mut(&game.id).unwrap();
[INFO] [stdout]    |                                                         ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `&&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         if client.value().game.as_ref().filter(|g| g.id == game.id).is_some() {
[INFO] [stdout]    |                                                                      ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0610]: `usize` is a primitive type and therefore doesn't have fields
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:91:81
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         if client.value().game.as_ref().filter(|g| g.id == game.id).is_some() {
[INFO] [stdout]    |                                                                                 ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `EndGame` found for enum `ServerMessage` in the current scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:92:64
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...                   client.value().send(ServerMessage::EndGame);
[INFO] [stdout]    |                                                          ^^^^^^^ variant or associated item not found in `ServerMessage`
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/chess-server/src/board/message.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ServerMessage {
[INFO] [stdout]    | ---------------------- variant or associated item `EndGame` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/generate_new_token.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 | /             crate::utils::send_multipart_email(
[INFO] [stdout] 43 | |                 "RustAuth - Let's get you verified".to_string(),
[INFO] [stdout] 44 | |                 visible_user_detail.id,
[INFO] [stdout] 45 | |                 visible_user_detail.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/login.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 |           Ok(loggedin_user) => match tokio::task::spawn_blocking(move || {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 16 | |             crate::utils::verify_password(loggedin_user.password.as_ref(), user.password.as_bytes())
[INFO] [stdout] 17 | |         })
[INFO] [stdout] 18 | |         .await
[INFO] [stdout]    | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/password_change/request_change.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 | /             crate::utils::send_multipart_email(
[INFO] [stdout] 31 | |                 "RustAuth - Password Reset Instructions".to_string(),
[INFO] [stdout] 32 | |                 visible_user_detail.id,
[INFO] [stdout] 33 | |                 visible_user_detail.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 39 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/server/routes/users/register.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | /     crate::utils::send_multipart_email(
[INFO] [stdout] 90 | |         "RustAuth - Let's get you verified".to_string(),
[INFO] [stdout] 91 | |         user_id,
[INFO] [stdout] 92 | |         create_new_user.email,
[INFO] [stdout] ...  |
[INFO] [stdout] 98 | |     .await
[INFO] [stdout]    | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:130:16
[INFO] [stdout]     |
[INFO] [stdout] 130 |     .fetch_one(&mut *transaction)
[INFO] [stdout]     |      --------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |       let user_id = match sqlx::query(
[INFO] [stdout]     |  _________________________^
[INFO] [stdout] 121 | |         "INSERT INTO users (email, password, first_name, last_name) VALUES ($1, $2, $3, $4) RETURNING id",
[INFO] [stdout] 122 | |     )
[INFO] [stdout] 123 | |     .bind(&new_user.email)
[INFO] [stdout] ...   |
[INFO] [stdout] 129 | |    })
[INFO] [stdout] 130 | |     .fetch_one(&mut *transaction)
[INFO] [stdout]     | |_________________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 |     .fetch_one(&mut *transaction)
[INFO] [stdout]     |      --------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:140:11
[INFO] [stdout]     |
[INFO] [stdout] 140 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 141 | |         "INSERT INTO user_profile (user_id) 
[INFO] [stdout] 142 | |                 VALUES ($1) 
[INFO] [stdout] 143 | |             ON CONFLICT (user_id) 
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |     .map(|row: sqlx::postgres::PgRow| -> uuid::Uuid { row.get("user_id") })
[INFO] [stdout] 149 | |     .fetch_one(&mut *transaction)
[INFO] [stdout]     | |_________________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/register.rs:150:6
[INFO] [stdout]     |
[INFO] [stdout] 150 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub async fn fetch_one<'e, 'c: 'e, E>(self, executor: E) -> Result<O, Error>
[INFO] [stdout]     |                  --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 456 |         E: 'e + Executor<'c, Database = DB>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Map::<'q, DB, F, A>::fetch_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |     .execute(&mut *transaction)
[INFO] [stdout]     |      ------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 219 | |         "
[INFO] [stdout] 220 | |         UPDATE 
[INFO] [stdout] 221 | |             users 
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |     .bind(user_id)
[INFO] [stdout] 247 | |     .execute(&mut *transaction)
[INFO] [stdout]     | |_______________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:248:6
[INFO] [stdout]     |
[INFO] [stdout] 248 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:285:14
[INFO] [stdout]     |
[INFO] [stdout] 285 |     .execute(&mut *transaction)
[INFO] [stdout]     |      ------- ^^^^^^^^^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |      |
[INFO] [stdout]     |      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:259:11
[INFO] [stdout]     |
[INFO] [stdout] 259 |       match sqlx::query(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 260 | |         "
[INFO] [stdout] 261 | |         UPDATE 
[INFO] [stdout] 262 | |             user_profile 
[INFO] [stdout] ...   |
[INFO] [stdout] 284 | |     .bind(user_id)
[INFO] [stdout] 285 | |     .execute(&mut *transaction)
[INFO] [stdout]     | |_______________________________^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Transaction<'_, Postgres>: Executor<'_>` is not satisfied
[INFO] [stdout]    --> crates/chess-server/src/server/routes/users/update_user.rs:286:6
[INFO] [stdout]     |
[INFO] [stdout] 286 |     .await
[INFO] [stdout]     |      ^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, Postgres>`
[INFO] [stdout]     |
[INFO] [stdout] help: the following other types implement trait `Executor<'c>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/connection/executor.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 |   impl<'c> Executor<'c> for &'c mut PgConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/any/connection/executor.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 |   impl<'c> Executor<'c> for &'c mut AnyConnection {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut AnyConnection` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-postgres-0.8.1/src/listener.rs:328:1
[INFO] [stdout]     |
[INFO] [stdout] 328 |   impl<'c> Executor<'c> for &'c mut PgListener {
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'c mut PgListener` implements `Executor<'c>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/pool/executor.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | / impl<'p, DB: Database> Executor<'p> for &'_ Pool<DB>
[INFO] [stdout]  13 | | where
[INFO] [stdout]  14 | |     for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>,
[INFO] [stdout]     | |________________________________________________________________^ `&Pool<DB>` implements `Executor<'p>`
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, A>::execute`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.1/src/query.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
[INFO] [stdout]     |                  ------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 188 |         E: Executor<'c, Database = DB>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[tracing::instrument(name = "Issue pasetors token", skip(redis_connection))]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]    = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]   --> crates/chess-server/src/server/utils/tokens.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |         .set(
[INFO] [stdout]    |          ^^^
[INFO] [stdout]    = note: `#[deny(dependency_on_unit_never_type_fallback)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout]    = note: this error originates in the attribute macro `tracing::instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[tracing::instrument(name = "Verify pasetors token", skip(token, redis_connection))]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> crates/chess-server/src/server/utils/tokens.rs:171:22
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     .del(redis_key.clone())
[INFO] [stdout]     |                      ^^^
[INFO] [stdout]     = note: this error originates in the attribute macro `tracing::instrument` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:85:43
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn get_settings() -> Result<Settings, config::ConfigError> {
[INFO] [stdout]    |                                           ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0107, E0277, E0282, E0308, E0425, E0432, E0433, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess-server` (bin "chess-server") due to 114 previous errors; 7 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:27:39
[INFO] [stdout]    |
[INFO] [stdout] 27 |         self.0.get_mut(&id).map(|s| s.leave(clients)).ok_or(ClientError::NoServer)
[INFO] [stdout]    |                                       ^^^^^---------
[INFO] [stdout]    |                                            ||
[INFO] [stdout]    |                                            |expected `&ClientList`, found `()`
[INFO] [stdout]    |                                            argument #2 is missing
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn leave(&mut self, clients: &ClientList, side: DefaultSides) {
[INFO] [stdout]    |            ^^^^^            --------------------  ------------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]    |
[INFO] [stdout] 27 -         self.0.get_mut(&id).map(|s| s.leave(clients)).ok_or(ClientError::NoServer)
[INFO] [stdout] 27 +         self.0.get_mut(&id).map(|s| s.leave(/* &ClientList */, /* side */)).ok_or(ClientError::NoServer)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let playing = side.and_then(|side| {
[INFO] [stdout]    |                                      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |             } else if self.players[side.other() as usize].is_none() {
[INFO] [stdout]    |                                    ---- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let playing = side.and_then(|side: /* Type */| {
[INFO] [stdout]    |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `pieces` on type `Board`
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:49:20
[INFO] [stdout]    |
[INFO] [stdout] 49 |         self.board.pieces.iter().for_each(|(pos, piece)| {
[INFO] [stdout]    |                    ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `players`, `turn`, `history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/chess-server/src/board/host.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn leave(&mut self, clients: &ClientList, side: DefaultSides) {
[INFO] [stdout]    |                                                                      - help: try adding a return type: `-> [std::option::Option<host::Side>; 2]`
[INFO] [stdout] 55 |         self.players
[INFO] [stdout]    |         ^^^^^^^^^^^^ expected `()`, found `[Option<Side>; 2]`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                   found array `[std::option::Option<host::Side>; 2]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `host::ServerList` in the current scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:16:33
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut games = ServerList::new();
[INFO] [stdout]    |                                 ^^^ function or associated item not found in `host::ServerList`
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/chess-server/src/board/host.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ServerList(std::collections::HashMap<ServerId, Server>);
[INFO] [stdout]    | --------------------- function or associated item `new` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]            candidate #1: `UniformSampler`
[INFO] [stdout]            candidate #2: `ahash::HashMapExt`
[INFO] [stdout]            candidate #3: `ahash::HashSetExt`
[INFO] [stdout]            candidate #4: `brotli::enc::backward_references::hash_to_binary_tree::Allocable`
[INFO] [stdout]            candidate #5: `brotli::enc::threading::AnyBoxConstructor`
[INFO] [stdout]            candidate #6: `crypto_common::KeyInit`
[INFO] [stdout]            candidate #7: `crypto_common::KeyIvInit`
[INFO] [stdout]            candidate #8: `digest::VariableOutput`
[INFO] [stdout]            candidate #9: `digest::VariableOutput`
[INFO] [stdout]            candidate #10: `digest::core_api::VariableOutputCore`
[INFO] [stdout]            candidate #11: `digest::digest::Digest`
[INFO] [stdout]            candidate #12: `digest::digest::Digest`
[INFO] [stdout]            candidate #13: `digest::mac::Mac`
[INFO] [stdout]            candidate #14: `parking_lot_core::thread_parker::ThreadParkerT`
[INFO] [stdout]            candidate #15: `rand::distributions::uniform::UniformSampler`
[INFO] [stdout]            candidate #16: `ring::aead::BoundKey`
[INFO] [stdout]            candidate #17: `typenum::marker_traits::Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:51:130
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...: board.pieces.at(&pos).into_iter().flat_map(|p| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                  ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         endpoint.value().send(ServerMessage::Moves { from: pos, to : board.pieces.at(&pos).into_iter().flat_map(|p: /* Type */| p.moves(&board, pos)).collect() });
[INFO] [stdout]    |                                                                                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `side` on type `&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:61:36
[INFO] [stdout]    |
[INFO] [stdout] 61 |                         match game.side {
[INFO] [stdout]    |                                    ^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:63:67
[INFO] [stdout]    |
[INFO] [stdout] 63 | ...                   let board = servers.get_mut(&game.id).unwrap();
[INFO] [stdout]    |                                                         ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `&&usize`
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         if client.value().game.as_ref().filter(|g| g.id == game.id).is_some() {
[INFO] [stdout]    |                                                                      ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0610]: `usize` is a primitive type and therefore doesn't have fields
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:91:81
[INFO] [stdout]    |
[INFO] [stdout] 91 |                         if client.value().game.as_ref().filter(|g| g.id == game.id).is_some() {
[INFO] [stdout]    |                                                                                 ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `EndGame` found for enum `ServerMessage` in the current scope
[INFO] [stdout]   --> crates/chess-server/src/board/mod.rs:92:64
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...                   client.value().send(ServerMessage::EndGame);
[INFO] [stdout]    |                                                          ^^^^^^^ variant or associated item not found in `ServerMessage`
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/chess-server/src/board/message.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ServerMessage {
[INFO] [stdout]    | ---------------------- variant or associated item `EndGame` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `config`
[INFO] [stdout]   --> crates/chess-server/src/server/settings.rs:85:43
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn get_settings() -> Result<Settings, config::ConfigError> {
[INFO] [stdout]    |                                           ^^^^^^ use of unresolved module or unlinked crate `config`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `config`, use `cargo add config` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0107, E0277, E0282, E0308, E0425, E0432, E0433, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chess-server` (bin "chess-server" test) due to 114 previous errors; 7 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "30949311eea02ba58e5c59424294e5e85673cddd851744f6540e9518bf02ec6a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "30949311eea02ba58e5c59424294e5e85673cddd851744f6540e9518bf02ec6a", kill_on_drop: false }`
[INFO] [stdout] 30949311eea02ba58e5c59424294e5e85673cddd851744f6540e9518bf02ec6a
