[INFO] cloning repository https://github.com/gabrielsnauta/crud_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gabrielsnauta/crud_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgabrielsnauta%2Fcrud_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgabrielsnauta%2Fcrud_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 61869535288b09dc536470f41857720716834700
[INFO] checking gabrielsnauta/crud_rust 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%2Fgabrielsnauta%2Fcrud_rust" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gabrielsnauta/crud_rust
[INFO] finished tweaking git repo https://github.com/gabrielsnauta/crud_rust
[INFO] tweaked toml for git repo https://github.com/gabrielsnauta/crud_rust written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gabrielsnauta/crud_rust 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/gabrielsnauta/crud_rust 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] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] a35c286efb7453c62f9d1f9a6c98e413eff30beb8f04c8d8c83ba0169a2ec12f
[INFO] running `Command { std: "docker" "start" "-a" "a35c286efb7453c62f9d1f9a6c98e413eff30beb8f04c8d8c83ba0169a2ec12f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a35c286efb7453c62f9d1f9a6c98e413eff30beb8f04c8d8c83ba0169a2ec12f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a35c286efb7453c62f9d1f9a6c98e413eff30beb8f04c8d8c83ba0169a2ec12f", kill_on_drop: false }`
[INFO] [stdout] a35c286efb7453c62f9d1f9a6c98e413eff30beb8f04c8d8c83ba0169a2ec12f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] bbf8964931b9083e1f91b3dc048dca67cb0c73ba2f27780eecc7870075829d9b
[INFO] running `Command { std: "docker" "start" "-a" "bbf8964931b9083e1f91b3dc048dca67cb0c73ba2f27780eecc7870075829d9b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling unicode-ident v1.0.17
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking bytes v1.10.0
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking once_cell v1.20.3
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]    Compiling httparse v1.10.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.138
[INFO] [stderr]     Checking ryu v1.0.19
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking indexmap v2.7.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]     Checking tokio v1.43.0
[INFO] [stderr]     Checking tokio-util v0.7.13
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking server_crud v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:16:97
[INFO] [stdout]    |
[INFO] [stdout] 16 |   async fn handle_request(req: Request<Body>, items: Items) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _________________________________________________________________________________________________^
[INFO] [stdout] 17 | |     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | | }
[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<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:16:97
[INFO] [stdout]    |
[INFO] [stdout] 16 |   async fn handle_request(req: Request<Body>, items: Items) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _________________________________________________________________________________________________^
[INFO] [stdout] 17 | |     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | /     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 20 | |             let new_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:18:38
[INFO] [stdout]    |
[INFO] [stdout] 18 |           (&Method::POST, "/items") => {
[INFO] [stdout]    |  ______________________________________^
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 20 | |             let new_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] 21 | |             let mut items = items.lock().unwrap();
[INFO] [stdout] 22 | |             items.push(new_item);
[INFO] [stdout] 23 | |             Ok(Response::new(Body::from("Item added")))
[INFO] [stdout] 24 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             Ok(Response::new(Body::from("Item added")))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 |           (&Method::GET, "/items") => {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 26 | |             let items = items.lock().unwrap();
[INFO] [stdout] 27 | |             Ok(Response::new(Body::from(serde_json::to_string(&*items).unwrap())))
[INFO] [stdout] 28 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |             Ok(Response::new(Body::from(serde_json::to_string(&*items).unwrap())))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:29:64
[INFO] [stdout]    |
[INFO] [stdout] 29 |           (&Method::PUT, path) if path.starts_with("/items/") => {
[INFO] [stdout]    |  ________________________________________________________________^
[INFO] [stdout] 30 | |             let id: u32 = path.trim_start_matches("/items/").parse().unwrap();
[INFO] [stdout] 31 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 32 | |             let updated_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             if let Some(item) = items.iter_mut().find(|i| i.id == id) {
[INFO] [stdout] 35 | |                 *item = updated_item;
[INFO] [stdout] 36 | |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout] 37 | |             } else {
[INFO] [stdout] 38 | |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout] 39 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:34:71
[INFO] [stdout]    |
[INFO] [stdout] 34 |               if let Some(item) = items.iter_mut().find(|i| i.id == id) {
[INFO] [stdout]    |  _______________________________________________________________________^
[INFO] [stdout] 35 | |                 *item = updated_item;
[INFO] [stdout] 36 | |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout] 37 | |             } else {
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |               } else {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 38 | |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout] 39 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:41:67
[INFO] [stdout]    |
[INFO] [stdout] 41 |           (&Method::DELETE, path) if path.starts_with("/items/") => {
[INFO] [stdout]    |  ___________________________________________________________________^
[INFO] [stdout] 42 | |             let id: u32 = path.trim_start_matches("/items/").parse().unwrap();
[INFO] [stdout] 43 | |             let mut items = items.lock().unwrap();
[INFO] [stdout] 44 | |             items.retain(|i| i.id != id);
[INFO] [stdout] 45 | |             Ok(Response::new(Body::from("Item deleted")))
[INFO] [stdout] 46 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |             Ok(Response::new(Body::from("Item deleted")))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |           _ => {
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 48 | |             let mut not_found = Response::default();
[INFO] [stdout] 49 | |             *not_found.status_mut() = StatusCode::NOT_FOUND;
[INFO] [stdout] 50 | |             Ok(not_found)
[INFO] [stdout] 51 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             Ok(not_found)
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<hyper::service::util::ServiceFn<{closure@src/main.rs:63:44: 63:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:62:20
[INFO] [stdout]    |
[INFO] [stdout] 62 |           async move {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 63 | |             Ok::<_, Infallible>(service_fn(move |req| {
[INFO] [stdout] 64 | |                 handle_request(req, items.clone())
[INFO] [stdout] 65 | |             }))
[INFO] [stdout] 66 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<hyper::service::util::ServiceFn<{closure@src/main.rs:63:44: 63:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 | /             Ok::<_, Infallible>(service_fn(move |req| {
[INFO] [stdout] 64 | |                 handle_request(req, items.clone())
[INFO] [stdout] 65 | |             }))
[INFO] [stdout]    | |_______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `server_crud` (bin "server_crud" test) due to 19 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:16:97
[INFO] [stdout]    |
[INFO] [stdout] 16 |   async fn handle_request(req: Request<Body>, items: Items) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _________________________________________________________________________________________________^
[INFO] [stdout] 17 | |     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | | }
[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<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:16:97
[INFO] [stdout]    |
[INFO] [stdout] 16 |   async fn handle_request(req: Request<Body>, items: Items) -> Result<Response<Body>, Infallible> {
[INFO] [stdout]    |  _________________________________________________________________________________________________^
[INFO] [stdout] 17 | |     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | /     match (req.method(), req.uri().path()) {
[INFO] [stdout] 18 | |         (&Method::POST, "/items") => {
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 20 | |             let new_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:18:38
[INFO] [stdout]    |
[INFO] [stdout] 18 |           (&Method::POST, "/items") => {
[INFO] [stdout]    |  ______________________________________^
[INFO] [stdout] 19 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 20 | |             let new_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] 21 | |             let mut items = items.lock().unwrap();
[INFO] [stdout] 22 | |             items.push(new_item);
[INFO] [stdout] 23 | |             Ok(Response::new(Body::from("Item added")))
[INFO] [stdout] 24 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             Ok(Response::new(Body::from("Item added")))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 |           (&Method::GET, "/items") => {
[INFO] [stdout]    |  _____________________________________^
[INFO] [stdout] 26 | |             let items = items.lock().unwrap();
[INFO] [stdout] 27 | |             Ok(Response::new(Body::from(serde_json::to_string(&*items).unwrap())))
[INFO] [stdout] 28 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |             Ok(Response::new(Body::from(serde_json::to_string(&*items).unwrap())))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:29:64
[INFO] [stdout]    |
[INFO] [stdout] 29 |           (&Method::PUT, path) if path.starts_with("/items/") => {
[INFO] [stdout]    |  ________________________________________________________________^
[INFO] [stdout] 30 | |             let id: u32 = path.trim_start_matches("/items/").parse().unwrap();
[INFO] [stdout] 31 | |             let whole_body = hyper::body::to_bytes(req.into_body()).await.unwrap();
[INFO] [stdout] 32 | |             let updated_item: Item = serde_json::from_slice(&whole_body).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 40 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             if let Some(item) = items.iter_mut().find(|i| i.id == id) {
[INFO] [stdout] 35 | |                 *item = updated_item;
[INFO] [stdout] 36 | |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout] 37 | |             } else {
[INFO] [stdout] 38 | |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout] 39 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:34:71
[INFO] [stdout]    |
[INFO] [stdout] 34 |               if let Some(item) = items.iter_mut().find(|i| i.id == id) {
[INFO] [stdout]    |  _______________________________________________________________________^
[INFO] [stdout] 35 | |                 *item = updated_item;
[INFO] [stdout] 36 | |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout] 37 | |             } else {
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 Ok(Response::new(Body::from("Item updated")))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |               } else {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 38 | |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout] 39 | |             }
[INFO] [stdout]    | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 Ok(Response::new(Body::from("Item not found")))
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:41:67
[INFO] [stdout]    |
[INFO] [stdout] 41 |           (&Method::DELETE, path) if path.starts_with("/items/") => {
[INFO] [stdout]    |  ___________________________________________________________________^
[INFO] [stdout] 42 | |             let id: u32 = path.trim_start_matches("/items/").parse().unwrap();
[INFO] [stdout] 43 | |             let mut items = items.lock().unwrap();
[INFO] [stdout] 44 | |             items.retain(|i| i.id != id);
[INFO] [stdout] 45 | |             Ok(Response::new(Body::from("Item deleted")))
[INFO] [stdout] 46 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |             Ok(Response::new(Body::from("Item deleted")))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |           _ => {
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 48 | |             let mut not_found = Response::default();
[INFO] [stdout] 49 | |             *not_found.status_mut() = StatusCode::NOT_FOUND;
[INFO] [stdout] 50 | |             Ok(not_found)
[INFO] [stdout] 51 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Response<Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             Ok(not_found)
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<hyper::service::util::ServiceFn<{closure@src/main.rs:63:44: 63:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:62:20
[INFO] [stdout]    |
[INFO] [stdout] 62 |           async move {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 63 | |             Ok::<_, Infallible>(service_fn(move |req| {
[INFO] [stdout] 64 | |                 handle_request(req, items.clone())
[INFO] [stdout] 65 | |             }))
[INFO] [stdout] 66 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<hyper::service::util::ServiceFn<{closure@src/main.rs:63:44: 63:54}, Body>, Infallible>
[INFO] [stdout]   --> src/main.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 | /             Ok::<_, Infallible>(service_fn(move |req| {
[INFO] [stdout] 64 | |                 handle_request(req, items.clone())
[INFO] [stdout] 65 | |             }))
[INFO] [stdout]    | |_______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `server_crud` (bin "server_crud") due to 19 previous errors
[INFO] running `Command { std: "docker" "inspect" "bbf8964931b9083e1f91b3dc048dca67cb0c73ba2f27780eecc7870075829d9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbf8964931b9083e1f91b3dc048dca67cb0c73ba2f27780eecc7870075829d9b", kill_on_drop: false }`
[INFO] [stdout] bbf8964931b9083e1f91b3dc048dca67cb0c73ba2f27780eecc7870075829d9b
