[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 + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn drain_changes(&mut self) -> impl Iterator + '_ { [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 { [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 + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn drain_changes(&mut self) -> impl Iterator + '_ { [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 { [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, [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 { [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, [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, [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, [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, [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, 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 { [INFO] [stdout] | ^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 18 | Join { playing: Option, turn: Turn, }, [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 { [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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, [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, [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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, [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 [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 [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, 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 { [INFO] [stdout] | ^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 18 | Join { playing: Option, turn: Turn, }, [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; 2]` [INFO] [stdout] 55 | self.players [INFO] [stdout] | ^^^^^^^^^^^^ expected `()`, found `[Option; 2]` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found array `[std::option::Option; 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); [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [INFO] [stdout] 13 | | where [INFO] [stdout] 14 | | for<'c> &'c mut DB::Connection: Executor<'c, Database = DB>, [INFO] [stdout] | |________________________________________________________________^ `&Pool` 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 [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 [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 [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 { [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; 2]` [INFO] [stdout] 55 | self.players [INFO] [stdout] | ^^^^^^^^^^^^ expected `()`, found `[Option; 2]` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found array `[std::option::Option; 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); [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 { [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