[INFO] cloning repository https://github.com/baiyulong/PeregrineProxy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/baiyulong/PeregrineProxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaiyulong%2FPeregrineProxy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaiyulong%2FPeregrineProxy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6318999a8be998275081d70e8a9b17c12960d9d9
[INFO] checking baiyulong/PeregrineProxy against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaiyulong%2FPeregrineProxy" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/baiyulong/PeregrineProxy
[INFO] finished tweaking git repo https://github.com/baiyulong/PeregrineProxy
[INFO] tweaked toml for git repo https://github.com/baiyulong/PeregrineProxy written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/baiyulong/PeregrineProxy on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/baiyulong/PeregrineProxy already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9
[INFO] running `Command { std: "docker" "start" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking rustls-pki-types v1.14.1
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking time-core v0.1.8
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]     Checking num-conv v0.2.1
[INFO] [stderr]    Compiling prometheus-client v0.22.3
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]     Checking dtoa v1.0.11
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking tracing-appender v0.2.5
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking peregrine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IpAddr`
[INFO] [stdout]  --> tests/common/mod.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{SocketAddr, IpAddr, Ipv4Addr};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpSocket`
[INFO] [stdout]  --> tests/common/mod.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::net::{TcpListener, TcpStream, UdpSocket};
[INFO] [stdout]   |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> tests/integration_test.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{SocketAddr};
[INFO] [stdout]   |                ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IpAddr`
[INFO] [stdout]  --> tests/common/mod.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{SocketAddr, IpAddr, Ipv4Addr};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpSocket`
[INFO] [stdout]  --> tests/common/mod.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::net::{TcpListener, TcpStream, UdpSocket};
[INFO] [stdout]   |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IpAddr`
[INFO] [stdout]  --> tests/common/mod.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::net::{SocketAddr, IpAddr, Ipv4Addr};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UdpSocket`
[INFO] [stdout]  --> tests/common/mod.rs:2:42
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::net::{TcpListener, TcpStream, UdpSocket};
[INFO] [stdout]   |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpstreamConnector`
[INFO] [stdout]    --> tests/upstream_test.rs:118:46
[INFO] [stdout]     |
[INFO] [stdout] 118 |     use peregrine::upstream::{ConnectTarget, UpstreamConnector};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpstreamConnector`
[INFO] [stdout]    --> tests/upstream_test.rs:139:46
[INFO] [stdout]     |
[INFO] [stdout] 139 |     use peregrine::upstream::{ConnectTarget, UpstreamConnector};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpstreamConnector`
[INFO] [stdout]    --> tests/upstream_test.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 |     use peregrine::upstream::{ConnectTarget, UpstreamConnector};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpstreamConnector`
[INFO] [stdout]    --> tests/upstream_test.rs:234:46
[INFO] [stdout]     |
[INFO] [stdout] 234 |     use peregrine::upstream::{ConnectTarget, UpstreamConnector};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_socks5_proxy` is never used
[INFO] [stdout]    --> tests/common/mod.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub async fn start_mock_socks5_proxy() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socks5_connect_through_proxy` is never used
[INFO] [stdout]    --> tests/common/mod.rs:262:14
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub async fn socks5_connect_through_proxy(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_http_proxy_server` is never used
[INFO] [stdout]    --> tests/common/mod.rs:308:14
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub async fn start_http_proxy_server() -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_socks5_proxy_server` is never used
[INFO] [stdout]    --> tests/common/mod.rs:326:14
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub async fn start_socks5_proxy_server() -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_socks5_proxy_server_with_auth` is never used
[INFO] [stdout]    --> tests/common/mod.rs:344:14
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub async fn start_socks5_proxy_server_with_auth(users: Vec<peregrine::config::UserCredential>) -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_http_server` is never used
[INFO] [stdout]  --> tests/common/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn start_mock_http_server() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_http_proxy` is never used
[INFO] [stdout]   --> tests/common/mod.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub async fn start_mock_http_proxy() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_socks5_proxy` is never used
[INFO] [stdout]    --> tests/common/mod.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub async fn start_mock_socks5_proxy() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_http_server` is never used
[INFO] [stdout]  --> tests/common/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn start_mock_http_server() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_echo_server` is never used
[INFO] [stdout]   --> tests/common/mod.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn start_echo_server() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_mock_http_proxy` is never used
[INFO] [stdout]   --> tests/common/mod.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub async fn start_mock_http_proxy() -> (SocketAddr, tokio::task::JoinHandle<()>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_request_through_proxy` is never used
[INFO] [stdout]    --> tests/common/mod.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub async fn http_request_through_proxy(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_tunnel_through_proxy` is never used
[INFO] [stdout]    --> tests/common/mod.rs:231:14
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub async fn connect_tunnel_through_proxy(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_http_proxy_server` is never used
[INFO] [stdout]    --> tests/common/mod.rs:308:14
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub async fn start_http_proxy_server() -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_socks5_proxy_server` is never used
[INFO] [stdout]    --> tests/common/mod.rs:326:14
[INFO] [stdout]     |
[INFO] [stdout] 326 | pub async fn start_socks5_proxy_server() -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_socks5_proxy_server_with_auth` is never used
[INFO] [stdout]    --> tests/common/mod.rs:344:14
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub async fn start_socks5_proxy_server_with_auth(users: Vec<peregrine::config::UserCredential>) -> SocketAddr {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccessController` is never constructed
[INFO] [stdout]   --> src/acl/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct AccessController {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/acl/mod.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl AccessController {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  18 |     /// Build from config
[INFO] [stdout]  19 |     pub fn from_config(config: &AccessControlConfig) -> anyhow::Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn check_request(&self, src_ip: &IpAddr, dst_domain: Option<&str>, method: Option<&str>) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn check_access(&self, src_ip: &IpAddr, dst_domain: Option<&str>) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn check_ip(&self, src_ip: &IpAddr) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_auth_users_for_rule(&self, src_ip: &IpAddr, dst_domain: Option<&str>) -> Option<&[UserCredential]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn rule_matches_full(&self, rule: &AclRule, src_ip: &IpAddr, dst_domain: Option<&str>, method: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn rule_matches(&self, rule: &AclRule, src_ip: &IpAddr, dst_domain: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn rule_matches_ip(&self, rule: &AclRule, src_ip: &IpAddr) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn rule_matches_domain(&self, rule: &AclRule, dst_domain: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn rule_matches_method(&self, rule: &AclRule, method: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AclAction` is never used
[INFO] [stdout]  --> src/acl/rule.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AclAction {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AclRule` is never constructed
[INFO] [stdout]   --> src/acl/rule.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AclRule {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_matches` is never used
[INFO] [stdout]  --> src/acl/ip_filter.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn ip_matches(addr: &IpAddr, networks: &[IpNet]) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_basic_auth` is never used
[INFO] [stdout]   --> src/acl/auth.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parse_basic_auth(header_value: &str) -> Option<(String, String)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DomainFilter` is never constructed
[INFO] [stdout]  --> src/acl/domain_filter.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DomainFilter {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `matches`, and `is_empty` are never used
[INFO] [stdout]   --> src/acl/domain_filter.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl DomainFilter {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn new(patterns: &[String]) -> anyhow::Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn matches(&self, domain: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Config`, `AclDenied`, `AuthRequired`, `AuthFailed`, `Upstream`, and `Protocol` are never constructed
[INFO] [stdout]   --> src/error.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum ProxyError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Config(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     AclDenied(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     AuthRequired,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     AuthFailed,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Upstream(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Protocol(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProxyError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RequestLabels` is never constructed
[INFO] [stdout]   --> src/metrics.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RequestLabels {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProtocolLabel` is never used
[INFO] [stdout]   --> src/metrics.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ProtocolLabel {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ActionLabel` is never used
[INFO] [stdout]   --> src/metrics.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum ActionLabel {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProxyMetrics` is never constructed
[INFO] [stdout]   --> src/metrics.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct ProxyMetrics {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode`, and `start_server` are never used
[INFO] [stdout]    --> src/metrics.rs:69:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl ProxyMetrics {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  69 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn encode(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub async fn start_server(metrics: Arc<Self>, listen_addr: String) -> tokio::task::JoinHandle<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_proxy_auth` is never used
[INFO] [stdout]    --> src/protocol/http_handler.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn check_proxy_auth<T>(req: &Request<T>, users: &[UserCredential]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_407_response` is never used
[INFO] [stdout]    --> src/protocol/http_handler.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn make_407_response() -> Response<Full<Bytes>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tls_connector` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn create_tls_connector() -> TlsConnector {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap_tls` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn wrap_tls(stream: TcpStream, host: &str) -> ProxyResult<TlsStream<TcpStream>> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_host` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn extract_host(addr: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpstreamRouter` is never constructed
[INFO] [stdout]   --> src/upstream/mod.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct UpstreamRouter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_config` and `connector` are never used
[INFO] [stdout]   --> src/upstream/mod.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl UpstreamRouter {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 75 |     pub fn from_config(config: &UpstreamConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn connector(&self) -> &dyn UpstreamConnector {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpProxyConnector` is never constructed
[INFO] [stdout]  --> src/upstream/http_proxy.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HttpProxyConnector {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Socks5ProxyConnector` is never constructed
[INFO] [stdout]  --> src/upstream/socks5_proxy.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Socks5ProxyConnector {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `perform_socks5_handshake` is never used
[INFO] [stdout]   --> src/upstream/socks5_proxy.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Socks5ProxyConnector {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 39 |     async fn perform_socks5_handshake<S>(&self, stream: &mut S, target: &ConnectTarget) -> ProxyResult<()>
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChainConnector` is never constructed
[INFO] [stdout]   --> src/upstream/chain.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ChainConnector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_proxy_address` is never used
[INFO] [stdout]   --> src/upstream/chain.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn extract_proxy_address(config: &UpstreamConfig) -> ProxyResult<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_addr_to_target` is never used
[INFO] [stdout]   --> src/upstream/chain.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn parse_addr_to_target(addr: &str) -> ProxyResult<ConnectTarget> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_proxy_handshake` is never used
[INFO] [stdout]    --> src/upstream/chain.rs:103:10
[INFO] [stdout]     |
[INFO] [stdout] 103 | async fn perform_proxy_handshake(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_http_handshake` is never used
[INFO] [stdout]    --> src/upstream/chain.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 | async fn perform_http_handshake(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_socks5_handshake` is never used
[INFO] [stdout]    --> src/upstream/chain.rs:172:10
[INFO] [stdout]     |
[INFO] [stdout] 172 | async fn perform_socks5_handshake(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccessController` is never constructed
[INFO] [stdout]   --> src/acl/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct AccessController {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/acl/mod.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl AccessController {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  18 |     /// Build from config
[INFO] [stdout]  19 |     pub fn from_config(config: &AccessControlConfig) -> anyhow::Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn check_request(&self, src_ip: &IpAddr, dst_domain: Option<&str>, method: Option<&str>) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn check_access(&self, src_ip: &IpAddr, dst_domain: Option<&str>) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn check_ip(&self, src_ip: &IpAddr) -> AclAction {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_auth_users_for_rule(&self, src_ip: &IpAddr, dst_domain: Option<&str>) -> Option<&[UserCredential]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn rule_matches_full(&self, rule: &AclRule, src_ip: &IpAddr, dst_domain: Option<&str>, method: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn rule_matches(&self, rule: &AclRule, src_ip: &IpAddr, dst_domain: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn rule_matches_ip(&self, rule: &AclRule, src_ip: &IpAddr) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn rule_matches_domain(&self, rule: &AclRule, dst_domain: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn rule_matches_method(&self, rule: &AclRule, method: Option<&str>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AclAction` is never used
[INFO] [stdout]  --> src/acl/rule.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AclAction {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AclRule` is never constructed
[INFO] [stdout]   --> src/acl/rule.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AclRule {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ip_matches` is never used
[INFO] [stdout]  --> src/acl/ip_filter.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn ip_matches(addr: &IpAddr, networks: &[IpNet]) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Config`, `AclDenied`, `AuthRequired`, and `Protocol` are never constructed
[INFO] [stdout]   --> src/error.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum ProxyError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Config(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     AclDenied(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     AuthRequired,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Protocol(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProxyError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start_server` is never used
[INFO] [stdout]    --> src/metrics.rs:117:18
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl ProxyMetrics {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub async fn start_server(metrics: Arc<Self>, listen_addr: String) -> tokio::task::JoinHandle<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_proxy_auth` is never used
[INFO] [stdout]    --> src/protocol/http_handler.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn check_proxy_auth<T>(req: &Request<T>, users: &[UserCredential]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_407_response` is never used
[INFO] [stdout]    --> src/protocol/http_handler.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn make_407_response() -> Response<Full<Bytes>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tls_connector` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn create_tls_connector() -> TlsConnector {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap_tls` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn wrap_tls(stream: TcpStream, host: &str) -> ProxyResult<TlsStream<TcpStream>> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_host` is never used
[INFO] [stdout]   --> src/upstream/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn extract_host(addr: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpstreamRouter` is never constructed
[INFO] [stdout]   --> src/upstream/mod.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct UpstreamRouter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_config` and `connector` are never used
[INFO] [stdout]   --> src/upstream/mod.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl UpstreamRouter {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 75 |     pub fn from_config(config: &UpstreamConfig) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn connector(&self) -> &dyn UpstreamConnector {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpProxyConnector` is never constructed
[INFO] [stdout]  --> src/upstream/http_proxy.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HttpProxyConnector {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Socks5ProxyConnector` is never constructed
[INFO] [stdout]  --> src/upstream/socks5_proxy.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Socks5ProxyConnector {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `perform_socks5_handshake` is never used
[INFO] [stdout]   --> src/upstream/socks5_proxy.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Socks5ProxyConnector {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 39 |     async fn perform_socks5_handshake<S>(&self, stream: &mut S, target: &ConnectTarget) -> ProxyResult<()>
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `tracing-appender`
[INFO] [stderr]   --> Cargo.toml:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | tracing-appender = "0.2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing-appender`
[INFO] [stderr] warning: `peregrine` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.81s
[INFO] running `Command { std: "docker" "inspect" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9", kill_on_drop: false }`
[INFO] [stdout] d548b58313f45296000fe0bf589dddf46517d70b3a668456672ac0252f3e15f9
