[INFO] cloning repository https://github.com/UO276213/RustChat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/UO276213/RustChat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUO276213%2FRustChat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUO276213%2FRustChat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a315fd527c79db6fe449b679332e40eb00c25d7a
[INFO] checking UO276213/RustChat against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUO276213%2FRustChat" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/UO276213/RustChat
[INFO] finished tweaking git repo https://github.com/UO276213/RustChat
[INFO] tweaked toml for git repo https://github.com/UO276213/RustChat written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/UO276213/RustChat on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/UO276213/RustChat 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a575288a9fffd1575dbab6098588abf551a41d3bbd3b13ae41e988663fcb921e
[INFO] running `Command { std: "docker" "start" "-a" "a575288a9fffd1575dbab6098588abf551a41d3bbd3b13ae41e988663fcb921e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a575288a9fffd1575dbab6098588abf551a41d3bbd3b13ae41e988663fcb921e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a575288a9fffd1575dbab6098588abf551a41d3bbd3b13ae41e988663fcb921e", kill_on_drop: false }`
[INFO] [stdout] a575288a9fffd1575dbab6098588abf551a41d3bbd3b13ae41e988663fcb921e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 470d2becc6fc3d5ead94b04d6e9c1762159b30a096d1a559626e559ac301ab3e
[INFO] running `Command { std: "docker" "start" "-a" "470d2becc6fc3d5ead94b04d6e9c1762159b30a096d1a559626e559ac301ab3e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]     Checking pin-project-lite v0.2.10
[INFO] [stderr]    Compiling futures-task v0.3.28
[INFO] [stderr]     Checking futures-sink v0.3.28
[INFO] [stderr]    Compiling futures-channel v0.3.28
[INFO] [stderr]    Compiling futures-util v0.3.28
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]    Compiling tokio v1.29.1
[INFO] [stderr]     Checking futures-io v0.3.28
[INFO] [stderr]     Checking http v0.2.9
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking tracing-core v0.1.31
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking idna v0.4.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling serde v1.0.178
[INFO] [stderr]     Checking cpufeatures v0.2.9
[INFO] [stderr]     Checking tracing v0.1.37
[INFO] [stderr]     Checking url v2.4.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking input_buffer v0.4.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_json v1.0.104
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]    Compiling serde_derive v1.0.178
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]     Checking uuid v1.4.1
[INFO] [stderr]    Compiling quote v1.0.31
[INFO] [stderr]    Compiling syn v2.0.27
[INFO] [stderr]     Checking tungstenite v0.12.0
[INFO] [stderr]    Compiling futures-macro v0.3.28
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.2
[INFO] [stderr]     Checking pin-project v1.1.2
[INFO] [stderr]     Checking futures-executor v0.3.28
[INFO] [stderr]     Checking futures v0.3.28
[INFO] [stderr]     Checking tokio-util v0.7.8
[INFO] [stderr]     Checking tokio-tungstenite v0.13.0
[INFO] [stderr]     Checking h2 v0.3.20
[INFO] [stderr]     Checking hyper v0.14.27
[INFO] [stderr]     Checking RustChat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/chat_server.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Client {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     addr: SocketAddr,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Client` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<service::util::ServiceFn<{closure@src/main.rs:32:44: 32:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |           async move {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 31 | |             // service_fn converts our function into a `Service`
[INFO] [stdout] 32 | |             Ok::<_, Infallible>(service_fn(move |req| routes::handle_request(req, addr, Arc::clone(&state))
[INFO] [stdout] 33 | |             ))
[INFO] [stdout] 34 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<service::util::ServiceFn<{closure@src/main.rs:32:44: 32:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             Ok::<_, Infallible>(service_fn(move |req| routes::handle_request(req, addr, Arc::clone(&state))
[INFO] [stdout] 33 | |             ))
[INFO] [stdout]    | |______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:11:133
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub async fn handle_request(request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________________^
[INFO] [stdout] 12 | |     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:11:133
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub async fn handle_request(request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________________^
[INFO] [stdout] 12 | |     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | /     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] 15 | |             connect_chat(request, addr, state)
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |           ("/connect-chat", true) => {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 15 | |             connect_chat(request, addr, state)
[INFO] [stdout] 16 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |             connect_chat(request, addr, state)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 |           ("/connect-chat", false) => {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 18 | |             //handle the case where the url is /ws_echo, but does not have an Upgrade field
[INFO] [stdout] 19 | |             Ok(Response::new(Body::from("Getting even warmer, \
[INFO] [stdout] 20 | |                                                 try connecting to this url \
[INFO] [stdout] 21 | |                                                 using a websocket client.\n")))
[INFO] [stdout] 22 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 | /             Ok(Response::new(Body::from("Getting even warmer, \
[INFO] [stdout] 20 | |                                                 try connecting to this url \
[INFO] [stdout] 21 | |                                                 using a websocket client.\n")))
[INFO] [stdout]    | |_______________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |           (url, false) => {
[INFO] [stdout]    |  _________________________^
[INFO] [stdout] 24 | |             // handle any other url without an Upgrade header field
[INFO] [stdout] 25 | |
[INFO] [stdout] 26 | |             match url {
[INFO] [stdout] ...  |
[INFO] [stdout] 36 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 | /             match url {
[INFO] [stdout] 27 | |                 "/chat" => {
[INFO] [stdout] 28 | |                     let state = state.read().await;
[INFO] [stdout] 29 | |                     let res = serde_json::to_string(&state.messages).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |                                                 /connect-chat url instead.\n"))))
[INFO] [stdout] 35 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |                   "/chat" => {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 28 | |                     let state = state.read().await;
[INFO] [stdout] 29 | |                     let res = serde_json::to_string(&state.messages).unwrap();
[INFO] [stdout] 30 | |                     Ok(Response::new(Body::from(res)))
[INFO] [stdout] 31 | |                 }
[INFO] [stdout]    | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |                     Ok(Response::new(Body::from(res)))
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |                   _ => Ok(Response::new(Body::from(format!("This {url} url doesn't do \
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 33 | |                                                 much, try accessing the \
[INFO] [stdout] 34 | |                                                 /connect-chat url instead.\n"))))
[INFO] [stdout]    | |_________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |           (_, true) => {
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 38 | |             //handle any other url with an Upgrade header field
[INFO] [stdout] 39 | |             Ok(Response::new(Body::from("Getting warmer, but I'm \
[INFO] [stdout] 40 | |                                                 only letting you connect \
[INFO] [stdout] 41 | |                                                 via websocket over on \
[INFO] [stdout] 42 | |                                                 /connect-chat, try that url.\n")))
[INFO] [stdout] 43 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | /             Ok(Response::new(Body::from("Getting warmer, but I'm \
[INFO] [stdout] 40 | |                                                 only letting you connect \
[INFO] [stdout] 41 | |                                                 via websocket over on \
[INFO] [stdout] 42 | |                                                 /connect-chat, try that url.\n")))
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:47:125
[INFO] [stdout]    |
[INFO] [stdout] 47 |   fn connect_chat(mut request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________^
[INFO] [stdout] 48 | |     //assume request is a handshake, so create the handshake response
[INFO] [stdout] 49 | |     let response =
[INFO] [stdout] 50 | |         match handshake::server::create_response_with_body(&request, Body::empty) {
[INFO] [stdout] ...  |
[INFO] [stdout] 91 | |     Ok::<_, Infallible>(response)
[INFO] [stdout] 92 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 return Ok(res);
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Ok::<_, Infallible>(response)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `RustChat` (bin "RustChat") due to 19 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/chat_server.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Client {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     addr: SocketAddr,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Client` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<service::util::ServiceFn<{closure@src/main.rs:32:44: 32:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |           async move {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 31 | |             // service_fn converts our function into a `Service`
[INFO] [stdout] 32 | |             Ok::<_, Infallible>(service_fn(move |req| routes::handle_request(req, addr, Arc::clone(&state))
[INFO] [stdout] 33 | |             ))
[INFO] [stdout] 34 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<service::util::ServiceFn<{closure@src/main.rs:32:44: 32:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             Ok::<_, Infallible>(service_fn(move |req| routes::handle_request(req, addr, Arc::clone(&state))
[INFO] [stdout] 33 | |             ))
[INFO] [stdout]    | |______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:11:133
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub async fn handle_request(request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________________^
[INFO] [stdout] 12 | |     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:11:133
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub async fn handle_request(request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________________^
[INFO] [stdout] 12 | |     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | /     match (request.uri().path(), request.headers().contains_key(header::UPGRADE)) {
[INFO] [stdout] 13 | |         //if the request is ws_echo and the request headers contains an Upgrade key
[INFO] [stdout] 14 | |         ("/connect-chat", true) => {
[INFO] [stdout] 15 | |             connect_chat(request, addr, state)
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |           ("/connect-chat", true) => {
[INFO] [stdout]    |  ____________________________________^
[INFO] [stdout] 15 | |             connect_chat(request, addr, state)
[INFO] [stdout] 16 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |             connect_chat(request, addr, state)
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:17:37
[INFO] [stdout]    |
[INFO] [stdout] 17 |           ("/connect-chat", false) => {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 18 | |             //handle the case where the url is /ws_echo, but does not have an Upgrade field
[INFO] [stdout] 19 | |             Ok(Response::new(Body::from("Getting even warmer, \
[INFO] [stdout] 20 | |                                                 try connecting to this url \
[INFO] [stdout] 21 | |                                                 using a websocket client.\n")))
[INFO] [stdout] 22 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 | /             Ok(Response::new(Body::from("Getting even warmer, \
[INFO] [stdout] 20 | |                                                 try connecting to this url \
[INFO] [stdout] 21 | |                                                 using a websocket client.\n")))
[INFO] [stdout]    | |_______________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |           (url, false) => {
[INFO] [stdout]    |  _________________________^
[INFO] [stdout] 24 | |             // handle any other url without an Upgrade header field
[INFO] [stdout] 25 | |
[INFO] [stdout] 26 | |             match url {
[INFO] [stdout] ...  |
[INFO] [stdout] 36 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 | /             match url {
[INFO] [stdout] 27 | |                 "/chat" => {
[INFO] [stdout] 28 | |                     let state = state.read().await;
[INFO] [stdout] 29 | |                     let res = serde_json::to_string(&state.messages).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |                                                 /connect-chat url instead.\n"))))
[INFO] [stdout] 35 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |                   "/chat" => {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 28 | |                     let state = state.read().await;
[INFO] [stdout] 29 | |                     let res = serde_json::to_string(&state.messages).unwrap();
[INFO] [stdout] 30 | |                     Ok(Response::new(Body::from(res)))
[INFO] [stdout] 31 | |                 }
[INFO] [stdout]    | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |                     Ok(Response::new(Body::from(res)))
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |                   _ => Ok(Response::new(Body::from(format!("This {url} url doesn't do \
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 33 | |                                                 much, try accessing the \
[INFO] [stdout] 34 | |                                                 /connect-chat url instead.\n"))))
[INFO] [stdout]    | |_________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |           (_, true) => {
[INFO] [stdout]    |  ______________________^
[INFO] [stdout] 38 | |             //handle any other url with an Upgrade header field
[INFO] [stdout] 39 | |             Ok(Response::new(Body::from("Getting warmer, but I'm \
[INFO] [stdout] 40 | |                                                 only letting you connect \
[INFO] [stdout] 41 | |                                                 via websocket over on \
[INFO] [stdout] 42 | |                                                 /connect-chat, try that url.\n")))
[INFO] [stdout] 43 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 | /             Ok(Response::new(Body::from("Getting warmer, but I'm \
[INFO] [stdout] 40 | |                                                 only letting you connect \
[INFO] [stdout] 41 | |                                                 via websocket over on \
[INFO] [stdout] 42 | |                                                 /connect-chat, try that url.\n")))
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:47:125
[INFO] [stdout]    |
[INFO] [stdout] 47 |   fn connect_chat(mut request: Request<Body>, addr: SocketAddr, state: ServerStateSafe) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________________________________________________________^
[INFO] [stdout] 48 | |     //assume request is a handshake, so create the handshake response
[INFO] [stdout] 49 | |     let response =
[INFO] [stdout] 50 | |         match handshake::server::create_response_with_body(&request, Body::empty) {
[INFO] [stdout] ...  |
[INFO] [stdout] 91 | |     Ok::<_, Infallible>(response)
[INFO] [stdout] 92 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 return Ok(res);
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/routes.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Ok::<_, Infallible>(response)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `RustChat` (bin "RustChat" test) due to 19 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "470d2becc6fc3d5ead94b04d6e9c1762159b30a096d1a559626e559ac301ab3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "470d2becc6fc3d5ead94b04d6e9c1762159b30a096d1a559626e559ac301ab3e", kill_on_drop: false }`
[INFO] [stdout] 470d2becc6fc3d5ead94b04d6e9c1762159b30a096d1a559626e559ac301ab3e
