[INFO] cloning repository https://github.com/HarrisDePerceptron/rust-encrypted-chat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HarrisDePerceptron/rust-encrypted-chat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarrisDePerceptron%2Frust-encrypted-chat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarrisDePerceptron%2Frust-encrypted-chat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92766dd4837e4c5b13dcd50da3d668e627a699ef
[INFO] testing HarrisDePerceptron/rust-encrypted-chat against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarrisDePerceptron%2Frust-encrypted-chat" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/HarrisDePerceptron/rust-encrypted-chat
[INFO] finished tweaking git repo https://github.com/HarrisDePerceptron/rust-encrypted-chat
[INFO] tweaked toml for git repo https://github.com/HarrisDePerceptron/rust-encrypted-chat written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HarrisDePerceptron/rust-encrypted-chat on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HarrisDePerceptron/rust-encrypted-chat 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.55
[INFO] [stderr]   Downloaded typetag-impl v0.2.7
[INFO] [stderr]   Downloaded serde_derive v1.0.152
[INFO] [stderr]   Downloaded typetag v0.2.7
[INFO] [stderr]   Downloaded ghost v0.1.9
[INFO] [stderr]   Downloaded inventory v0.3.4
[INFO] [stderr]   Downloaded uuid v1.3.0
[INFO] [stderr]   Downloaded erased-serde v0.3.25
[INFO] [stderr]   Downloaded redis v0.23.0
[INFO] [stderr]   Downloaded syn v2.0.13
[INFO] [stderr]   Downloaded tokio v1.28.2
[INFO] [stderr]   Downloaded trust-dns-resolver v0.21.2
[INFO] [stderr]   Downloaded enum-as-inner v0.4.0
[INFO] [stderr]   Downloaded trust-dns-proto v0.21.2
[INFO] [stderr]   Downloaded mongodb v2.5.0
[INFO] [stderr]   Downloaded ipconfig v0.3.1
[INFO] [stderr]   Downloaded serde_bytes v0.11.9
[INFO] [stderr]   Downloaded rustc_version_runtime v0.2.1
[INFO] [stderr]   Downloaded semver v1.0.16
[INFO] [stderr]   Downloaded time-macros v0.2.6
[INFO] [stderr]   Downloaded time v0.3.17
[INFO] [stderr]   Downloaded bson v2.6.1
[INFO] [stderr]   Downloaded is-terminal v0.4.5
[INFO] [stderr]   Downloaded io-lifetimes v1.0.9
[INFO] [stderr]   Downloaded rustix v0.36.11
[INFO] [stderr]   Downloaded clap_derive v4.3.0
[INFO] [stderr]   Downloaded clap v4.3.0
[INFO] [stderr]   Downloaded anstyle v1.0.0
[INFO] [stderr]   Downloaded clap_builder v4.3.0
[INFO] [stderr]   Downloaded argon2 v0.5.0
[INFO] [stderr]   Downloaded bytestring v1.2.0
[INFO] [stderr]   Downloaded anyhow v1.0.71
[INFO] [stderr]   Downloaded actix-web-actors v4.2.0
[INFO] [stderr]   Downloaded anstyle-parse v0.2.0
[INFO] [stderr]   Downloaded actix-web v4.3.0
[INFO] [stderr]   Downloaded aes v0.8.2
[INFO] [stderr]   Downloaded zstd-safe v6.0.3+zstd.1.5.2
[INFO] [stderr]   Downloaded actix-http v3.3.0
[INFO] [stderr]   Downloaded zstd v0.12.3+zstd.1.5.2
[INFO] [stderr]   Downloaded actix v0.13.0
[INFO] [stderr]   Downloaded zstd-sys v2.0.6+zstd.1.5.2
[INFO] [stderr]   Downloaded actix_derive v0.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503
[INFO] running `Command { std: "docker" "start" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.55
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling futures-core v0.3.28
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling tokio v1.28.2
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling itoa v1.0.5
[INFO] [stderr]    Compiling mio v0.8.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling futures-sink v0.3.28
[INFO] [stderr]    Compiling futures-io v0.3.28
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling futures-task v0.3.28
[INFO] [stderr]    Compiling digest v0.10.6
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]    Compiling tracing-core v0.1.30
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]    Compiling time-macros v0.2.6
[INFO] [stderr]    Compiling ryu v1.0.12
[INFO] [stderr]    Compiling http v0.2.8
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling jobserver v0.1.25
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling paste v1.0.11
[INFO] [stderr]    Compiling syn v2.0.13
[INFO] [stderr]    Compiling cc v1.0.79
[INFO] [stderr]    Compiling tracing v0.1.37
[INFO] [stderr]    Compiling serde_json v1.0.93
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.0
[INFO] [stderr]    Compiling bytestring v1.2.0
[INFO] [stderr]    Compiling time v0.3.17
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling zstd-safe v6.0.3+zstd.1.5.2
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling io-lifetimes v1.0.9
[INFO] [stderr]    Compiling local-waker v0.1.3
[INFO] [stderr]    Compiling async-trait v0.1.68
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling polyval v0.6.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling zstd-sys v2.0.6+zstd.1.5.2
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]    Compiling rustix v0.36.11
[INFO] [stderr]    Compiling actix-service v2.0.2
[INFO] [stderr]    Compiling miniz_oxide v0.6.2
[INFO] [stderr]    Compiling ghash v0.5.0
[INFO] [stderr]    Compiling brotli-decompressor v2.3.4
[INFO] [stderr]    Compiling actix-utils v3.0.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.2
[INFO] [stderr]    Compiling sha2 v0.10.6
[INFO] [stderr]    Compiling aead v0.5.1
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling aes-gcm v0.10.1
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling brotli v3.3.4
[INFO] [stderr]    Compiling flate2 v1.0.25
[INFO] [stderr]    Compiling hkdf v0.12.3
[INFO] [stderr]    Compiling sha1 v0.10.5
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling language-tags v0.3.2
[INFO] [stderr]    Compiling base64 v0.20.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.14
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling is-terminal v0.4.5
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling actix-router v0.5.1
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]    Compiling webpki v0.22.0
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling matches v0.1.10
[INFO] [stderr]    Compiling anyhow v1.0.71
[INFO] [stderr]    Compiling match_cfg v0.1.0
[INFO] [stderr]    Compiling hostname v0.3.1
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling actix-macros v0.2.3
[INFO] [stderr]    Compiling actix-web-codegen v4.1.0
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling enum-as-inner v0.4.0
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling rustc_version_runtime v0.2.1
[INFO] [stderr]    Compiling anstyle-parse v0.2.0
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling rustls v0.20.8
[INFO] [stderr]    Compiling sct v0.7.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling ipnet v2.7.2
[INFO] [stderr]    Compiling erased-serde v0.3.25
[INFO] [stderr]    Compiling data-encoding v2.4.0
[INFO] [stderr]    Compiling anstyle v1.0.0
[INFO] [stderr]    Compiling anstream v0.3.2
[INFO] [stderr]    Compiling resolv-conf v0.7.0
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling crossbeam-channel v0.5.6
[INFO] [stderr]    Compiling local-channel v0.1.3
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling ctor v0.1.26
[INFO] [stderr]    Compiling actix_derive v0.6.0
[INFO] [stderr]    Compiling ghost v0.1.9
[INFO] [stderr]    Compiling clap_lex v0.5.0
[INFO] [stderr]    Compiling base64ct v1.6.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.56
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling clap_builder v4.3.0
[INFO] [stderr]    Compiling simple_asn1 v0.6.2
[INFO] [stderr]    Compiling inventory v0.3.4
[INFO] [stderr]    Compiling futures-executor v0.3.28
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling typed-builder v0.10.0
[INFO] [stderr]    Compiling tokio-util v0.7.4
[INFO] [stderr]    Compiling actix-rt v2.8.0
[INFO] [stderr]    Compiling actix-codec v0.5.0
[INFO] [stderr]    Compiling h2 v0.3.15
[INFO] [stderr]    Compiling actix-server v2.2.0
[INFO] [stderr]    Compiling trust-dns-proto v0.21.2
[INFO] [stderr]    Compiling tokio-rustls v0.23.4
[INFO] [stderr]    Compiling combine v4.6.6
[INFO] [stderr]    Compiling trust-dns-resolver v0.21.2
[INFO] [stderr]    Compiling actix v0.13.0
[INFO] [stderr]    Compiling webpki-roots v0.22.6
[INFO] [stderr]    Compiling clap_derive v4.3.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling uuid v1.3.0
[INFO] [stderr]    Compiling serde_bytes v0.11.9
[INFO] [stderr]    Compiling chrono v0.4.26
[INFO] [stderr]    Compiling bson v2.6.1
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling typetag-impl v0.2.7
[INFO] [stderr]    Compiling md-5 v0.10.5
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling sha-1 v0.10.1
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling stringprep v0.1.2
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling env_logger v0.10.0
[INFO] [stderr]    Compiling argon2 v0.5.0
[INFO] [stderr]    Compiling typetag v0.2.7
[INFO] [stderr]    Compiling clap v4.3.0
[INFO] [stderr]    Compiling jsonwebtoken v8.3.0
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling mongodb v2.5.0
[INFO] [stderr]    Compiling redis v0.23.0
[INFO] [stderr]    Compiling zstd v0.12.3+zstd.1.5.2
[INFO] [stderr]    Compiling actix-http v3.3.0
[INFO] [stderr]    Compiling actix-web v4.3.0
[INFO] [stderr]    Compiling actix-session v0.7.2
[INFO] [stderr]    Compiling actix-web-actors v4.2.0
[INFO] [stderr]    Compiling actix-identity v0.5.2
[INFO] [stderr]    Compiling encrypted-chat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `WrapFuture`
[INFO] [stdout]  --> src/server/websocket.rs:4:80
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix::{Actor, Addr, Context, Handler, Message, Recipient, ResponseFuture, WrapFuture};
[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: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::app::websocket::{WebsocketService,WebsocketServiceTrait, ChannelData};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket_provider_redis::WebsocketPersistence`
[INFO] [stdout]   --> src/server/websocket.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use super::websocket_provider_redis::WebsocketPersistence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]   --> src/server/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use tokio;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket::WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::WebSocketServer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActorFutureExt`, `AsyncContext`, `ContextFutureSpawner`, `Context`, and `WrapFuture`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use actix::{Context, Actor, WrapFuture, ActorFutureExt, ContextFutureSpawner, AsyncContext};
[INFO] [stdout]   |             ^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_redis_adpter.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::{WebSocketServer};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChannelData`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait, WebsocketServiceError};
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RedisProviderError`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::persistence::redis::{RedisProvider, RedisProviderError};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::{sync::mpsc, fmt::format};
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `application_model::ApplicationModel`, `application_service::ServiceTrait`, `persistence`, and `redis::service::RedisApplicationService`
[INFO] [stdout]  --> src/app/websocket/service.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{redis::service::RedisApplicationService, application_service::ServiceTrait, application_model::ApplicationModel}, persistence};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::application_service`
[INFO] [stdout]  --> src/app/websocket/service.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::app::application_service;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataStructure`
[INFO] [stdout]  --> src/app/websocket/service.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::app::redis::model::{DataStructure};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]   --> src/app/websocket/service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/app/websocket/service_model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::persistence::mongo::MongoProvider`
[INFO] [stdout]  --> src/app/chat/service.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::persistence::mongo::MongoProvider;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]  --> src/application_factory.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut room = dao::Room::new(name, user);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut user = dao::DaoRequest::new(dao::User::new(name));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | /     async fn create_unordered_set(
[INFO] [stdout] 102 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 103 | |         key: &str,
[INFO] [stdout] 104 | |         value: &str,
[INFO] [stdout] 105 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:106:14
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | /     async fn create_kv(
[INFO] [stdout] 114 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 115 | |         key: &str,
[INFO] [stdout] 116 | |         value: &str,
[INFO] [stdout] 117 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | /     async fn delete_any(
[INFO] [stdout] 185 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 186 | |         id: &str,
[INFO] [stdout] 187 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del(id).await.map_err(|e| {
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del::<_, ()>(id).await.map_err(|e| {
[INFO] [stdout]     |                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/persistence/mongo.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut client_options = ClientOptions::parse(&self.uri)
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/server/websocket_redis_adpter.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | /         loop{
[INFO] [stdout] 105 | |             println!("hi in the loop guys");
[INFO] [stdout] 106 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 145 |
[INFO] [stdout] 146 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]   --> src/app/websocket/service.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     async fn store(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]   --> src/app/websocket/service.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd("channels",data_str)
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd::<_, _, ()>("channels",data_str)
[INFO] [stdout]    |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/app/websocket/service.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | /         loop{
[INFO] [stdout] 164 | |             println!("hi in the loop guys");
[INFO] [stdout] 165 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 188 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel`
[INFO] [stdout]    --> src/server/websocket.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let channel = match self.get_channel(&channel_name){
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/app/websocket/service.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for i in 0..self.max_channels {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 Err(e) => continue,
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `running`
[INFO] [stdout]    --> src/app/websocket/service.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let running = self.running.clone();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     Err(e) => continue,
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/app/websocket/service.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let res:Result<(), redis::RedisError>= conn
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `token` is never read
[INFO] [stdout]   --> src/middleware/util_middleware.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut token = String::new();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 55 |             token = v.to_string();
[INFO] [stdout]    |             ----- `token` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures_util::Future` that must be used
[INFO] [stdout]    --> src/server/websocket.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |         self.join_channel_default(&msg.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WebsocketServiceTrait` and `WebsocketService`
[INFO] [stdout]   --> src/main.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 | use encrypted_chat::app::websocket::{WebsocketService, WebsocketServiceTrait};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/main.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | use log::{info, warn};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WebsocketAdapter`
[INFO] [stdout]   --> src/main.rs:35:77
[INFO] [stdout]    |
[INFO] [stdout] 35 | use encrypted_chat::server::websocket_redis_adpter::{RedisWebsocketAdapter, WebsocketAdapter};
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 46s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: encrypted-chat v0.1.0 (/opt/rustwide/workdir), redis v0.23.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `WrapFuture`
[INFO] [stdout]  --> src/server/websocket.rs:4:80
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix::{Actor, Addr, Context, Handler, Message, Recipient, ResponseFuture, WrapFuture};
[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: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::app::websocket::{WebsocketService,WebsocketServiceTrait, ChannelData};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket_provider_redis::WebsocketPersistence`
[INFO] [stdout]   --> src/server/websocket.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use super::websocket_provider_redis::WebsocketPersistence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]   --> src/server/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use tokio;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket::WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::WebSocketServer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActorFutureExt`, `AsyncContext`, `ContextFutureSpawner`, `Context`, and `WrapFuture`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use actix::{Context, Actor, WrapFuture, ActorFutureExt, ContextFutureSpawner, AsyncContext};
[INFO] [stdout]   |             ^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_redis_adpter.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::{WebSocketServer};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChannelData`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait, WebsocketServiceError};
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RedisProviderError`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::persistence::redis::{RedisProvider, RedisProviderError};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::{sync::mpsc, fmt::format};
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `application_model::ApplicationModel`, `application_service::ServiceTrait`, `persistence`, and `redis::service::RedisApplicationService`
[INFO] [stdout]  --> src/app/websocket/service.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{redis::service::RedisApplicationService, application_service::ServiceTrait, application_model::ApplicationModel}, persistence};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::application_service`
[INFO] [stdout]  --> src/app/websocket/service.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::app::application_service;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataStructure`
[INFO] [stdout]  --> src/app/websocket/service.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::app::redis::model::{DataStructure};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]   --> src/app/websocket/service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/app/websocket/service_model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::persistence::mongo::MongoProvider`
[INFO] [stdout]  --> src/app/chat/service.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::persistence::mongo::MongoProvider;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]  --> src/application_factory.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut room = dao::Room::new(name, user);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut user = dao::DaoRequest::new(dao::User::new(name));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | /     async fn create_unordered_set(
[INFO] [stdout] 102 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 103 | |         key: &str,
[INFO] [stdout] 104 | |         value: &str,
[INFO] [stdout] 105 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:106:14
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | /     async fn create_kv(
[INFO] [stdout] 114 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 115 | |         key: &str,
[INFO] [stdout] 116 | |         value: &str,
[INFO] [stdout] 117 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling encrypted-chat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | /     async fn delete_any(
[INFO] [stdout] 185 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 186 | |         id: &str,
[INFO] [stdout] 187 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del(id).await.map_err(|e| {
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del::<_, ()>(id).await.map_err(|e| {
[INFO] [stdout]     |                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/persistence/mongo.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut client_options = ClientOptions::parse(&self.uri)
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/server/websocket_redis_adpter.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | /         loop{
[INFO] [stdout] 105 | |             println!("hi in the loop guys");
[INFO] [stdout] 106 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 145 |
[INFO] [stdout] 146 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]   --> src/app/websocket/service.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     async fn store(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]   --> src/app/websocket/service.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd("channels",data_str)
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd::<_, _, ()>("channels",data_str)
[INFO] [stdout]    |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/app/websocket/service.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | /         loop{
[INFO] [stdout] 164 | |             println!("hi in the loop guys");
[INFO] [stdout] 165 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 188 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel`
[INFO] [stdout]    --> src/server/websocket.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let channel = match self.get_channel(&channel_name){
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/app/websocket/service.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for i in 0..self.max_channels {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 Err(e) => continue,
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `running`
[INFO] [stdout]    --> src/app/websocket/service.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let running = self.running.clone();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     Err(e) => continue,
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/app/websocket/service.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let res:Result<(), redis::RedisError>= conn
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `token` is never read
[INFO] [stdout]   --> src/middleware/util_middleware.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut token = String::new();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 55 |             token = v.to_string();
[INFO] [stdout]    |             ----- `token` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures_util::Future` that must be used
[INFO] [stdout]    --> src/server/websocket.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |         self.join_channel_default(&msg.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WebsocketServiceTrait` and `WebsocketService`
[INFO] [stdout]   --> src/main.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 | use encrypted_chat::app::websocket::{WebsocketService, WebsocketServiceTrait};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/main.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | use log::{info, warn};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WebsocketAdapter`
[INFO] [stdout]   --> src/main.rs:35:77
[INFO] [stdout]    |
[INFO] [stdout] 35 | use encrypted_chat::server::websocket_redis_adpter::{RedisWebsocketAdapter, WebsocketAdapter};
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrapFuture`
[INFO] [stdout]  --> src/server/websocket.rs:4:80
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix::{Actor, Addr, Context, Handler, Message, Recipient, ResponseFuture, WrapFuture};
[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: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::app::websocket::{WebsocketService,WebsocketServiceTrait, ChannelData};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket_provider_redis::WebsocketPersistence`
[INFO] [stdout]   --> src/server/websocket.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use super::websocket_provider_redis::WebsocketPersistence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]   --> src/server/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use tokio;
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::websocket::WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::WebSocketServer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActorFutureExt`, `AsyncContext`, `ContextFutureSpawner`, `Context`, and `WrapFuture`
[INFO] [stdout]  --> src/server/websocket_provider_redis.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use actix::{Context, Actor, WrapFuture, ActorFutureExt, ContextFutureSpawner, AsyncContext};
[INFO] [stdout]   |             ^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_provider_redis.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WebSocketServer`
[INFO] [stdout]  --> src/server/websocket_redis_adpter.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::websocket::{WebSocketServer};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChannelData`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait, WebsocketServiceError};
[INFO] [stdout]    |                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::model`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::model;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RedisProviderError`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::persistence::redis::{RedisProvider, RedisProviderError};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]   --> src/server/websocket_redis_adpter.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::{sync::mpsc, fmt::format};
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `application_model::ApplicationModel`, `application_service::ServiceTrait`, `persistence`, and `redis::service::RedisApplicationService`
[INFO] [stdout]  --> src/app/websocket/service.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{redis::service::RedisApplicationService, application_service::ServiceTrait, application_model::ApplicationModel}, persistence};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::application_service`
[INFO] [stdout]  --> src/app/websocket/service.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::app::application_service;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataStructure`
[INFO] [stdout]  --> src/app/websocket/service.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::app::redis::model::{DataStructure};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]   --> src/app/websocket/service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/app/websocket/service_model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::persistence::mongo::MongoProvider`
[INFO] [stdout]  --> src/app/chat/service.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::persistence::mongo::MongoProvider;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio`
[INFO] [stdout]  --> src/application_factory.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut room = dao::Room::new(name, user);
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app/chat/service.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut user = dao::DaoRequest::new(dao::User::new(name));
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | /     async fn create_unordered_set(
[INFO] [stdout] 102 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 103 | |         key: &str,
[INFO] [stdout] 104 | |         value: &str,
[INFO] [stdout] 105 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:106:14
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 106 |         conn.sadd::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | /     async fn create_kv(
[INFO] [stdout] 114 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 115 | |         key: &str,
[INFO] [stdout] 116 | |         value: &str,
[INFO] [stdout] 117 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:118:14
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set(key.to_string(), value.to_string())
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 118 |         conn.set::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stdout]     |                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/app/redis/service.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | /     async fn delete_any(
[INFO] [stdout] 185 | |         conn: &mut redis::aio::Connection,
[INFO] [stdout] 186 | |         id: &str,
[INFO] [stdout] 187 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stdout]     | |____________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/app/redis/service.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del(id).await.map_err(|e| {
[INFO] [stdout]     |              ^^^
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 188 |         conn.del::<_, ()>(id).await.map_err(|e| {
[INFO] [stdout]     |                 +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/persistence/mongo.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut client_options = ClientOptions::parse(&self.uri)
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/server/websocket_redis_adpter.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | /         loop{
[INFO] [stdout] 105 | |             println!("hi in the loop guys");
[INFO] [stdout] 106 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 145 |
[INFO] [stdout] 146 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this function depends on never type fallback being `()`
[INFO] [stdout]   --> src/app/websocket/service.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     async fn store(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]   --> src/app/websocket/service.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd("channels",data_str)
[INFO] [stdout]    |              ^^^^
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]    |
[INFO] [stdout] 96 |         conn.sadd::<_, _, ()>("channels",data_str)
[INFO] [stdout]    |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/app/websocket/service.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | /         loop{
[INFO] [stdout] 164 | |             println!("hi in the loop guys");
[INFO] [stdout] 165 | |             let msg = msg_stream.next().await;
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |         };
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 188 |           Ok(())
[INFO] [stdout]     |           ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `channel`
[INFO] [stdout]    --> src/server/websocket.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let channel = match self.get_channel(&channel_name){
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/app/websocket/service.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for i in 0..self.max_channels {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 Err(e) => continue,
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `running`
[INFO] [stdout]    --> src/app/websocket/service.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let running = self.running.clone();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/app/websocket/service.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     Err(e) => continue,
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/app/websocket/service.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let res:Result<(), redis::RedisError>= conn
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app/chat/service.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let result = col.update_one(query, update, None).await?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `token` is never read
[INFO] [stdout]   --> src/middleware/util_middleware.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut token = String::new();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 55 |             token = v.to_string();
[INFO] [stdout]    |             ----- `token` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures_util::Future` that must be used
[INFO] [stdout]    --> src/server/websocket.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |         self.join_channel_default(&msg.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.14s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: encrypted-chat v0.1.0 (/opt/rustwide/workdir), redis v0.23.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `WrapFuture`
[INFO] [stderr]  --> src/server/websocket.rs:4:80
[INFO] [stderr]   |
[INFO] [stderr] 4 | use actix::{Actor, Addr, Context, Handler, Message, Recipient, ResponseFuture, WrapFuture};
[INFO] [stderr]   |                                                                                ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stderr]   --> src/server/websocket.rs:24:29
[INFO] [stderr]    |
[INFO] [stderr] 24 | use crate::app::websocket::{WebsocketService,WebsocketServiceTrait, ChannelData};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::websocket_provider_redis::WebsocketPersistence`
[INFO] [stderr]   --> src/server/websocket.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use super::websocket_provider_redis::WebsocketPersistence;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio`
[INFO] [stderr]   --> src/server/websocket.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 | use tokio;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::websocket::WebSocketServer`
[INFO] [stderr]  --> src/server/websocket_provider_redis.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::websocket::WebSocketServer;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ActorFutureExt`, `AsyncContext`, `ContextFutureSpawner`, `Context`, and `WrapFuture`
[INFO] [stderr]  --> src/server/websocket_provider_redis.rs:9:13
[INFO] [stderr]   |
[INFO] [stderr] 9 | use actix::{Context, Actor, WrapFuture, ActorFutureExt, ContextFutureSpawner, AsyncContext};
[INFO] [stderr]   |             ^^^^^^^         ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ChannelData`, `WebsocketServiceTrait`, and `WebsocketService`
[INFO] [stderr]   --> src/server/websocket_provider_redis.rs:12:29
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::model`
[INFO] [stderr]   --> src/server/websocket_provider_redis.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use super::model;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WebSocketServer`
[INFO] [stderr]  --> src/server/websocket_redis_adpter.rs:2:24
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::websocket::{WebSocketServer};
[INFO] [stderr]   |                        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ChannelData`
[INFO] [stderr]   --> src/server/websocket_redis_adpter.rs:11:47
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::app::websocket::{WebsocketService, ChannelData,WebsocketServiceTrait, WebsocketServiceError};
[INFO] [stderr]    |                                               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::model`
[INFO] [stderr]   --> src/server/websocket_redis_adpter.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use super::model;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RedisProviderError`
[INFO] [stderr]   --> src/server/websocket_redis_adpter.rs:13:48
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::persistence::redis::{RedisProvider, RedisProviderError};
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fmt::format`
[INFO] [stderr]   --> src/server/websocket_redis_adpter.rs:23:23
[INFO] [stderr]    |
[INFO] [stderr] 23 | use std::{sync::mpsc, fmt::format};
[INFO] [stderr]    |                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `application_model::ApplicationModel`, `application_service::ServiceTrait`, `persistence`, and `redis::service::RedisApplicationService`
[INFO] [stderr]  --> src/app/websocket/service.rs:4:19
[INFO] [stderr]   |
[INFO] [stderr] 4 | ...::{redis::service::RedisApplicationService, application_service::ServiceTrait, application_model::ApplicationModel}, persistence};
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::app::application_service`
[INFO] [stderr]  --> src/app/websocket/service.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::app::application_service;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DataStructure`
[INFO] [stderr]  --> src/app/websocket/service.rs:8:32
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::app::redis::model::{DataStructure};
[INFO] [stderr]   |                                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `thiserror::Error`
[INFO] [stderr]   --> src/app/websocket/service.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use thiserror::Error;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Result`
[INFO] [stderr]  --> src/app/websocket/service_model.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use anyhow::Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::persistence::mongo::MongoProvider`
[INFO] [stderr]  --> src/app/chat/service.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::persistence::mongo::MongoProvider;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio`
[INFO] [stderr]  --> src/application_factory.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use tokio;
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/app/chat/service.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let mut room = dao::Room::new(name, user);
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/app/chat/service.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let mut user = dao::DaoRequest::new(dao::User::new(name));
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: this function depends on never type fallback being `()`
[INFO] [stderr]    --> src/app/redis/service.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 | /     async fn create_unordered_set(
[INFO] [stderr] 102 | |         conn: &mut redis::aio::Connection,
[INFO] [stderr] 103 | |         key: &str,
[INFO] [stderr] 104 | |         value: &str,
[INFO] [stderr] 105 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stderr]     | |____________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: specify the types explicitly
[INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stderr]    --> src/app/redis/service.rs:106:14
[INFO] [stderr]     |
[INFO] [stderr] 106 |         conn.sadd(key.to_string(), value.to_string())
[INFO] [stderr]     |              ^^^^
[INFO] [stderr]     = 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] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stderr]     = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] help: use `()` annotations to avoid fallback changes
[INFO] [stderr]     |
[INFO] [stderr] 106 |         conn.sadd::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stderr]     |                  ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: this function depends on never type fallback being `()`
[INFO] [stderr]    --> src/app/redis/service.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 113 | /     async fn create_kv(
[INFO] [stderr] 114 | |         conn: &mut redis::aio::Connection,
[INFO] [stderr] 115 | |         key: &str,
[INFO] [stderr] 116 | |         value: &str,
[INFO] [stderr] 117 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stderr]     | |____________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: specify the types explicitly
[INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stderr]    --> src/app/redis/service.rs:118:14
[INFO] [stderr]     |
[INFO] [stderr] 118 |         conn.set(key.to_string(), value.to_string())
[INFO] [stderr]     |              ^^^
[INFO] [stderr]     = 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] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stderr] help: use `()` annotations to avoid fallback changes
[INFO] [stderr]     |
[INFO] [stderr] 118 |         conn.set::<_, _, ()>(key.to_string(), value.to_string())
[INFO] [stderr]     |                 ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: this function depends on never type fallback being `()`
[INFO] [stderr]    --> src/app/redis/service.rs:184:5
[INFO] [stderr]     |
[INFO] [stderr] 184 | /     async fn delete_any(
[INFO] [stderr] 185 | |         conn: &mut redis::aio::Connection,
[INFO] [stderr] 186 | |         id: &str,
[INFO] [stderr] 187 | |     ) -> Result<(), ApplicationServiceError> {
[INFO] [stderr]     | |____________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: specify the types explicitly
[INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stderr]    --> src/app/redis/service.rs:188:14
[INFO] [stderr]     |
[INFO] [stderr] 188 |         conn.del(id).await.map_err(|e| {
[INFO] [stderr]     |              ^^^
[INFO] [stderr]     = 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] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stderr] help: use `()` annotations to avoid fallback changes
[INFO] [stderr]     |
[INFO] [stderr] 188 |         conn.del::<_, ()>(id).await.map_err(|e| {
[INFO] [stderr]     |                 +++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/persistence/mongo.rs:21:13
[INFO] [stderr]    |
[INFO] [stderr] 21 |         let mut client_options = ClientOptions::parse(&self.uri)
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/server/websocket_redis_adpter.rs:146:9
[INFO] [stderr]     |
[INFO] [stderr] 104 | /         loop{
[INFO] [stderr] 105 | |             println!("hi in the loop guys");
[INFO] [stderr] 106 | |             let msg = msg_stream.next().await;
[INFO] [stderr] ...   |
[INFO] [stderr] 144 | |         };
[INFO] [stderr]     | |_________- any code following this expression is unreachable
[INFO] [stderr] 145 |
[INFO] [stderr] 146 |           Ok(())
[INFO] [stderr]     |           ^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: this function depends on never type fallback being `()`
[INFO] [stderr]   --> src/app/websocket/service.rs:83:5
[INFO] [stderr]    |
[INFO] [stderr] 83 |     async fn store(
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: specify the types explicitly
[INFO] [stderr] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stderr]   --> src/app/websocket/service.rs:96:14
[INFO] [stderr]    |
[INFO] [stderr] 96 |         conn.sadd("channels",data_str)
[INFO] [stderr]    |              ^^^^
[INFO] [stderr]    = 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] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stderr] help: use `()` annotations to avoid fallback changes
[INFO] [stderr]    |
[INFO] [stderr] 96 |         conn.sadd::<_, _, ()>("channels",data_str)
[INFO] [stderr]    |                  ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/app/websocket/service.rs:188:9
[INFO] [stderr]     |
[INFO] [stderr] 163 | /         loop{
[INFO] [stderr] 164 | |             println!("hi in the loop guys");
[INFO] [stderr] 165 | |             let msg = msg_stream.next().await;
[INFO] [stderr] ...   |
[INFO] [stderr] 185 | |         };
[INFO] [stderr]     | |_________- any code following this expression is unreachable
[INFO] [stderr] ...
[INFO] [stderr] 188 |           Ok(())
[INFO] [stderr]     |           ^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `channel`
[INFO] [stderr]    --> src/server/websocket.rs:498:13
[INFO] [stderr]     |
[INFO] [stderr] 498 |         let channel = match self.get_channel(&channel_name){
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/app/websocket/service.rs:118:13
[INFO] [stderr]     |
[INFO] [stderr] 118 |         for i in 0..self.max_channels {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/app/websocket/service.rs:128:21
[INFO] [stderr]     |
[INFO] [stderr] 128 |                 Err(e) => continue,
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `running`
[INFO] [stderr]    --> src/app/websocket/service.rs:161:13
[INFO] [stderr]     |
[INFO] [stderr] 161 |         let running = self.running.clone();
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/app/websocket/service.rs:170:25
[INFO] [stderr]     |
[INFO] [stderr] 170 |                     Err(e) => continue,
[INFO] [stderr]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `res`
[INFO] [stderr]    --> src/app/websocket/service.rs:207:13
[INFO] [stderr]     |
[INFO] [stderr] 207 |         let res:Result<(), redis::RedisError>= conn
[INFO] [stderr]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/app/chat/service.rs:173:13
[INFO] [stderr]     |
[INFO] [stderr] 173 |         let result = col.update_one(query, update, None).await?;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/app/chat/service.rs:203:13
[INFO] [stderr]     |
[INFO] [stderr] 203 |         let result = col.update_one(query, update, None).await?;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `token` is never read
[INFO] [stderr]   --> src/middleware/util_middleware.rs:50:21
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let mut token = String::new();
[INFO] [stderr]    |                     ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 55 |             token = v.to_string();
[INFO] [stderr]    |             ----- `token` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused implementer of `futures_util::Future` that must be used
[INFO] [stderr]    --> src/server/websocket.rs:411:9
[INFO] [stderr]     |
[INFO] [stderr] 411 |         self.join_channel_default(&msg.0);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `encrypted-chat` (lib) generated 39 warnings (run `cargo fix --lib -p encrypted-chat` to apply 35 suggestions)
[INFO] [stderr] warning: `encrypted-chat` (lib test) generated 39 warnings (39 duplicates)
[INFO] [stderr] warning: unused imports: `WebsocketServiceTrait` and `WebsocketService`
[INFO] [stderr]   --> src/main.rs:28:38
[INFO] [stderr]    |
[INFO] [stderr] 28 | use encrypted_chat::app::websocket::{WebsocketService, WebsocketServiceTrait};
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `warn`
[INFO] [stderr]   --> src/main.rs:32:17
[INFO] [stderr]    |
[INFO] [stderr] 32 | use log::{info, warn};
[INFO] [stderr]    |                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WebsocketAdapter`
[INFO] [stderr]   --> src/main.rs:35:77
[INFO] [stderr]    |
[INFO] [stderr] 35 | use encrypted_chat::server::websocket_redis_adpter::{RedisWebsocketAdapter, WebsocketAdapter};
[INFO] [stderr]    |                                                                             ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `encrypted-chat` (bin "encrypted_chat" test) generated 3 warnings (run `cargo fix --bin "encrypted_chat" -p encrypted-chat --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: encrypted-chat v0.1.0 (/opt/rustwide/workdir), redis v0.23.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/encrypted_chat-e6efc21974ce9c5f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/encrypted_chat-011a39662b11fc17)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests encrypted_chat
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503", kill_on_drop: false }`
[INFO] [stdout] fad39b1c21455f6e742fa07882b73c6302b513e8201e809be987abe3658bd503
