[INFO] cloning repository https://github.com/Andrewmatilde/rs-tproxy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Andrewmatilde/rs-tproxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAndrewmatilde%2Frs-tproxy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAndrewmatilde%2Frs-tproxy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f6328a90baf27954ecf711e9cf61bb69c3078059 [INFO] checking Andrewmatilde/rs-tproxy against master#9fa580b1175018b0a276b0bc68f9827a106f7260 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAndrewmatilde%2Frs-tproxy" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Andrewmatilde/rs-tproxy on toolchain 9fa580b1175018b0a276b0bc68f9827a106f7260 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+9fa580b1175018b0a276b0bc68f9827a106f7260" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Andrewmatilde/rs-tproxy [INFO] finished tweaking git repo https://github.com/Andrewmatilde/rs-tproxy [INFO] tweaked toml for git repo https://github.com/Andrewmatilde/rs-tproxy written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/Andrewmatilde/rs-tproxy already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+9fa580b1175018b0a276b0bc68f9827a106f7260" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+9fa580b1175018b0a276b0bc68f9827a106f7260" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 0634bf21e380d637d0b7fea1239c0dd0967ccf97edb374eb79c2b0cffcc2ca3f [INFO] running `Command { std: "docker" "start" "-a" "0634bf21e380d637d0b7fea1239c0dd0967ccf97edb374eb79c2b0cffcc2ca3f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0634bf21e380d637d0b7fea1239c0dd0967ccf97edb374eb79c2b0cffcc2ca3f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0634bf21e380d637d0b7fea1239c0dd0967ccf97edb374eb79c2b0cffcc2ca3f", kill_on_drop: false }` [INFO] [stdout] 0634bf21e380d637d0b7fea1239c0dd0967ccf97edb374eb79c2b0cffcc2ca3f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+9fa580b1175018b0a276b0bc68f9827a106f7260" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5bda29963e92acba06c8d9c1c4156658e391f02748fabfc9c7156eb486832f87 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "5bda29963e92acba06c8d9c1c4156658e391f02748fabfc9c7156eb486832f87", 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] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Checking futures-core v0.3.10 [INFO] [stderr] Checking futures-sink v0.3.10 [INFO] [stderr] Checking pin-project-lite v0.2.4 [INFO] [stderr] Compiling radium v0.5.3 [INFO] [stderr] Checking tinyvec_macros v0.1.0 [INFO] [stderr] Checking matches v0.1.8 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking futures-io v0.3.10 [INFO] [stderr] Checking funty v1.1.0 [INFO] [stderr] Compiling httparse v1.3.5 (https://github.com/Andrewmatilde/httparse.git#afe5e63b) [INFO] [stderr] Checking bytes v1.0.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.2 [INFO] [stderr] Compiling memoffset v0.6.1 [INFO] [stderr] Compiling tokio v1.2.0 [INFO] [stderr] Checking futures-task v0.3.10 [INFO] [stderr] Checking thread_local v1.1.2 [INFO] [stderr] Checking tinyvec v1.1.1 [INFO] [stderr] Checking unicode-bidi v0.3.4 [INFO] [stderr] Checking form_urlencoded v1.0.0 [INFO] [stderr] Checking futures-channel v0.3.10 [INFO] [stderr] Checking toml v0.5.8 [INFO] [stderr] Checking mio v0.7.7 [INFO] [stderr] Compiling nom v6.1.0 [INFO] [stderr] Checking bitvec v0.19.4 [INFO] [stderr] Checking lexical-core v0.7.4 [INFO] [stderr] Checking nix v0.19.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Checking crossbeam-epoch v0.9.2 [INFO] [stderr] Checking crossbeam-queue v0.3.1 [INFO] [stderr] Checking crossbeam-channel v0.5.0 [INFO] [stderr] Compiling quote v1.0.8 [INFO] [stderr] Checking unicode-normalization v0.1.16 [INFO] [stderr] Checking crossbeam-deque v0.8.0 [INFO] [stderr] Compiling syn v1.0.60 [INFO] [stderr] Checking regex v1.4.3 [INFO] [stderr] Checking crossbeam v0.8.0 [INFO] [stderr] Checking idna v0.2.0 [INFO] [stderr] Checking url v2.2.0 [INFO] [stderr] Compiling futures-macro v0.3.10 [INFO] [stderr] Compiling tokio-macros v1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Checking futures-util v0.3.10 [INFO] [stderr] Checking futures-executor v0.3.10 [INFO] [stderr] Checking futures v0.3.10 [INFO] [stderr] Checking rs-tproxy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt` [INFO] [stdout] --> src/tproxy/tproxy.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::io::{AsyncWriteExt,AsyncReadExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TProxyInSteam` [INFO] [stdout] --> src/tproxy/tproxy.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use super::tproxy_in::{TProxyInListener,TProxyInSteam}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/tproxy/tproxy.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `take_till`, `take_until`, `take` [INFO] [stdout] --> src/parser/http/header.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use nom::bytes::streaming::{tag, take_until, take_while, take_while1, take, take_till}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `is_alphanumeric` [INFO] [stdout] --> src/parser/http/header.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::character::{is_alphanumeric, is_digit}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompareResult`, `Compare`, `Needed`, `Parser` [INFO] [stdout] --> src/parser/http/header.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use nom::{IResult, Compare, CompareResult, Needed, Parser}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `recognize` [INFO] [stdout] --> src/parser/http/header.rs:5:33 [INFO] [stdout] | [INFO] [stdout] 5 | use nom::combinator::{map, opt, recognize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `multispace0`, `newline`, `space1` [INFO] [stdout] --> src/parser/http/header.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | use nom::character::complete::{newline, space1, digit0, multispace0}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `digit1`, `hex_digit1`, `line_ending` [INFO] [stdout] --> src/parser/http/header.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | use nom::character::streaming::{line_ending, space0, digit1, hex_digit1}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `count`, `many0`, `many1`, `many_m_n` [INFO] [stdout] --> src/parser/http/header.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | use nom::multi::{many_till, count, many_m_n, many0, many1}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::branch::alt` [INFO] [stdout] --> src/parser/http/header.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use nom::branch::alt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::error::Error` [INFO] [stdout] --> src/parser/http/header.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use nom::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/parser/http/header.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::lib::std::str::from_utf8` [INFO] [stdout] --> src/parser/http/header.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use nom::lib::std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::num::ParseIntError` [INFO] [stdout] --> src/parser/http/header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::Err::Incomplete` [INFO] [stdout] --> src/parser/http/header.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use nom::Err::Incomplete; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/parser/http/header.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::http::body::*` [INFO] [stdout] --> src/parser/http/header.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::parser::http::body::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `tag`, `take_while1`, `take_while`, `take` [INFO] [stdout] --> src/parser/http/body.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use nom::bytes::streaming::{take, take_while1, take_while, tag}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::character::is_digit` [INFO] [stdout] --> src/parser/http/body.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use nom::character::is_digit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::multi::many_till` [INFO] [stdout] --> src/parser/http/body.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use nom::multi::many_till; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Incomplete`, `Needed` [INFO] [stdout] --> src/parser/http/body.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult, Compare, CompareResult}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Needed`, `self` [INFO] [stdout] --> src/parser/http/streaming.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RequestLine`, `Version` [INFO] [stdout] --> src/parser/http/message.rs:1:101 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::parser::http::header::{StartLine, HeaderField, request_line, status_line, header_fields, Version, RequestLine}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Incomplete`, `Needed`, `self` [INFO] [stdout] --> src/parser/http/message.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::AsBytes` [INFO] [stdout] --> src/generator/http.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use nom::AsBytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Version` [INFO] [stdout] --> src/generator/http.rs:2:84 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::parser::http::header::{RequestLine, StatusLine, HeaderField, StartLine, Version}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HttpState` [INFO] [stdout] --> src/generator/http.rs:3:49 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::http::message::{HttpMessage, HttpState}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/generator/http.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::http::body::BodyState` [INFO] [stdout] --> src/generator/http.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::parser::http::body::BodyState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::generator::http::gen_http_header` [INFO] [stdout] --> src/handler/http.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::generator::http::gen_http_header; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StatusLine`, `header_fields` [INFO] [stdout] --> src/handler/http.rs:3:35 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::http::header::{header_fields, HeaderField, RequestLine, StartLine, StatusLine}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `IResult`, `Needed`, `self` [INFO] [stdout] --> src/handler/http.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | error::{Error, ErrorKind}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] 11 | Err::{self, Incomplete}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | IResult, Needed, [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Future`, `Pending`, `Ready` [INFO] [stdout] --> src/handler/http.rs:16:19 [INFO] [stdout] | [INFO] [stdout] 16 | use std::future::{Future, Pending, Ready}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::handler::http::Config as HandlerConfig` [INFO] [stdout] --> src/config.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::handler::http::Config as HandlerConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt` [INFO] [stdout] --> src/tproxy/tproxy.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::io::{AsyncWriteExt,AsyncReadExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TProxyInSteam` [INFO] [stdout] --> src/tproxy/tproxy.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use super::tproxy_in::{TProxyInListener,TProxyInSteam}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/tproxy/tproxy.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `take_till`, `take_until`, `take` [INFO] [stdout] --> src/parser/http/header.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use nom::bytes::streaming::{tag, take_until, take_while, take_while1, take, take_till}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `is_alphanumeric` [INFO] [stdout] --> src/parser/http/header.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::character::{is_alphanumeric, is_digit}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CompareResult`, `Compare`, `Needed`, `Parser` [INFO] [stdout] --> src/parser/http/header.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use nom::{IResult, Compare, CompareResult, Needed, Parser}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `recognize` [INFO] [stdout] --> src/parser/http/header.rs:5:33 [INFO] [stdout] | [INFO] [stdout] 5 | use nom::combinator::{map, opt, recognize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `multispace0`, `newline`, `space1` [INFO] [stdout] --> src/parser/http/header.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | use nom::character::complete::{newline, space1, digit0, multispace0}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `digit1`, `hex_digit1`, `line_ending` [INFO] [stdout] --> src/parser/http/header.rs:8:33 [INFO] [stdout] | [INFO] [stdout] 8 | use nom::character::streaming::{line_ending, space0, digit1, hex_digit1}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `count`, `many0`, `many1`, `many_m_n` [INFO] [stdout] --> src/parser/http/header.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | use nom::multi::{many_till, count, many_m_n, many0, many1}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::branch::alt` [INFO] [stdout] --> src/parser/http/header.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use nom::branch::alt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::error::Error` [INFO] [stdout] --> src/parser/http/header.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use nom::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::AsyncReadExt` [INFO] [stdout] --> src/parser/http/header.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use futures::AsyncReadExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::lib::std::str::from_utf8` [INFO] [stdout] --> src/parser/http/header.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use nom::lib::std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::num::ParseIntError` [INFO] [stdout] --> src/parser/http/header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::Err::Incomplete` [INFO] [stdout] --> src/parser/http/header.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use nom::Err::Incomplete; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> src/parser/http/header.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::http::body::*` [INFO] [stdout] --> src/parser/http/header.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::parser::http::body::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::IResult` [INFO] [stdout] --> src/parser/http/header.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | use nom::IResult; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `httparse::Request` [INFO] [stdout] --> src/parser/http/header.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | use httparse::Request; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/parser/http/header.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `tag`, `take_while1`, `take_while`, `take` [INFO] [stdout] --> src/parser/http/body.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use nom::bytes::streaming::{take, take_while1, take_while, tag}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::character::is_digit` [INFO] [stdout] --> src/parser/http/body.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use nom::character::is_digit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::multi::many_till` [INFO] [stdout] --> src/parser/http/body.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use nom::multi::many_till; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Incomplete` [INFO] [stdout] --> src/parser/http/body.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult, Compare, CompareResult}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Needed` [INFO] [stdout] --> src/parser/http/streaming.rs:2:63 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Incomplete`, `Needed`, `self` [INFO] [stdout] --> src/parser/http/message.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use nom::{Err::{self, Incomplete}, error::{Error, ErrorKind}, Needed, IResult}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `nom::AsBytes` [INFO] [stdout] --> src/generator/http.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use nom::AsBytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HttpState` [INFO] [stdout] --> src/generator/http.rs:3:49 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::http::message::{HttpMessage, HttpState}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::from_utf8` [INFO] [stdout] --> src/generator/http.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::str::from_utf8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::generator::http::gen_http_header` [INFO] [stdout] --> src/handler/http.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::generator::http::gen_http_header; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `StatusLine`, `header_fields` [INFO] [stdout] --> src/handler/http.rs:3:35 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::http::header::{header_fields, HeaderField, RequestLine, StartLine, StatusLine}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `IResult`, `Needed`, `self` [INFO] [stdout] --> src/handler/http.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | error::{Error, ErrorKind}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] 11 | Err::{self, Incomplete}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | IResult, Needed, [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Future`, `Pending`, `Ready` [INFO] [stdout] --> src/handler/http.rs:16:19 [INFO] [stdout] | [INFO] [stdout] 16 | use std::future::{Future, Pending, Ready}; [INFO] [stdout] | ^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::handler::http::Config as HandlerConfig` [INFO] [stdout] --> src/config.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::handler::http::Config as HandlerConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tproxy/tproxy.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 27 | let (mut stream_in_read, mut stream_in_write) = stream_in.unwrap().into_split(); [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/tproxy/tproxy.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | let (mut stream_in_read, mut stream_in_write) = stream_in.unwrap().into_split(); [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/tproxy/tproxy.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | let (mut stream_out_read, mut stream_out_write) = stream_out.unwrap().into_split(); [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/tproxy/tproxy.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | let (mut stream_out_read, mut stream_out_write) = stream_out.unwrap().into_split(); [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/tproxy/tproxy.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 27 | let (mut stream_in_read, mut stream_in_write) = stream_in.unwrap().into_split(); [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/tproxy/tproxy.rs:27:34 [INFO] [stdout] | [INFO] [stdout] 27 | let (mut stream_in_read, mut stream_in_write) = stream_in.unwrap().into_split(); [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/tproxy/tproxy.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | let (mut stream_out_read, mut stream_out_write) = stream_out.unwrap().into_split(); [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/tproxy/tproxy.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | let (mut stream_out_read, mut stream_out_write) = stream_out.unwrap().into_split(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/parser/http/body.rs:42:29 [INFO] [stdout] | [INFO] [stdout] 42 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `o` [INFO] [stdout] --> src/parser/http/body.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | Ok((o, chunk_state)) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_o` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/parser/http/body.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | Err(e) => { BodyState::FaultLengthInfo } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/handler/http.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | Err(e) => None, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/handler/http.rs:303:25 [INFO] [stdout] | [INFO] [stdout] 303 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/http/streaming.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn digit_stream(mut i: &[u8], mut state: DigitState) -> IResult<&[u8], DigitState> { [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/parser/http/streaming.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn digit_stream(mut i: &[u8], mut state: DigitState) -> IResult<&[u8], DigitState> { [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/parser/http/streaming.rs:81:27 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn take_ignore_stream(mut i: &[u8], mut state: TakeIgnore) -> IResult<&[u8], TakeIgnore> { [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/parser/http/streaming.rs:81:41 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn take_ignore_stream(mut i: &[u8], mut state: TakeIgnore) -> IResult<&[u8], TakeIgnore> { [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/parser/http/streaming.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | TakeIgnore::NeedTake(mut size) => { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/tproxy/tproxy_out.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let stream = socket.connect(laddr).await?; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/parser/http/body.rs:42:29 [INFO] [stdout] | [INFO] [stdout] 42 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `o` [INFO] [stdout] --> src/parser/http/body.rs:123:25 [INFO] [stdout] | [INFO] [stdout] 123 | Ok((o, chunk_state)) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_o` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/parser/http/body.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | Err(e) => { BodyState::FaultLengthInfo } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/handler/http.rs:161:29 [INFO] [stdout] | [INFO] [stdout] 161 | Err(e) => None, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/handler/http.rs:303:25 [INFO] [stdout] | [INFO] [stdout] 303 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/tproxy/tproxy_in.rs:23:28 [INFO] [stdout] | [INFO] [stdout] 23 | panic!(e); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 23 | panic!("{}", e); [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 23 | std::panic::panic_any(e); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Tproxy` should have a snake case name [INFO] [stdout] --> src/tproxy/tproxy.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub async fn Tproxy (config : Config) -> io::Result<()> { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `tproxy` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tproxy/tproxy.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | handler.handle_stream(stream_in_read, stream_out_write).await; [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: unused `Result` that must be used [INFO] [stdout] --> src/tproxy/tproxy.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | handler.handle_stream(stream_out_read, stream_in_write).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/handler/http.rs:135:21 [INFO] [stdout] | [INFO] [stdout] 135 | / self.sender.send(RequestInfo { [INFO] [stdout] 136 | | path: request_line.path.to_vec(), [INFO] [stdout] 137 | | method: request_line.method.to_vec(), [INFO] [stdout] 138 | | }); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/http/streaming.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn digit_stream(mut i: &[u8], mut state: DigitState) -> IResult<&[u8], DigitState> { [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/parser/http/streaming.rs:54:35 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn digit_stream(mut i: &[u8], mut state: DigitState) -> IResult<&[u8], DigitState> { [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/parser/http/streaming.rs:81:27 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn take_ignore_stream(mut i: &[u8], mut state: TakeIgnore) -> IResult<&[u8], TakeIgnore> { [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/parser/http/streaming.rs:81:41 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn take_ignore_stream(mut i: &[u8], mut state: TakeIgnore) -> IResult<&[u8], TakeIgnore> { [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/parser/http/streaming.rs:83:30 [INFO] [stdout] | [INFO] [stdout] 83 | TakeIgnore::NeedTake(mut size) => { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 54 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/tproxy/tproxy_in.rs:23:28 [INFO] [stdout] | [INFO] [stdout] 23 | panic!(e); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 23 | panic!("{}", e); [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: or use std::panic::panic_any instead [INFO] [stdout] | [INFO] [stdout] 23 | std::panic::panic_any(e); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Tproxy` should have a snake case name [INFO] [stdout] --> src/tproxy/tproxy.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub async fn Tproxy (config : Config) -> io::Result<()> { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `tproxy` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/tproxy/tproxy.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | handler.handle_stream(stream_in_read, stream_out_write).await; [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: unused `Result` that must be used [INFO] [stdout] --> src/tproxy/tproxy.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | handler.handle_stream(stream_out_read, stream_in_write).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/handler/http.rs:135:21 [INFO] [stdout] | [INFO] [stdout] 135 | / self.sender.send(RequestInfo { [INFO] [stdout] 136 | | path: request_line.path.to_vec(), [INFO] [stdout] 137 | | method: request_line.method.to_vec(), [INFO] [stdout] 138 | | }); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 55 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 22s [INFO] running `Command { std: "docker" "inspect" "5bda29963e92acba06c8d9c1c4156658e391f02748fabfc9c7156eb486832f87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5bda29963e92acba06c8d9c1c4156658e391f02748fabfc9c7156eb486832f87", kill_on_drop: false }` [INFO] [stdout] 5bda29963e92acba06c8d9c1c4156658e391f02748fabfc9c7156eb486832f87