[INFO] cloning repository https://github.com/Blubywaff/net-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Blubywaff/net-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlubywaff%2Fnet-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlubywaff%2Fnet-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4f2176589baa46c9b59e7bb0e91a9e41e8da7baa
[INFO] checking Blubywaff/net-server against try#f77b5bc6c7c84df104f86b0dd01d9490e3923fa8 for pr-147834
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlubywaff%2Fnet-server" "/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/Blubywaff/net-server
[INFO] finished tweaking git repo https://github.com/Blubywaff/net-server
[INFO] tweaked toml for git repo https://github.com/Blubywaff/net-server written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Blubywaff/net-server on toolchain f77b5bc6c7c84df104f86b0dd01d9490e3923fa8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Blubywaff/net-server 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" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c7f92313e9f785895288ebf5fe4bbbbc67e3273231ca965e5893db2c64a23191
[INFO] running `Command { std: "docker" "start" "-a" "c7f92313e9f785895288ebf5fe4bbbbc67e3273231ca965e5893db2c64a23191", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c7f92313e9f785895288ebf5fe4bbbbc67e3273231ca965e5893db2c64a23191", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c7f92313e9f785895288ebf5fe4bbbbc67e3273231ca965e5893db2c64a23191", kill_on_drop: false }`
[INFO] [stdout] c7f92313e9f785895288ebf5fe4bbbbc67e3273231ca965e5893db2c64a23191
[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" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+f77b5bc6c7c84df104f86b0dd01d9490e3923fa8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9f152bc1bb83c6239a82688a36edc0e78ac5d1bcf29bd9cebd13878d0311eb2d
[INFO] running `Command { std: "docker" "start" "-a" "9f152bc1bb83c6239a82688a36edc0e78ac5d1bcf29bd9cebd13878d0311eb2d", kill_on_drop: false }`
[INFO] [stderr]     Checking net-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `collects`
[INFO] [stdout]  --> src/lib.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod collects;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `collects`, create file "src/collects.rs" or "src/collects/mod.rs"
[INFO] [stdout]   = note: if there is a `mod collects` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str`
[INFO] [stdout]  --> src/http/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     str,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/http/mod.rs:75:20
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 if let (k, v) = q.split_once("=").unwrap() {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `collects`
[INFO] [stdout]  --> src/lib.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod collects;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `collects`, create file "src/collects.rs" or "src/collects/mod.rs"
[INFO] [stdout]   = note: if there is a `mod collects` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `rq.headers` as mutable, as `rq` is not declared as mutable
[INFO] [stdout]    --> src/http/mod.rs:32:13
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let rq = Self {
[INFO] [stdout]     |             ^^ not mutable
[INFO] [stdout] ...
[INFO] [stdout]  79 |                         rq.query.get_mut(&k).unwrap().push(v);
[INFO] [stdout]     |                         -------- cannot borrow as mutable
[INFO] [stdout]  80 |                     } else {
[INFO] [stdout]  81 |                         rq.query.insert(k, vec![v]);
[INFO] [stdout]     |                         -------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 match rq.headers.get_mut(&name) {
[INFO] [stdout]     |                       ---------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                   ---------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 134 |                     rq.headers.insert(name, value);
[INFO] [stdout]     |                     ---------- cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let mut rq = Self {
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `tcp_buf` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut tcp_buf: [u8; 8192] = [0u8; 8192];
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.method`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             rq.method = match String::from_utf8(
[INFO] [stdout]    |             ^^^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.path`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             rq.path = path;
[INFO] [stdout]    |             ^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.protocol`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             rq.protocol = match String::from_utf8(
[INFO] [stdout]    |             ^^^^^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `value` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/http/mod.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         v.append(&mut value)
[INFO] [stdout]     |                                  ^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let mut value = match slice_until(&tcp_buf[c..], &CR) {
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `name`
[INFO] [stdout]    --> src/http/mod.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let name = match String::from_utf8(
[INFO] [stdout]     |                     ---- move occurs because `name` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 113 |                     Ok(s) => s,
[INFO] [stdout]     |                              - this reinitialization might get skipped
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                                     ---- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 132 |                 if rq.headers.contains_key(&name) {
[INFO] [stdout]     |                                            ^^^^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name.clone(), value) {
[INFO] [stdout]     |                                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `value`
[INFO] [stdout]    --> src/http/mod.rs:134:45
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let value = match slice_until(&tcp_buf[c..], &CR) {
[INFO] [stdout]     |                     ----- move occurs because `value` has type `Vec<u8>`, which does not implement the `Copy` trait
[INFO] [stdout] 117 |                     Some(b) => b.to_vec(),
[INFO] [stdout]     |                                ---------- this reinitialization might get skipped
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                                           ----- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 134 |                     rq.headers.insert(name, value);
[INFO] [stdout]     |                                             ^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value.clone()) {
[INFO] [stdout]     |                                                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of partially moved value: `rq`
[INFO] [stdout]    --> src/http/mod.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout]  37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]     |                         --------- -------- `rq.stream` partially moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout] ...
[INFO] [stdout] 138 |         return Ok(rq);
[INFO] [stdout]     |                   ^^ value used here after partial move
[INFO] [stdout]     |
[INFO] [stdout] note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `rq.stream`
[INFO] [stdout]    --> /rustc/f77b5bc6c7c84df104f86b0dd01d9490e3923fa8/library/core/src/option.rs:1012:25
[INFO] [stdout]     = note: partial move occurs because `rq.stream` has type `Option<TcpStream>`, which does not implement the `Copy` trait
[INFO] [stdout] help: you could `clone` the value and consume it, if the `TcpStream: Clone` trait bound could be satisfied
[INFO] [stdout]     |
[INFO] [stdout]  37 |         let len = match rq.stream.clone().unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/http/mod.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/http/mod.rs:110:26
[INFO] [stdout]     |
[INFO] [stdout] 110 |                         (l, None) => break 'outer
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/http/mod.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let mut i: usize = 0;
[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: unused variable: `e`
[INFO] [stdout]    --> src/http/mod.rs:160:48
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn slice_to_or_exit<'a>(buf: &'a [u8], b: &u8, e:&u8) -> (usize, Option<&'a [u8]>) {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str`
[INFO] [stdout]  --> src/http/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     str,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0382, E0583, E0594, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `net-server` (lib) due to 10 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/http/mod.rs:75:20
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 if let (k, v) = q.split_once("=").unwrap() {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `rq.headers` as mutable, as `rq` is not declared as mutable
[INFO] [stdout]    --> src/http/mod.rs:32:13
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let rq = Self {
[INFO] [stdout]     |             ^^ not mutable
[INFO] [stdout] ...
[INFO] [stdout]  79 |                         rq.query.get_mut(&k).unwrap().push(v);
[INFO] [stdout]     |                         -------- cannot borrow as mutable
[INFO] [stdout]  80 |                     } else {
[INFO] [stdout]  81 |                         rq.query.insert(k, vec![v]);
[INFO] [stdout]     |                         -------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 match rq.headers.get_mut(&name) {
[INFO] [stdout]     |                       ---------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                   ---------- cannot borrow as mutable
[INFO] [stdout] ...
[INFO] [stdout] 134 |                     rq.headers.insert(name, value);
[INFO] [stdout]     |                     ---------- cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout]  32 |         let mut rq = Self {
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `tcp_buf` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:37:49
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut tcp_buf: [u8; 8192] = [0u8; 8192];
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.method`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             rq.method = match String::from_utf8(
[INFO] [stdout]    |             ^^^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.path`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             rq.path = path;
[INFO] [stdout]    |             ^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `rq.protocol`, as `rq` is not declared as mutable
[INFO] [stdout]   --> src/http/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             rq.protocol = match String::from_utf8(
[INFO] [stdout]    |             ^^^^^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut rq = Self {
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `value` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/http/mod.rs:122:34
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         v.append(&mut value)
[INFO] [stdout]     |                                  ^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let mut value = match slice_until(&tcp_buf[c..], &CR) {
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `name`
[INFO] [stdout]    --> src/http/mod.rs:132:44
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 let name = match String::from_utf8(
[INFO] [stdout]     |                     ---- move occurs because `name` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 113 |                     Ok(s) => s,
[INFO] [stdout]     |                              - this reinitialization might get skipped
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                                     ---- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 132 |                 if rq.headers.contains_key(&name) {
[INFO] [stdout]     |                                            ^^^^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name.clone(), value) {
[INFO] [stdout]     |                                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `value`
[INFO] [stdout]    --> src/http/mod.rs:134:45
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 let value = match slice_until(&tcp_buf[c..], &CR) {
[INFO] [stdout]     |                     ----- move occurs because `value` has type `Vec<u8>`, which does not implement the `Copy` trait
[INFO] [stdout] 117 |                     Some(b) => b.to_vec(),
[INFO] [stdout]     |                                ---------- this reinitialization might get skipped
[INFO] [stdout] ...
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value) {
[INFO] [stdout]     |                                                           ----- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 134 |                     rq.headers.insert(name, value);
[INFO] [stdout]     |                                             ^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 124 |                     None => match rq.headers.insert(name, value.clone()) {
[INFO] [stdout]     |                                                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of partially moved value: `rq`
[INFO] [stdout]    --> src/http/mod.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout]  37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]     |                         --------- -------- `rq.stream` partially moved due to this method call
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout] ...
[INFO] [stdout] 138 |         return Ok(rq);
[INFO] [stdout]     |                   ^^ value used here after partial move
[INFO] [stdout]     |
[INFO] [stdout] note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `rq.stream`
[INFO] [stdout]    --> /rustc/f77b5bc6c7c84df104f86b0dd01d9490e3923fa8/library/core/src/option.rs:1012:25
[INFO] [stdout]     = note: partial move occurs because `rq.stream` has type `Option<TcpStream>`, which does not implement the `Copy` trait
[INFO] [stdout] help: you could `clone` the value and consume it, if the `TcpStream: Clone` trait bound could be satisfied
[INFO] [stdout]     |
[INFO] [stdout]  37 |         let len = match rq.stream.clone().unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/http/mod.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let len = match rq.stream.unwrap().peek(&mut tcp_buf) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/http/mod.rs:110:26
[INFO] [stdout]     |
[INFO] [stdout] 110 |                         (l, None) => break 'outer
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/http/mod.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let mut i: usize = 0;
[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: unused variable: `e`
[INFO] [stdout]    --> src/http/mod.rs:160:48
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn slice_to_or_exit<'a>(buf: &'a [u8], b: &u8, e:&u8) -> (usize, Option<&'a [u8]>) {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0382, E0583, E0594, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `net-server` (lib test) due to 10 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9f152bc1bb83c6239a82688a36edc0e78ac5d1bcf29bd9cebd13878d0311eb2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f152bc1bb83c6239a82688a36edc0e78ac5d1bcf29bd9cebd13878d0311eb2d", kill_on_drop: false }`
[INFO] [stdout] 9f152bc1bb83c6239a82688a36edc0e78ac5d1bcf29bd9cebd13878d0311eb2d
