[INFO] cloning repository https://github.com/bohdaq/rust-web-server [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bohdaq/rust-web-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 22ba4549b69f71f31df0d6885e18e0d2d414c0ad [INFO] testing bohdaq/rust-web-server against 1.59.0 for beta-1.60-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbohdaq%2Frust-web-server" "/workspace/builds/worker-111/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-111/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/bohdaq/rust-web-server on toolchain 1.59.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.59.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/bohdaq/rust-web-server [INFO] finished tweaking git repo https://github.com/bohdaq/rust-web-server [INFO] tweaked toml for git repo https://github.com/bohdaq/rust-web-server written to /workspace/builds/worker-111/source/Cargo.toml [INFO] crate git repo https://github.com/bohdaq/rust-web-server already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.59.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 991566efefffed25be3e35daaff89f81df5a9fc10d5f0255966b9efd181c04d7 [INFO] running `Command { std: "docker" "start" "-a" "991566efefffed25be3e35daaff89f81df5a9fc10d5f0255966b9efd181c04d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "991566efefffed25be3e35daaff89f81df5a9fc10d5f0255966b9efd181c04d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "991566efefffed25be3e35daaff89f81df5a9fc10d5f0255966b9efd181c04d7", kill_on_drop: false }` [INFO] [stdout] 991566efefffed25be3e35daaff89f81df5a9fc10d5f0255966b9efd181c04d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e878d028e0f034b9cdb12fed79672b664054e578f2382a50587c46048203e3f7 [INFO] running `Command { std: "docker" "start" "-a" "e878d028e0f034b9cdb12fed79672b664054e578f2382a50587c46048203e3f7", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libc v0.2.117 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling textwrap v0.14.2 [INFO] [stderr] Compiling indexmap v1.8.0 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling os_str_bytes v6.0.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling clap v3.0.14 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling rws v0.0.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `env`, `fs`, `io` [INFO] [stdout] --> src/server.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{env, fs, io}; [INFO] [stdout] | ^^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/server.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::CONSTANTS` [INFO] [stdout] --> src/server.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::CONSTANTS; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HTTP_VERSIONS`, `REQUEST_METHODS`, `RESPONSE_STATUS_CODE_REASON_PHRASES` [INFO] [stdout] --> src/server.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::constant::{HTTP_VERSIONS, REQUEST_METHODS, RESPONSE_STATUS_CODE_REASON_PHRASES}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs` [INFO] [stdout] --> src/test.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | mod test; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/main.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | mod test; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs` [INFO] [stdout] --> src/app.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs` [INFO] [stdout] --> src/thread_pool.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs, thread}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs` [INFO] [stdout] --> src/main.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | use std::{env, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::request::Request` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::request::Request; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::response::Response` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::response::Response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `no_more_new_line_chars_found` [INFO] [stdout] --> src/request.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let no_more_new_line_chars_found = bytes_offset == 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_more_new_line_chars_found` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/request.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | let mut content_length: usize = 0; [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/request.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | let mut iteration_number : usize = 0; [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/response.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut response = [response_without_body.into_bytes(), response.message_body].concat(); [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/response.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let mut content_length: usize = 0; [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/response.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let mut iteration_number : usize = 0; [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/response.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let mut header_parts: Vec<&str> = header_string.split(CONSTANTS.HEADER_NAME_VALUE_SEPARATOR).collect(); [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/response.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let mut raw_header_name = header_parts[0].to_string(); [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/response.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut header_name = Server::truncate_new_line_carriage_return(raw_header_name); [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/response.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut raw_header_value = header_parts[1].to_string(); [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/response.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let mut header_value = Server::truncate_new_line_carriage_return(raw_header_value); [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/app.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut contents = file_content; [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/app.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | let mut contents = file_content; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_header` [INFO] [stdout] --> src/request.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) fn get_header(&self, name: String) -> Option<&Header> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `generate_request` [INFO] [stdout] --> src/request.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) fn generate_request(request: Request) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constant is never used: `HTTP_VERSION_AND_STATUS_CODE_AND_REASON_PHRASE_REGEX` [INFO] [stdout] --> src/response.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) const HTTP_VERSION_AND_STATUS_CODE_AND_REASON_PHRASE_REGEX: &'static str = "(?P\\w+/\\w+.\\w)\\s(?P\\w+)\\s(?P.+)"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_header` [INFO] [stdout] --> src/response.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) fn get_header(&self, name: String) -> Option<&Header> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `parse_response` [INFO] [stdout] --> src/response.rs:59:19 [INFO] [stdout] | [INFO] [stdout] 59 | pub(crate) fn parse_response(response_vec_u8: &[u8]) -> Response { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `parse_http_version_status_code_reason_phrase_string` [INFO] [stdout] --> src/response.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | pub(crate) fn parse_http_version_status_code_reason_phrase_string(http_version_status_code_reason_phrase: &str) -> (String, String, ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `parse_http_response_header_string` [INFO] [stdout] --> src/response.rs:89:20 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) fn parse_http_response_header_string(header_string: &str) -> Header { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `cursor_read` [INFO] [stdout] --> src/response.rs:105:19 [INFO] [stdout] | [INFO] [stdout] 105 | pub(crate) fn cursor_read(cursor: &mut Cursor<&[u8]>, mut iteration_number: usize, response: &mut Response, mut content_length: usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `truncate_new_line_carriage_return` [INFO] [stdout] --> src/server.rs:41:19 [INFO] [stdout] | [INFO] [stdout] 41 | pub(crate) fn truncate_new_line_carriage_return(str: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `workers` [INFO] [stdout] --> src/thread_pool.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | workers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/thread_pool.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | id: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `thread` [INFO] [stdout] --> src/thread_pool.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | thread: thread::JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `CHARSET` [INFO] [stdout] --> src/constant.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) CHARSET: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `UTF_8` [INFO] [stdout] --> src/constant.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) UTF_8: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HEAD` [INFO] [stdout] --> src/constant.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) HEAD: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `POST` [INFO] [stdout] --> src/constant.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) POST: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `PUT` [INFO] [stdout] --> src/constant.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) PUT: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `DELETE` [INFO] [stdout] --> src/constant.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) DELETE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `CONNECT` [INFO] [stdout] --> src/constant.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) CONNECT: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `OPTIONS` [INFO] [stdout] --> src/constant.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `TRACE` [INFO] [stdout] --> src/constant.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) TRACE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_0_9` [INFO] [stdout] --> src/constant.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_1_0` [INFO] [stdout] --> src/constant.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_2_0` [INFO] [stdout] --> src/constant.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `N206_PARTIAL_CONTENT` [INFO] [stdout] --> src/constant.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `N416_RANGE_NOT_SATISFIABLE` [INFO] [stdout] --> src/constant.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/response.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | cursor.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `NEW_LINE_SEPARATOR` should have a snake case name [INFO] [stdout] --> src/constant.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | pub(crate) NEW_LINE_SEPARATOR: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_line_separator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `EMPTY_STRING` should have a snake case name [INFO] [stdout] --> src/constant.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) EMPTY_STRING: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `WHITESPACE` should have a snake case name [INFO] [stdout] --> src/constant.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) WHITESPACE: &'static str, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `whitespace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HEADER_NAME_VALUE_SEPARATOR` should have a snake case name [INFO] [stdout] --> src/constant.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | pub(crate) HEADER_NAME_VALUE_SEPARATOR: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `header_name_value_separator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `SLASH` should have a snake case name [INFO] [stdout] --> src/constant.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) SLASH: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `slash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CHARSET` should have a snake case name [INFO] [stdout] --> src/constant.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) CHARSET: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `UTF_8` should have a snake case name [INFO] [stdout] --> src/constant.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) UTF_8: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `utf_8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `NOSNIFF` should have a snake case name [INFO] [stdout] --> src/constant.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) NOSNIFF: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `nosniff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `GET` should have a snake case name [INFO] [stdout] --> src/constant.rs:25:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) GET: &'static str, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `get` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HEAD` should have a snake case name [INFO] [stdout] --> src/constant.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) HEAD: &'static str, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `head` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `POST` should have a snake case name [INFO] [stdout] --> src/constant.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) POST: &'static str, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `post` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `PUT` should have a snake case name [INFO] [stdout] --> src/constant.rs:28:16 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) PUT: &'static str, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `put` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `DELETE` should have a snake case name [INFO] [stdout] --> src/constant.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) DELETE: &'static str, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `delete` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONNECT` should have a snake case name [INFO] [stdout] --> src/constant.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) CONNECT: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `connect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `OPTIONS` should have a snake case name [INFO] [stdout] --> src/constant.rs:31:16 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `TRACE` should have a snake case name [INFO] [stdout] --> src/constant.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) TRACE: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `trace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_0_9` should have a snake case name [INFO] [stdout] --> src/constant.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_0_9` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_1_0` should have a snake case name [INFO] [stdout] --> src/constant.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_1_1` should have a snake case name [INFO] [stdout] --> src/constant.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) HTTP_VERSION_1_1: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_2_0` should have a snake case name [INFO] [stdout] --> src/constant.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_2_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `STATUS_CODE` should have a snake case name [INFO] [stdout] --> src/constant.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) STATUS_CODE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `status_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `REASON_PHRASE` should have a snake case name [INFO] [stdout] --> src/constant.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) REASON_PHRASE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `reason_phrase` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N200_OK` should have a snake case name [INFO] [stdout] --> src/constant.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) N200_OK: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `n200_ok` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N206_PARTIAL_CONTENT` should have a snake case name [INFO] [stdout] --> src/constant.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n206_partial_content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N404_NOT_FOUND` should have a snake case name [INFO] [stdout] --> src/constant.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | pub(crate) N404_NOT_FOUND: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n404_not_found` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N416_RANGE_NOT_SATISFIABLE` should have a snake case name [INFO] [stdout] --> src/constant.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n416_range_not_satisfiable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONTENT_TYPE` should have a snake case name [INFO] [stdout] --> src/constant.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | pub(crate) CONTENT_TYPE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `content_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONTENT_LENGTH` should have a snake case name [INFO] [stdout] --> src/constant.rs:97:16 [INFO] [stdout] | [INFO] [stdout] 97 | pub(crate) CONTENT_LENGTH: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `content_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `X_CONTENT_TYPE_OPTIONS` should have a snake case name [INFO] [stdout] --> src/constant.rs:98:16 [INFO] [stdout] | [INFO] [stdout] 98 | pub(crate) X_CONTENT_TYPE_OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `x_content_type_options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `HTML_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | let HTML_SUFFIXES = vec![MimeType::HTML_SUFFIX, MimeType::HTM_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `html_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `JS_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let JS_SUFFIXES = vec![MimeType::MJS_SUFFIX, MimeType::JS_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `js_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `JPEG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | ... let JPEG_SUFFIXES = vec![MimeType::JPG_SUFFIX, MimeType::JPEG_SUFFIX, MimeType::JPE_SUFFIX, MimeType::JIF_SUFFIX, MimeType::JFIF_SU... [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `jpeg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `ICO_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | let ICO_SUFFIXES = vec![MimeType::ICO_SUFFIX, MimeType::CUR_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ico_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TIFF_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:287:17 [INFO] [stdout] | [INFO] [stdout] 287 | let TIFF_SUFFIXES = vec![MimeType::TIF_SUFFIX, MimeType::TIFF_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `tiff_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MPEG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:330:17 [INFO] [stdout] | [INFO] [stdout] 330 | let MPEG_SUFFIXES = vec![MimeType::MPG_SUFFIX, MimeType::MPEG_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mpeg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MP4_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:343:17 [INFO] [stdout] | [INFO] [stdout] 343 | let MP4_SUFFIXES = vec![MimeType::MP4_SUFFIX, MimeType::M4V_SUFFIX, MimeType::M4P_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `mp4_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `OGG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:356:17 [INFO] [stdout] | [INFO] [stdout] 356 | let OGG_SUFFIXES = vec![MimeType::OGG_SUFFIX, MimeType::OGV_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ogg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MIDI_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:470:17 [INFO] [stdout] | [INFO] [stdout] 470 | let MIDI_SUFFIXES = vec![MimeType::MIDI_SUFFIX, MimeType::MID_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `midi_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 91 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 19.32s [INFO] running `Command { std: "docker" "inspect" "e878d028e0f034b9cdb12fed79672b664054e578f2382a50587c46048203e3f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e878d028e0f034b9cdb12fed79672b664054e578f2382a50587c46048203e3f7", kill_on_drop: false }` [INFO] [stdout] e878d028e0f034b9cdb12fed79672b664054e578f2382a50587c46048203e3f7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2bcd5c882fbaf75732b555eb703cc5bd351e2ec228c15b12cd76b603b913eb77 [INFO] running `Command { std: "docker" "start" "-a" "2bcd5c882fbaf75732b555eb703cc5bd351e2ec228c15b12cd76b603b913eb77", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling rws v0.0.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `env`, `fs`, `io` [INFO] [stdout] --> src/server.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{env, fs, io}; [INFO] [stdout] | ^^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/server.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::CONSTANTS` [INFO] [stdout] --> src/server.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::CONSTANTS; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HTTP_VERSIONS`, `REQUEST_METHODS`, `RESPONSE_STATUS_CODE_REASON_PHRASES` [INFO] [stdout] --> src/server.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::constant::{HTTP_VERSIONS, REQUEST_METHODS, RESPONSE_STATUS_CODE_REASON_PHRASES}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fs` [INFO] [stdout] --> src/app.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs` [INFO] [stdout] --> src/thread_pool.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{env, fs, thread}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::prelude::*` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env`, `fs` [INFO] [stdout] --> src/main.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | use std::{env, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::request::Request` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::request::Request; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::response::Response` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::response::Response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `no_more_new_line_chars_found` [INFO] [stdout] --> src/request.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let no_more_new_line_chars_found = bytes_offset == 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_more_new_line_chars_found` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:980:13 [INFO] [stdout] | [INFO] [stdout] 980 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:981:13 [INFO] [stdout] | [INFO] [stdout] 981 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:982:13 [INFO] [stdout] | [INFO] [stdout] 982 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1038:13 [INFO] [stdout] | [INFO] [stdout] 1038 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1048:13 [INFO] [stdout] | [INFO] [stdout] 1048 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1049:13 [INFO] [stdout] | [INFO] [stdout] 1049 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1050:13 [INFO] [stdout] | [INFO] [stdout] 1050 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1107:13 [INFO] [stdout] | [INFO] [stdout] 1107 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1118:13 [INFO] [stdout] | [INFO] [stdout] 1118 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1119:13 [INFO] [stdout] | [INFO] [stdout] 1119 | let port: usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1120:13 [INFO] [stdout] | [INFO] [stdout] 1120 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1177:13 [INFO] [stdout] | [INFO] [stdout] 1177 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1188:13 [INFO] [stdout] | [INFO] [stdout] 1188 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1189:13 [INFO] [stdout] | [INFO] [stdout] 1189 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1190:13 [INFO] [stdout] | [INFO] [stdout] 1190 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1247:13 [INFO] [stdout] | [INFO] [stdout] 1247 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1258:13 [INFO] [stdout] | [INFO] [stdout] 1258 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1259:13 [INFO] [stdout] | [INFO] [stdout] 1259 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1260:13 [INFO] [stdout] | [INFO] [stdout] 1260 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1317:13 [INFO] [stdout] | [INFO] [stdout] 1317 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1328:13 [INFO] [stdout] | [INFO] [stdout] 1328 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1329:13 [INFO] [stdout] | [INFO] [stdout] 1329 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1330:13 [INFO] [stdout] | [INFO] [stdout] 1330 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1387:13 [INFO] [stdout] | [INFO] [stdout] 1387 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1397:13 [INFO] [stdout] | [INFO] [stdout] 1397 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1398:13 [INFO] [stdout] | [INFO] [stdout] 1398 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1399:13 [INFO] [stdout] | [INFO] [stdout] 1399 | let static_directories = vec!["/static".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1460:13 [INFO] [stdout] | [INFO] [stdout] 1460 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1470:13 [INFO] [stdout] | [INFO] [stdout] 1470 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1471:13 [INFO] [stdout] | [INFO] [stdout] 1471 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1472:13 [INFO] [stdout] | [INFO] [stdout] 1472 | let static_directories = vec!["/static".to_string(), "/assets".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_filepath` [INFO] [stdout] --> src/test.rs:1532:13 [INFO] [stdout] | [INFO] [stdout] 1532 | let response_filepath = &request.request_uri; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip_addr` [INFO] [stdout] --> src/test.rs:1542:13 [INFO] [stdout] | [INFO] [stdout] 1542 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/test.rs:1543:13 [INFO] [stdout] | [INFO] [stdout] 1543 | let port : usize = "8787".parse().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `static_directories` [INFO] [stdout] --> src/test.rs:1544:13 [INFO] [stdout] | [INFO] [stdout] 1544 | let static_directories = vec!["/static".to_string(), "/assets".to_string()]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/request.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | let mut content_length: usize = 0; [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/request.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | let mut iteration_number : usize = 0; [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/response.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let mut response = [response_without_body.into_bytes(), response.message_body].concat(); [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/response.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let mut content_length: usize = 0; [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/response.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let mut iteration_number : usize = 0; [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/response.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let mut header_parts: Vec<&str> = header_string.split(CONSTANTS.HEADER_NAME_VALUE_SEPARATOR).collect(); [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/response.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let mut raw_header_name = header_parts[0].to_string(); [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/response.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | let mut header_name = Server::truncate_new_line_carriage_return(raw_header_name); [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/response.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut raw_header_value = header_parts[1].to_string(); [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/response.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | let mut header_value = Server::truncate_new_line_carriage_return(raw_header_value); [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/app.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut contents = file_content; [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/app.rs:47:17 [INFO] [stdout] | [INFO] [stdout] 47 | let mut contents = file_content; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `workers` [INFO] [stdout] --> src/thread_pool.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | workers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/thread_pool.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | id: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `thread` [INFO] [stdout] --> src/thread_pool.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | thread: thread::JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `CHARSET` [INFO] [stdout] --> src/constant.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) CHARSET: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `UTF_8` [INFO] [stdout] --> src/constant.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) UTF_8: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HEAD` [INFO] [stdout] --> src/constant.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) HEAD: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `POST` [INFO] [stdout] --> src/constant.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) POST: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `PUT` [INFO] [stdout] --> src/constant.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) PUT: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `DELETE` [INFO] [stdout] --> src/constant.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) DELETE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `CONNECT` [INFO] [stdout] --> src/constant.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) CONNECT: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `OPTIONS` [INFO] [stdout] --> src/constant.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `TRACE` [INFO] [stdout] --> src/constant.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) TRACE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_0_9` [INFO] [stdout] --> src/constant.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_1_0` [INFO] [stdout] --> src/constant.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `HTTP_VERSION_2_0` [INFO] [stdout] --> src/constant.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `N206_PARTIAL_CONTENT` [INFO] [stdout] --> src/constant.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `N416_RANGE_NOT_SATISFIABLE` [INFO] [stdout] --> src/constant.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/response.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | cursor.read_to_end(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `NEW_LINE_SEPARATOR` should have a snake case name [INFO] [stdout] --> src/constant.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | pub(crate) NEW_LINE_SEPARATOR: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_line_separator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `EMPTY_STRING` should have a snake case name [INFO] [stdout] --> src/constant.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | pub(crate) EMPTY_STRING: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `WHITESPACE` should have a snake case name [INFO] [stdout] --> src/constant.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) WHITESPACE: &'static str, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `whitespace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HEADER_NAME_VALUE_SEPARATOR` should have a snake case name [INFO] [stdout] --> src/constant.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | pub(crate) HEADER_NAME_VALUE_SEPARATOR: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `header_name_value_separator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `SLASH` should have a snake case name [INFO] [stdout] --> src/constant.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) SLASH: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `slash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CHARSET` should have a snake case name [INFO] [stdout] --> src/constant.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) CHARSET: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `UTF_8` should have a snake case name [INFO] [stdout] --> src/constant.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | pub(crate) UTF_8: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `utf_8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `NOSNIFF` should have a snake case name [INFO] [stdout] --> src/constant.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) NOSNIFF: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `nosniff` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `GET` should have a snake case name [INFO] [stdout] --> src/constant.rs:25:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) GET: &'static str, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `get` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HEAD` should have a snake case name [INFO] [stdout] --> src/constant.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) HEAD: &'static str, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `head` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `POST` should have a snake case name [INFO] [stdout] --> src/constant.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) POST: &'static str, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `post` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `PUT` should have a snake case name [INFO] [stdout] --> src/constant.rs:28:16 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) PUT: &'static str, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `put` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `DELETE` should have a snake case name [INFO] [stdout] --> src/constant.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | pub(crate) DELETE: &'static str, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `delete` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONNECT` should have a snake case name [INFO] [stdout] --> src/constant.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) CONNECT: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `connect` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `OPTIONS` should have a snake case name [INFO] [stdout] --> src/constant.rs:31:16 [INFO] [stdout] | [INFO] [stdout] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `TRACE` should have a snake case name [INFO] [stdout] --> src/constant.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) TRACE: &'static str, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `trace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_0_9` should have a snake case name [INFO] [stdout] --> src/constant.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_0_9` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_1_0` should have a snake case name [INFO] [stdout] --> src/constant.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_1_1` should have a snake case name [INFO] [stdout] --> src/constant.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) HTTP_VERSION_1_1: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `HTTP_VERSION_2_0` should have a snake case name [INFO] [stdout] --> src/constant.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_2_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `STATUS_CODE` should have a snake case name [INFO] [stdout] --> src/constant.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) STATUS_CODE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `status_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `REASON_PHRASE` should have a snake case name [INFO] [stdout] --> src/constant.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) REASON_PHRASE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `reason_phrase` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N200_OK` should have a snake case name [INFO] [stdout] --> src/constant.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) N200_OK: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `n200_ok` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N206_PARTIAL_CONTENT` should have a snake case name [INFO] [stdout] --> src/constant.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n206_partial_content` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N404_NOT_FOUND` should have a snake case name [INFO] [stdout] --> src/constant.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | pub(crate) N404_NOT_FOUND: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n404_not_found` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `N416_RANGE_NOT_SATISFIABLE` should have a snake case name [INFO] [stdout] --> src/constant.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n416_range_not_satisfiable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONTENT_TYPE` should have a snake case name [INFO] [stdout] --> src/constant.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | pub(crate) CONTENT_TYPE: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `content_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `CONTENT_LENGTH` should have a snake case name [INFO] [stdout] --> src/constant.rs:97:16 [INFO] [stdout] | [INFO] [stdout] 97 | pub(crate) CONTENT_LENGTH: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `content_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `X_CONTENT_TYPE_OPTIONS` should have a snake case name [INFO] [stdout] --> src/constant.rs:98:16 [INFO] [stdout] | [INFO] [stdout] 98 | pub(crate) X_CONTENT_TYPE_OPTIONS: &'static str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `x_content_type_options` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `HTML_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | let HTML_SUFFIXES = vec![MimeType::HTML_SUFFIX, MimeType::HTM_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `html_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `JS_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | let JS_SUFFIXES = vec![MimeType::MJS_SUFFIX, MimeType::JS_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `js_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `JPEG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | ... let JPEG_SUFFIXES = vec![MimeType::JPG_SUFFIX, MimeType::JPEG_SUFFIX, MimeType::JPE_SUFFIX, MimeType::JIF_SUFFIX, MimeType::JFIF_SU... [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `jpeg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `ICO_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | let ICO_SUFFIXES = vec![MimeType::ICO_SUFFIX, MimeType::CUR_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ico_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TIFF_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:287:17 [INFO] [stdout] | [INFO] [stdout] 287 | let TIFF_SUFFIXES = vec![MimeType::TIF_SUFFIX, MimeType::TIFF_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `tiff_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MPEG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:330:17 [INFO] [stdout] | [INFO] [stdout] 330 | let MPEG_SUFFIXES = vec![MimeType::MPG_SUFFIX, MimeType::MPEG_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mpeg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MP4_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:343:17 [INFO] [stdout] | [INFO] [stdout] 343 | let MP4_SUFFIXES = vec![MimeType::MP4_SUFFIX, MimeType::M4V_SUFFIX, MimeType::M4P_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `mp4_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `OGG_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:356:17 [INFO] [stdout] | [INFO] [stdout] 356 | let OGG_SUFFIXES = vec![MimeType::OGG_SUFFIX, MimeType::OGV_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ogg_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `MIDI_SUFFIXES` should have a snake case name [INFO] [stdout] --> src/mime_type.rs:470:17 [INFO] [stdout] | [INFO] [stdout] 470 | let MIDI_SUFFIXES = vec![MimeType::MIDI_SUFFIX, MimeType::MID_SUFFIX]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `midi_suffixes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 115 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.82s [INFO] running `Command { std: "docker" "inspect" "2bcd5c882fbaf75732b555eb703cc5bd351e2ec228c15b12cd76b603b913eb77", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2bcd5c882fbaf75732b555eb703cc5bd351e2ec228c15b12cd76b603b913eb77", kill_on_drop: false }` [INFO] [stdout] 2bcd5c882fbaf75732b555eb703cc5bd351e2ec228c15b12cd76b603b913eb77 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-111/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=warn" "-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:0cd99ca24d8e8c98e67c542213511d985b8778b5bdcbb160e038429496686047" "/opt/rustwide/cargo-home/bin/cargo" "+1.59.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0fdd0a26e0628081406c35ccaba6cda0e8d0d110980d6c6810d9e833e1b6bf18 [INFO] running `Command { std: "docker" "start" "-a" "0fdd0a26e0628081406c35ccaba6cda0e8d0d110980d6c6810d9e833e1b6bf18", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `env`, `fs`, `io` [INFO] [stderr] --> src/server.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | use std::{env, fs, io}; [INFO] [stderr] | ^^^ ^^ ^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/server.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::CONSTANTS` [INFO] [stderr] --> src/server.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::CONSTANTS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HTTP_VERSIONS`, `REQUEST_METHODS`, `RESPONSE_STATUS_CODE_REASON_PHRASES` [INFO] [stderr] --> src/server.rs:11:23 [INFO] [stderr] | [INFO] [stderr] 11 | use crate::constant::{HTTP_VERSIONS, REQUEST_METHODS, RESPONSE_STATUS_CODE_REASON_PHRASES}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `fs` [INFO] [stderr] --> src/app.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{env, fs}; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `env`, `fs` [INFO] [stderr] --> src/thread_pool.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{env, fs, thread}; [INFO] [stderr] | ^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::TcpStream` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::net::TcpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `env`, `fs` [INFO] [stderr] --> src/main.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 16 | use std::{env, fs}; [INFO] [stderr] | ^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::request::Request` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use crate::request::Request; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::response::Response` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use crate::response::Response; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `no_more_new_line_chars_found` [INFO] [stderr] --> src/request.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | let no_more_new_line_chars_found = bytes_offset == 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_more_new_line_chars_found` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:980:13 [INFO] [stderr] | [INFO] [stderr] 980 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:981:13 [INFO] [stderr] | [INFO] [stderr] 981 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:982:13 [INFO] [stderr] | [INFO] [stderr] 982 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1038:13 [INFO] [stderr] | [INFO] [stderr] 1038 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1048:13 [INFO] [stderr] | [INFO] [stderr] 1048 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1049:13 [INFO] [stderr] | [INFO] [stderr] 1049 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1050:13 [INFO] [stderr] | [INFO] [stderr] 1050 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1107:13 [INFO] [stderr] | [INFO] [stderr] 1107 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1118:13 [INFO] [stderr] | [INFO] [stderr] 1118 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let port: usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1120:13 [INFO] [stderr] | [INFO] [stderr] 1120 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1177:13 [INFO] [stderr] | [INFO] [stderr] 1177 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1188:13 [INFO] [stderr] | [INFO] [stderr] 1188 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1189:13 [INFO] [stderr] | [INFO] [stderr] 1189 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1190:13 [INFO] [stderr] | [INFO] [stderr] 1190 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1247:13 [INFO] [stderr] | [INFO] [stderr] 1247 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1258:13 [INFO] [stderr] | [INFO] [stderr] 1258 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1259:13 [INFO] [stderr] | [INFO] [stderr] 1259 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1260:13 [INFO] [stderr] | [INFO] [stderr] 1260 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1317:13 [INFO] [stderr] | [INFO] [stderr] 1317 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1328:13 [INFO] [stderr] | [INFO] [stderr] 1328 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1329:13 [INFO] [stderr] | [INFO] [stderr] 1329 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1330:13 [INFO] [stderr] | [INFO] [stderr] 1330 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1387:13 [INFO] [stderr] | [INFO] [stderr] 1387 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1397:13 [INFO] [stderr] | [INFO] [stderr] 1397 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1398:13 [INFO] [stderr] | [INFO] [stderr] 1398 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1399:13 [INFO] [stderr] | [INFO] [stderr] 1399 | let static_directories = vec!["/static".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1460:13 [INFO] [stderr] | [INFO] [stderr] 1460 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1470:13 [INFO] [stderr] | [INFO] [stderr] 1470 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1471:13 [INFO] [stderr] | [INFO] [stderr] 1471 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1472:13 [INFO] [stderr] | [INFO] [stderr] 1472 | let static_directories = vec!["/static".to_string(), "/assets".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_filepath` [INFO] [stderr] --> src/test.rs:1532:13 [INFO] [stderr] | [INFO] [stderr] 1532 | let response_filepath = &request.request_uri; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_filepath` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_addr` [INFO] [stderr] --> src/test.rs:1542:13 [INFO] [stderr] | [INFO] [stderr] 1542 | let ip_addr= "127.0.0.1".to_string(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ip_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `port` [INFO] [stderr] --> src/test.rs:1543:13 [INFO] [stderr] | [INFO] [stderr] 1543 | let port : usize = "8787".parse().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `static_directories` [INFO] [stderr] --> src/test.rs:1544:13 [INFO] [stderr] | [INFO] [stderr] 1544 | let static_directories = vec!["/static".to_string(), "/assets".to_string()]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_static_directories` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/request.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | let mut content_length: usize = 0; [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/request.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | let mut iteration_number : usize = 0; [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/response.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut response = [response_without_body.into_bytes(), response.message_body].concat(); [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/response.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | let mut content_length: usize = 0; [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/response.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | let mut iteration_number : usize = 0; [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/response.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | let mut header_parts: Vec<&str> = header_string.split(CONSTANTS.HEADER_NAME_VALUE_SEPARATOR).collect(); [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/response.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | let mut raw_header_name = header_parts[0].to_string(); [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/response.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let mut header_name = Server::truncate_new_line_carriage_return(raw_header_name); [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/response.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | let mut raw_header_value = header_parts[1].to_string(); [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/response.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | let mut header_value = Server::truncate_new_line_carriage_return(raw_header_value); [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/app.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let mut contents = file_content; [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/app.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | let mut contents = file_content; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `workers` [INFO] [stderr] --> src/thread_pool.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | workers: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `id` [INFO] [stderr] --> src/thread_pool.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | id: usize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `thread` [INFO] [stderr] --> src/thread_pool.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | thread: thread::JoinHandle<()>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `CHARSET` [INFO] [stderr] --> src/constant.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) CHARSET: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `UTF_8` [INFO] [stderr] --> src/constant.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) UTF_8: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `HEAD` [INFO] [stderr] --> src/constant.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub(crate) HEAD: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `POST` [INFO] [stderr] --> src/constant.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub(crate) POST: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `PUT` [INFO] [stderr] --> src/constant.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub(crate) PUT: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `DELETE` [INFO] [stderr] --> src/constant.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub(crate) DELETE: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `CONNECT` [INFO] [stderr] --> src/constant.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | pub(crate) CONNECT: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `OPTIONS` [INFO] [stderr] --> src/constant.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `TRACE` [INFO] [stderr] --> src/constant.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | pub(crate) TRACE: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `HTTP_VERSION_0_9` [INFO] [stderr] --> src/constant.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `HTTP_VERSION_1_0` [INFO] [stderr] --> src/constant.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `HTTP_VERSION_2_0` [INFO] [stderr] --> src/constant.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `N206_PARTIAL_CONTENT` [INFO] [stderr] --> src/constant.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `N416_RANGE_NOT_SATISFIABLE` [INFO] [stderr] --> src/constant.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/response.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | cursor.read_to_end(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: structure field `NEW_LINE_SEPARATOR` should have a snake case name [INFO] [stderr] --> src/constant.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | pub(crate) NEW_LINE_SEPARATOR: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `new_line_separator` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `EMPTY_STRING` should have a snake case name [INFO] [stderr] --> src/constant.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | pub(crate) EMPTY_STRING: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_string` [INFO] [stderr] [INFO] [stderr] warning: structure field `WHITESPACE` should have a snake case name [INFO] [stderr] --> src/constant.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | pub(crate) WHITESPACE: &'static str, [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `whitespace` [INFO] [stderr] [INFO] [stderr] warning: structure field `HEADER_NAME_VALUE_SEPARATOR` should have a snake case name [INFO] [stderr] --> src/constant.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | pub(crate) HEADER_NAME_VALUE_SEPARATOR: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `header_name_value_separator` [INFO] [stderr] [INFO] [stderr] warning: structure field `SLASH` should have a snake case name [INFO] [stderr] --> src/constant.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | pub(crate) SLASH: &'static str, [INFO] [stderr] | ^^^^^ help: convert the identifier to snake case: `slash` [INFO] [stderr] [INFO] [stderr] warning: structure field `CHARSET` should have a snake case name [INFO] [stderr] --> src/constant.rs:7:16 [INFO] [stderr] | [INFO] [stderr] 7 | pub(crate) CHARSET: &'static str, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `charset` [INFO] [stderr] [INFO] [stderr] warning: structure field `UTF_8` should have a snake case name [INFO] [stderr] --> src/constant.rs:8:16 [INFO] [stderr] | [INFO] [stderr] 8 | pub(crate) UTF_8: &'static str, [INFO] [stderr] | ^^^^^ help: convert the identifier to snake case: `utf_8` [INFO] [stderr] [INFO] [stderr] warning: structure field `NOSNIFF` should have a snake case name [INFO] [stderr] --> src/constant.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | pub(crate) NOSNIFF: &'static str, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `nosniff` [INFO] [stderr] [INFO] [stderr] warning: structure field `GET` should have a snake case name [INFO] [stderr] --> src/constant.rs:25:16 [INFO] [stderr] | [INFO] [stderr] 25 | pub(crate) GET: &'static str, [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `get` [INFO] [stderr] [INFO] [stderr] warning: structure field `HEAD` should have a snake case name [INFO] [stderr] --> src/constant.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | pub(crate) HEAD: &'static str, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `head` [INFO] [stderr] [INFO] [stderr] warning: structure field `POST` should have a snake case name [INFO] [stderr] --> src/constant.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | pub(crate) POST: &'static str, [INFO] [stderr] | ^^^^ help: convert the identifier to snake case: `post` [INFO] [stderr] [INFO] [stderr] warning: structure field `PUT` should have a snake case name [INFO] [stderr] --> src/constant.rs:28:16 [INFO] [stderr] | [INFO] [stderr] 28 | pub(crate) PUT: &'static str, [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `put` [INFO] [stderr] [INFO] [stderr] warning: structure field `DELETE` should have a snake case name [INFO] [stderr] --> src/constant.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | pub(crate) DELETE: &'static str, [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `delete` [INFO] [stderr] [INFO] [stderr] warning: structure field `CONNECT` should have a snake case name [INFO] [stderr] --> src/constant.rs:30:16 [INFO] [stderr] | [INFO] [stderr] 30 | pub(crate) CONNECT: &'static str, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `connect` [INFO] [stderr] [INFO] [stderr] warning: structure field `OPTIONS` should have a snake case name [INFO] [stderr] --> src/constant.rs:31:16 [INFO] [stderr] | [INFO] [stderr] 31 | pub(crate) OPTIONS: &'static str, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `options` [INFO] [stderr] [INFO] [stderr] warning: structure field `TRACE` should have a snake case name [INFO] [stderr] --> src/constant.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | pub(crate) TRACE: &'static str, [INFO] [stderr] | ^^^^^ help: convert the identifier to snake case: `trace` [INFO] [stderr] [INFO] [stderr] warning: structure field `HTTP_VERSION_0_9` should have a snake case name [INFO] [stderr] --> src/constant.rs:47:16 [INFO] [stderr] | [INFO] [stderr] 47 | pub(crate) HTTP_VERSION_0_9: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_0_9` [INFO] [stderr] [INFO] [stderr] warning: structure field `HTTP_VERSION_1_0` should have a snake case name [INFO] [stderr] --> src/constant.rs:48:16 [INFO] [stderr] | [INFO] [stderr] 48 | pub(crate) HTTP_VERSION_1_0: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_0` [INFO] [stderr] [INFO] [stderr] warning: structure field `HTTP_VERSION_1_1` should have a snake case name [INFO] [stderr] --> src/constant.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | pub(crate) HTTP_VERSION_1_1: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_1_1` [INFO] [stderr] [INFO] [stderr] warning: structure field `HTTP_VERSION_2_0` should have a snake case name [INFO] [stderr] --> src/constant.rs:50:16 [INFO] [stderr] | [INFO] [stderr] 50 | pub(crate) HTTP_VERSION_2_0: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `http_version_2_0` [INFO] [stderr] [INFO] [stderr] warning: structure field `STATUS_CODE` should have a snake case name [INFO] [stderr] --> src/constant.rs:61:16 [INFO] [stderr] | [INFO] [stderr] 61 | pub(crate) STATUS_CODE: &'static str, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `status_code` [INFO] [stderr] [INFO] [stderr] warning: structure field `REASON_PHRASE` should have a snake case name [INFO] [stderr] --> src/constant.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | pub(crate) REASON_PHRASE: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `reason_phrase` [INFO] [stderr] [INFO] [stderr] warning: structure field `N200_OK` should have a snake case name [INFO] [stderr] --> src/constant.rs:66:16 [INFO] [stderr] | [INFO] [stderr] 66 | pub(crate) N200_OK: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `n200_ok` [INFO] [stderr] [INFO] [stderr] warning: structure field `N206_PARTIAL_CONTENT` should have a snake case name [INFO] [stderr] --> src/constant.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | pub(crate) N206_PARTIAL_CONTENT: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n206_partial_content` [INFO] [stderr] [INFO] [stderr] warning: structure field `N404_NOT_FOUND` should have a snake case name [INFO] [stderr] --> src/constant.rs:68:16 [INFO] [stderr] | [INFO] [stderr] 68 | pub(crate) N404_NOT_FOUND: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n404_not_found` [INFO] [stderr] [INFO] [stderr] warning: structure field `N416_RANGE_NOT_SATISFIABLE` should have a snake case name [INFO] [stderr] --> src/constant.rs:69:16 [INFO] [stderr] | [INFO] [stderr] 69 | pub(crate) N416_RANGE_NOT_SATISFIABLE: &'static StatusCodeReasonPhrase, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `n416_range_not_satisfiable` [INFO] [stderr] [INFO] [stderr] warning: structure field `CONTENT_TYPE` should have a snake case name [INFO] [stderr] --> src/constant.rs:96:16 [INFO] [stderr] | [INFO] [stderr] 96 | pub(crate) CONTENT_TYPE: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `content_type` [INFO] [stderr] [INFO] [stderr] warning: structure field `CONTENT_LENGTH` should have a snake case name [INFO] [stderr] --> src/constant.rs:97:16 [INFO] [stderr] | [INFO] [stderr] 97 | pub(crate) CONTENT_LENGTH: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `content_length` [INFO] [stderr] [INFO] [stderr] warning: structure field `X_CONTENT_TYPE_OPTIONS` should have a snake case name [INFO] [stderr] --> src/constant.rs:98:16 [INFO] [stderr] | [INFO] [stderr] 98 | pub(crate) X_CONTENT_TYPE_OPTIONS: &'static str, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `x_content_type_options` [INFO] [stderr] [INFO] [stderr] warning: variable `HTML_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:200:17 [INFO] [stderr] | [INFO] [stderr] 200 | let HTML_SUFFIXES = vec![MimeType::HTML_SUFFIX, MimeType::HTM_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `html_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `JS_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:213:17 [INFO] [stderr] | [INFO] [stderr] 213 | let JS_SUFFIXES = vec![MimeType::MJS_SUFFIX, MimeType::JS_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `js_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `JPEG_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | ... let JPEG_SUFFIXES = vec![MimeType::JPG_SUFFIX, MimeType::JPEG_SUFFIX, MimeType::JPE_SUFFIX, MimeType::JIF_SUFFIX, MimeType::JFIF_SU... [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `jpeg_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `ICO_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:274:17 [INFO] [stderr] | [INFO] [stderr] 274 | let ICO_SUFFIXES = vec![MimeType::ICO_SUFFIX, MimeType::CUR_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ico_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `TIFF_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:287:17 [INFO] [stderr] | [INFO] [stderr] 287 | let TIFF_SUFFIXES = vec![MimeType::TIF_SUFFIX, MimeType::TIFF_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `tiff_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `MPEG_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:330:17 [INFO] [stderr] | [INFO] [stderr] 330 | let MPEG_SUFFIXES = vec![MimeType::MPG_SUFFIX, MimeType::MPEG_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mpeg_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `MP4_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | let MP4_SUFFIXES = vec![MimeType::MP4_SUFFIX, MimeType::M4V_SUFFIX, MimeType::M4P_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `mp4_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `OGG_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:356:17 [INFO] [stderr] | [INFO] [stderr] 356 | let OGG_SUFFIXES = vec![MimeType::OGG_SUFFIX, MimeType::OGV_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `ogg_suffixes` [INFO] [stderr] [INFO] [stderr] warning: variable `MIDI_SUFFIXES` should have a snake case name [INFO] [stderr] --> src/mime_type.rs:470:17 [INFO] [stderr] | [INFO] [stderr] 470 | let MIDI_SUFFIXES = vec![MimeType::MIDI_SUFFIX, MimeType::MID_SUFFIX]; [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `midi_suffixes` [INFO] [stderr] [INFO] [stderr] warning: `rws` (bin "rws" test) generated 115 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/rws-6739dd67dbb5cbad) [INFO] [stdout] [INFO] [stdout] running 100 tests [INFO] [stdout] test test::tests::detect_mime_type_for_7z_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_audio_flac_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_audio_wav_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_3g2_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_audio_oga_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_avi_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_abiword_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_audio_aac_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_bin_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_azv_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_bz2_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_binary_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_doc_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_css_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_cda_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_eot_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_csv_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_docx_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_gz_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_bz_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_csh_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_html_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_ics_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_bmp_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_cur_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_htm_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_apng_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_ico_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_jfif_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_jif_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_gif_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_jpe_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_jpeg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_jpg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_png_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_avif_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_svg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_tif_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_webp_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_jar_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_js_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_image_tiff_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_json_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_midi_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_mjs_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_mpkg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_ods_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_odp_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_mid_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_jsonld_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_mp4_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_swf_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_rtf_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_ppt_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_rar_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_m4p_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_text_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_sh_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_mp3_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_ttf_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_php_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_tar_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_3gp_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_pptx_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_ts_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_odt_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_mpeg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_ogg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_opus_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_pdf_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_otf_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_webm_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_vsd_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_ogv_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_mpg_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_mp4_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_ogx_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_quicktime_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_webm_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_video_m4v_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_woff_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_zip_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_xls_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_xlsx_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_xhtml_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_xml_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_xul_file ... ok [INFO] [stdout] test test::tests::detect_mime_type_for_woff2_file ... ok [INFO] [stdout] test test::tests::method_and_request_uri_and_http_version_regex ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_additional_headers ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_static_file ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_static_file_in_subdirectory ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_additional_headers_and_non_utf8_file ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_index_html ... ok [INFO] [stdout] test test::tests::it_generates_not_found_page_for_static_directory ... ok [INFO] [stdout] test test::tests::http_version_and_status_code_and_reason_phrase_regex ... ok [INFO] [stdout] test test::tests::it_generates_not_found_page_for_absent_static_file ... ok [INFO] [stdout] test test::tests::it_generates_not_found_page_for_absent_route ... ok [INFO] [stdout] test test::tests::it_generates_not_found_page_for_static_subdirectory ... ok [INFO] [stdout] test test::tests::it_generates_successful_response_with_static_file_in_multiple_static_directories ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 100 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0fdd0a26e0628081406c35ccaba6cda0e8d0d110980d6c6810d9e833e1b6bf18", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0fdd0a26e0628081406c35ccaba6cda0e8d0d110980d6c6810d9e833e1b6bf18", kill_on_drop: false }` [INFO] [stdout] 0fdd0a26e0628081406c35ccaba6cda0e8d0d110980d6c6810d9e833e1b6bf18