[INFO] fetching crate mudpie 0.2.6...
[INFO] checking mudpie-0.2.6 against master#30f74ff0dc4d66debc8b50724c446f817e5f75f4 for pr-121848-1
[INFO] extracting crate mudpie 0.2.6 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate mudpie 0.2.6 on toolchain 30f74ff0dc4d66debc8b50724c446f817e5f75f4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate mudpie 0.2.6
[INFO] finished tweaking crates.io crate mudpie 0.2.6
[INFO] tweaked toml for crates.io crate mudpie 0.2.6 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 90b6e0cb10654f906ad6203379156976b79b46a22df507207c47158663eed63e
[INFO] running `Command { std: "docker" "start" "-a" "90b6e0cb10654f906ad6203379156976b79b46a22df507207c47158663eed63e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90b6e0cb10654f906ad6203379156976b79b46a22df507207c47158663eed63e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90b6e0cb10654f906ad6203379156976b79b46a22df507207c47158663eed63e", kill_on_drop: false }`
[INFO] [stdout] 90b6e0cb10654f906ad6203379156976b79b46a22df507207c47158663eed63e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dfdc12bc401ddd776b5915619b024b9319c8a28eab1a6c3c77c1c4c7e868abad
[INFO] running `Command { std: "docker" "start" "-a" "dfdc12bc401ddd776b5915619b024b9319c8a28eab1a6c3c77c1c4c7e868abad", kill_on_drop: false }`
[INFO] [stderr]     Checking mudpie v0.2.6 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/utils/http_request.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ascii::OwnedAsciiExt; // the magic for into_ascii_lowercase
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/webserver/read_request.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ascii::OwnedAsciiExt; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/webserver/router.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ascii::OwnedAsciiExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/utils/http_request.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ascii::OwnedAsciiExt; // the magic for into_ascii_lowercase
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/webserver/read_request.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ascii::OwnedAsciiExt; 
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::ascii::OwnedAsciiExt`
[INFO] [stdout]  --> src/webserver/router.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ascii::OwnedAsciiExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `OwnedAsciiExt` in `ascii`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `std` is imported redundantly
[INFO] [stdout]  --> src/utils/threadpool.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std;
[INFO] [stdout]   |     ^^^ the item `std` is already imported by prelude
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `std` is imported redundantly
[INFO] [stdout]  --> src/utils/threadpool.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std;
[INFO] [stdout]   |     ^^^ the item `std` is already imported by prelude
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/utils/byteutils.rs:29:31
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let is_match = |f: &u8| { (*f == b) };
[INFO] [stdout]    |                               ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -     let is_match = |f: &u8| { (*f == b) };
[INFO] [stdout] 29 +     let is_match = |f: &u8| { *f == b };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         b'A'...b'F' => Some(byte - b'A' + 10),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         b'a'...b'f' => Some(byte - b'a' + 10),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         b'0'...b'9' => Some(byte - b'0'),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         b'0'...b'9' => Some(byte - b'0'),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `std` is imported redundantly
[INFO] [stdout]  --> src/webserver/read_request.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std;
[INFO] [stdout]   |     ^^^ the item `std` is already imported by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let req_size = try!(read_until_headers_end(&mut req_buffer, stream));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         try!(read_until_size(&mut body_buffer, stream, clen));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             try!(stream.write_all(cont));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/webserver/read_request.rs:137:20
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let size = try!(stream.read(&mut chunk_buff));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/webserver/read_request.rs:164:20
[INFO] [stdout]     |
[INFO] [stdout] 164 |         let size = try!(stream.read(&mut chunk_buff));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/utils/byteutils.rs:29:31
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let is_match = |f: &u8| { (*f == b) };
[INFO] [stdout]    |                               ^       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -     let is_match = |f: &u8| { (*f == b) };
[INFO] [stdout] 29 +     let is_match = |f: &u8| { *f == b };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         b'A'...b'F' => Some(byte - b'A' + 10),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         b'a'...b'f' => Some(byte - b'a' + 10),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         b'0'...b'9' => Some(byte - b'0'),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/utils/byteutils.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         b'0'...b'9' => Some(byte - b'0'),
[INFO] [stdout]    |             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `std` is imported redundantly
[INFO] [stdout]  --> src/webserver/read_request.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std;
[INFO] [stdout]   |     ^^^ the item `std` is already imported by prelude
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let req_size = try!(read_until_headers_end(&mut req_buffer, stream));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         try!(read_until_size(&mut body_buffer, stream, clen));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/webserver/read_request.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             try!(stream.write_all(cont));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/webserver/read_request.rs:137:20
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let size = try!(stream.read(&mut chunk_buff));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/webserver/read_request.rs:164:20
[INFO] [stdout]     |
[INFO] [stdout] 164 |         let size = try!(stream.read(&mut chunk_buff));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `collections`
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(collections)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `tcp`
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(tcp)]
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `std_misc`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(std_misc)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/mod.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |     stream: Box<GenericSocket>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 398 |     stream: Box<dyn GenericSocket>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `collections`
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(collections)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `tcp`
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(tcp)]
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `std_misc`
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(std_misc)]
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/mod.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |     stream: Box<GenericSocket>,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 398 |     stream: Box<dyn GenericSocket>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/webserver/read_request.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn read_request(stream: &mut GenericSocket, max_size: usize) 
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn read_request(stream: &mut dyn GenericSocket, max_size: usize) 
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/read_request.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stream: &mut GenericSocket) -> Result<usize, io::Error> 
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stream: &mut dyn GenericSocket) -> Result<usize, io::Error> 
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/read_request.rs:157:22
[INFO] [stdout]     |
[INFO] [stdout] 157 |         stream: &mut GenericSocket, size: usize) -> Result<(), io::Error>
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 157 |         stream: &mut dyn GenericSocket, size: usize) -> Result<(), io::Error>
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/webserver/read_request.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn read_request(stream: &mut GenericSocket, max_size: usize) 
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn read_request(stream: &mut dyn GenericSocket, max_size: usize) 
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/webserver/write_response.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn write_response(stream: &mut GenericSocket, 
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn write_response(stream: &mut dyn GenericSocket, 
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/read_request.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stream: &mut GenericSocket) -> Result<usize, io::Error> 
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stream: &mut dyn GenericSocket) -> Result<usize, io::Error> 
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/read_request.rs:157:22
[INFO] [stdout]     |
[INFO] [stdout] 157 |         stream: &mut GenericSocket, size: usize) -> Result<(), io::Error>
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 157 |         stream: &mut dyn GenericSocket, size: usize) -> Result<(), io::Error>
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/webserver/write_response.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn write_response(stream: &mut GenericSocket, 
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn write_response(stream: &mut dyn GenericSocket, 
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]   --> src/utils/http_request.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let method = request_parts[0].to_vec().into_ascii_lowercase();
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let method = request_parts[0].to_vec().to_ascii_lowercase();
[INFO] [stdout]    |                                            ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]   --> src/utils/http_request.rs:60:44
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let method = request_parts[0].to_vec().into_ascii_lowercase();
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let method = request_parts[0].to_vec().to_ascii_lowercase();
[INFO] [stdout]    |                                            ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]   --> src/utils/http_request.rs:62:46
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let protocol = request_parts[2].to_vec().into_ascii_lowercase();
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let protocol = request_parts[2].to_vec().to_ascii_lowercase();
[INFO] [stdout]    |                                              ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]   --> src/utils/http_request.rs:62:46
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let protocol = request_parts[2].to_vec().into_ascii_lowercase();
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let protocol = request_parts[2].to_vec().to_ascii_lowercase();
[INFO] [stdout]    |                                              ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:126:26
[INFO] [stdout]     |
[INFO] [stdout] 126 |         nice_header_name.push_all(header_parts[0]);
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 126 |         nice_header_name.push(header_parts[0]);
[INFO] [stdout]     |                          ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:126:26
[INFO] [stdout]     |
[INFO] [stdout] 126 |         nice_header_name.push_all(header_parts[0]);
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 126 |         nice_header_name.push(header_parts[0]);
[INFO] [stdout]     |                          ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let nice_header_name = nice_header_name.into_ascii_lowercase();
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let nice_header_name = nice_header_name.to_ascii_lowercase();
[INFO] [stdout]     |                                                 ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:127:49
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let nice_header_name = nice_header_name.into_ascii_lowercase();
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let nice_header_name = nice_header_name.to_ascii_lowercase();
[INFO] [stdout]     |                                                 ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (*entry.get_mut()).push_all(b",");
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (*entry.get_mut()).push(b",");
[INFO] [stdout]     |                                    ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (*entry.get_mut()).push_all(b",");
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (*entry.get_mut()).push(b",");
[INFO] [stdout]     |                                    ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 (*entry.get_mut()).push_all(&header_value);
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 (*entry.get_mut()).push(&header_value);
[INFO] [stdout]     |                                    ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/utils/http_request.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 (*entry.get_mut()).push_all(&header_value);
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 (*entry.get_mut()).push(&header_value);
[INFO] [stdout]     |                                    ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let val = val.unwrap().clone().into_ascii_lowercase();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let val = val.unwrap().clone().to_ascii_lowercase();
[INFO] [stdout]     |                                    ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let val = val.unwrap().clone().into_ascii_lowercase();
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let val = val.unwrap().clone().to_ascii_lowercase();
[INFO] [stdout]     |                                    ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for mutable reference `&mut Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |         buffer.push_all(&chunk_buff[0..size]);
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 143 |         buffer.push(&chunk_buff[0..size]);
[INFO] [stdout]     |                ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for mutable reference `&mut Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |         buffer.push_all(&chunk_buff[0..size]);
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 143 |         buffer.push(&chunk_buff[0..size]);
[INFO] [stdout]     |                ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for mutable reference `&mut Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |         buffer.push_all(&chunk_buff[0..size]);
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 170 |         buffer.push(&chunk_buff[0..size]);
[INFO] [stdout]     |                ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `push_all` found for mutable reference `&mut Vec<u8>` in the current scope
[INFO] [stdout]    --> src/webserver/read_request.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 |         buffer.push_all(&chunk_buff[0..size]);
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `push` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 170 |         buffer.push(&chunk_buff[0..size]);
[INFO] [stdout]     |                ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `String` in the current scope
[INFO] [stdout]   --> src/webserver/router.rs:89:43
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let method = p.trim().to_string().into_ascii_lowercase();
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let method = p.trim().to_string().to_ascii_lowercase();
[INFO] [stdout]    |                                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_ascii_lowercase` found for struct `String` in the current scope
[INFO] [stdout]   --> src/webserver/router.rs:89:43
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let method = p.trim().to_string().into_ascii_lowercase();
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `to_ascii_lowercase` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let method = p.trim().to_string().to_ascii_lowercase();
[INFO] [stdout]    |                                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/mod.rs:310:25
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let mut stream: Box<GenericSocket> = Box::new(raw_stream);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let mut stream: Box<dyn GenericSocket> = Box::new(raw_stream);
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::slice::<impl [T]>::connect`: renamed to join
[INFO] [stdout]    --> src/webserver/mod.rs:370:42
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let methods_joined = methods.connect(", ");
[INFO] [stdout]     |                                          ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let methods_joined = methods.join(", ");
[INFO] [stdout]     |                                          ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/webserver/mod.rs:310:25
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let mut stream: Box<GenericSocket> = Box::new(raw_stream);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let mut stream: Box<dyn GenericSocket> = Box::new(raw_stream);
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::slice::<impl [T]>::connect`: renamed to join
[INFO] [stdout]    --> src/webserver/mod.rs:370:42
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let methods_joined = methods.connect(", ");
[INFO] [stdout]     |                                          ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 370 |             let methods_joined = methods.join(", ");
[INFO] [stdout]     |                                          ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/webserver/router.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let mut matched;
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/webserver/router.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let mut matched;
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 16 previous errors; 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 16 previous errors; 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mudpie` (lib) due to 17 previous errors; 20 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0432, E0599, E0635.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mudpie` (lib test) due to 17 previous errors; 20 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "dfdc12bc401ddd776b5915619b024b9319c8a28eab1a6c3c77c1c4c7e868abad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfdc12bc401ddd776b5915619b024b9319c8a28eab1a6c3c77c1c4c7e868abad", kill_on_drop: false }`
[INFO] [stdout] dfdc12bc401ddd776b5915619b024b9319c8a28eab1a6c3c77c1c4c7e868abad
