[INFO] cloning repository https://github.com/hemeda3/codecrafters-http-server-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hemeda3/codecrafters-http-server-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhemeda3%2Fcodecrafters-http-server-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhemeda3%2Fcodecrafters-http-server-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2fe3e3ce32dc42f61df37bafcbe73e41f88f7d7f
[INFO] testing hemeda3/codecrafters-http-server-rust against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhemeda3%2Fcodecrafters-http-server-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hemeda3/codecrafters-http-server-rust
[INFO] finished tweaking git repo https://github.com/hemeda3/codecrafters-http-server-rust
[INFO] tweaked toml for git repo https://github.com/hemeda3/codecrafters-http-server-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hemeda3/codecrafters-http-server-rust on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hemeda3/codecrafters-http-server-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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v2.1.0
[INFO] [stderr]   Downloaded windows-targets v0.48.1
[INFO] [stderr]   Downloaded hermit-abi v0.3.2
[INFO] [stderr]   Downloaded lock_api v0.4.10
[INFO] [stderr]   Downloaded quote v1.0.32
[INFO] [stderr]   Downloaded parking_lot_core v0.9.8
[INFO] [stderr]   Downloaded thiserror-impl v1.0.38
[INFO] [stderr]   Downloaded unicode-ident v1.0.11
[INFO] [stderr]   Downloaded pin-project-lite v0.2.10
[INFO] [stderr]   Downloaded smallvec v1.11.0
[INFO] [stderr]   Downloaded thiserror v1.0.38
[INFO] [stderr]   Downloaded unicode-xid v0.2.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.66
[INFO] [stderr]   Downloaded addr2line v0.20.0
[INFO] [stderr]   Downloaded anyhow v1.0.68
[INFO] [stderr]   Downloaded mio v0.8.8
[INFO] [stderr]   Downloaded diff v0.1.13
[INFO] [stderr]   Downloaded bytes v1.3.0
[INFO] [stderr]   Downloaded pretty_assertions v1.4.0
[INFO] [stderr]   Downloaded backtrace v0.3.68
[INFO] [stderr]   Downloaded syn v2.0.27
[INFO] [stderr]   Downloaded syn v1.0.48
[INFO] [stderr]   Downloaded object v0.31.1
[INFO] [stderr]   Downloaded tokio v1.29.1
[INFO] [stderr]   Downloaded libc v0.2.147
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505
[INFO] running `Command { std: "docker" "start" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", 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" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", 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" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]    Compiling syn v1.0.48
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling smallvec v1.11.0
[INFO] [stderr]    Compiling anyhow v1.0.68
[INFO] [stderr]    Compiling thiserror v1.0.38
[INFO] [stderr]    Compiling pin-project-lite v0.2.10
[INFO] [stderr]    Compiling bytes v1.3.0
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling tokio v1.29.1
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling socket2 v0.4.9
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling mio v0.8.8
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling syn v2.0.27
[INFO] [stderr]    Compiling thiserror-impl v1.0.38
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling http-server-starter-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -     while let(mut stream) = listener.accept().await? {
[INFO] [stdout] 12 +     while let mut stream = listener.accept().await? {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 |         if (cha == '/') {
[INFO] [stdout]     |            ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -         if (cha == '/') {
[INFO] [stdout] 187 +         if cha == '/' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut buf = String::from_utf8(buf_bytes.clone().into()).ok().unwrap();
[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/main.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut body_buff = String::from_utf8(buf_bytes.clone().into()).ok();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:120:29
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         let mut file = File::open(full_path).await;
[INFO] [stdout]     |                             ----^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]    = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |               ----^^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line2_first_header`
[INFO] [stdout]   --> src/main.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let line2_first_header = iter.next();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line2_first_header`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line3_2nd_header`
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let line3_2nd_header = iter.next();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line3_2nd_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main.rs:89:25
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     let res = results.last().unwrap_or(&"");
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...                   Err(e) =>{
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/main.rs:183:19
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let mut end = 0;
[INFO] [stdout]     |                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 188 |             end = idx;
[INFO] [stdout]     |             --------- `end` 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: function `split_string_by_slash` is never used
[INFO] [stdout]    --> src/main.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn split_string_by_slash(input: &str) -> Option<Vec<&str>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.57s
[INFO] running `Command { std: "docker" "inspect" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", 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" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling yansi v0.5.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling pretty_assertions v1.4.0
[INFO] [stderr]    Compiling http-server-starter-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/main.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 12 -     while let(mut stream) = listener.accept().await? {
[INFO] [stdout] 12 +     while let mut stream = listener.accept().await? {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 |         if (cha == '/') {
[INFO] [stdout]     |            ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 187 -         if (cha == '/') {
[INFO] [stdout] 187 +         if cha == '/' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut buf = String::from_utf8(buf_bytes.clone().into()).ok().unwrap();
[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/main.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut body_buff = String::from_utf8(buf_bytes.clone().into()).ok();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:120:29
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         let mut file = File::open(full_path).await;
[INFO] [stdout]     |                             ----^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]    = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stdout]    |               ----^^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line2_first_header`
[INFO] [stdout]   --> src/main.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let line2_first_header = iter.next();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line2_first_header`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line3_2nd_header`
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let line3_2nd_header = iter.next();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line3_2nd_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main.rs:89:25
[INFO] [stdout]    |
[INFO] [stdout] 89 |                     let res = results.last().unwrap_or(&"");
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 | ...                   Err(e) =>{
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/main.rs:183:19
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let mut end = 0;
[INFO] [stdout]     |                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 188 |             end = idx;
[INFO] [stdout]     |             --------- `end` 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: function `split_string_by_slash` is never used
[INFO] [stdout]    --> src/main.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn split_string_by_slash(input: &str) -> Option<Vec<&str>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.90s
[INFO] running `Command { std: "docker" "inspect" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", 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" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]   --> src/main.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 12 -     while let(mut stream) = listener.accept().await? {
[INFO] [stderr] 12 +     while let mut stream = listener.accept().await? {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/main.rs:187:12
[INFO] [stderr]     |
[INFO] [stderr] 187 |         if (cha == '/') {
[INFO] [stderr]     |            ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 187 -         if (cha == '/') {
[INFO] [stderr] 187 +         if cha == '/' {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let mut buf = String::from_utf8(buf_bytes.clone().into()).ok().unwrap();
[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/main.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let mut body_buff = String::from_utf8(buf_bytes.clone().into()).ok();
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:120:29
[INFO] [stderr]     |
[INFO] [stderr] 120 |                         let mut file = File::open(full_path).await;
[INFO] [stderr]     |                             ----^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `while let` pattern
[INFO] [stderr]   --> src/main.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this pattern will always match, so the loop will never exit
[INFO] [stderr]    = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stderr]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:12:15
[INFO] [stderr]    |
[INFO] [stderr] 12 |     while let(mut stream) = listener.accept().await? {
[INFO] [stderr]    |               ----^^^^^^
[INFO] [stderr]    |               |
[INFO] [stderr]    |               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `line2_first_header`
[INFO] [stderr]   --> src/main.rs:64:13
[INFO] [stderr]    |
[INFO] [stderr] 64 |         let line2_first_header = iter.next();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line2_first_header`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `line3_2nd_header`
[INFO] [stderr]   --> src/main.rs:65:13
[INFO] [stderr]    |
[INFO] [stderr] 65 |         let line3_2nd_header = iter.next();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line3_2nd_header`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `res`
[INFO] [stderr]   --> src/main.rs:89:25
[INFO] [stderr]    |
[INFO] [stderr] 89 |                     let res = results.last().unwrap_or(&"");
[INFO] [stderr]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/main.rs:137:33
[INFO] [stderr]     |
[INFO] [stderr] 137 | ...                   Err(e) =>{
[INFO] [stderr]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `end` is never read
[INFO] [stderr]    --> src/main.rs:183:19
[INFO] [stderr]     |
[INFO] [stderr] 183 |     let mut end = 0;
[INFO] [stderr]     |                   ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 188 |             end = idx;
[INFO] [stderr]     |             --------- `end` 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: function `split_string_by_slash` is never used
[INFO] [stderr]    --> src/main.rs:180:4
[INFO] [stderr]     |
[INFO] [stderr] 180 | fn split_string_by_slash(input: &str) -> Option<Vec<&str>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `http-server-starter-rust` (bin "http-server-starter-rust" test) generated 13 warnings (run `cargo fix --bin "http-server-starter-rust" -p http-server-starter-rust --tests` to apply 10 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/http_server_starter_rust-157e3a0f3da5d514)
[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" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505", kill_on_drop: false }`
[INFO] [stdout] aa9a8f380b8738fee8dab4a5c9d7499c682798747c3bb5e4b9a056df95f6d505
