[INFO] cloning repository https://github.com/aliuyar1234/egress-lockfile
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aliuyar1234/egress-lockfile" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faliuyar1234%2Fegress-lockfile", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faliuyar1234%2Fegress-lockfile'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3449492c7e62670951d541bd91c47ff40ee0e682
[INFO] checking aliuyar1234/egress-lockfile against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faliuyar1234%2Fegress-lockfile" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/aliuyar1234/egress-lockfile
[INFO] finished tweaking git repo https://github.com/aliuyar1234/egress-lockfile
[INFO] tweaked toml for git repo https://github.com/aliuyar1234/egress-lockfile written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/aliuyar1234/egress-lockfile on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/aliuyar1234/egress-lockfile 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dns-lookup v2.1.1
[INFO] [stderr]   Downloaded etherparse v0.14.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f
[INFO] running `Command { std: "docker" "start" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f", 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" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f", 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" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling libloading v0.6.7
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking indexmap v2.12.1
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking itoa v1.0.16
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking ryu v1.0.21
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking errno v0.2.8
[INFO] [stderr]     Checking dns-lookup v2.1.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking etherparse v0.14.3
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking ctrlc v3.5.1
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling pcap v1.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking egress-lock v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]    --> src/capture/tcpdump.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |             use std::os::unix::process::CommandExt;
[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: `std::os::unix::process::CommandExt`
[INFO] [stdout]    --> src/capture/tcpdump.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |             use std::os::unix::process::CommandExt;
[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: `std::net::Ipv4Addr`
[INFO] [stdout]    --> src/lockfile/diff.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     use std::net::Ipv4Addr;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_capture` is never used
[INFO] [stdout]   --> src/capture/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn run_capture(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distinct_destinations` and `has_dependencies` are never used
[INFO] [stdout]    --> src/capture/correlate.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl CorrelationState {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn distinct_destinations(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn has_dependencies(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_line` is never used
[INFO] [stdout]   --> src/capture/parser.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_line(line: &str, local_ips: &std::collections::HashSet<Ipv4Addr>) -> CaptureEvent {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_ipv6_traffic` is never used
[INFO] [stdout]    --> src/capture/parser.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn is_ipv6_traffic(line: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fin`, `rst`, and `psh` are never read
[INFO] [stdout]   --> src/capture/pcap.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct TcpFlags {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fin: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 21 |     pub rst: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 22 |     pub psh: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TcpFlags` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `qtype` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct DnsQuery {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 140 |     pub name: String,
[INFO] [stdout] 141 |     pub qtype: u16,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsQuery` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `rtype` are never read
[INFO] [stdout]    --> src/capture/pcap.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct DnsAnswer {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 147 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 148 |     pub rtype: u16,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsAnswer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 |     Aaaa(std::net::Ipv6Addr),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 156 -     Aaaa(std::net::Ipv6Addr),
[INFO] [stdout] 156 +     Aaaa(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:157:11
[INFO] [stdout]     |
[INFO] [stdout] 157 |     Cname(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 157 -     Cname(String),
[INFO] [stdout] 157 +     Cname(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:158:11
[INFO] [stdout]     |
[INFO] [stdout] 158 |     Other(Vec<u8>),
[INFO] [stdout]     |     ----- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 158 -     Other(Vec<u8>),
[INFO] [stdout] 158 +     Other(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError`, `Corrupted`, and `LibpcapNotFound` are never constructed
[INFO] [stdout]    --> src/capture/pcap.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub enum PcapError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 441 |     ParseError(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     Corrupted(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     LibpcapNotFound,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PcapError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout_receiver` and `pcap_path` are never read
[INFO] [stdout]   --> src/capture/tcpdump.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TcpdumpProcess {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 13 |     child: Child,
[INFO] [stdout] 14 |     stdout_receiver: Receiver<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pcap_path: Option<std::path::PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pcap_path` is never read
[INFO] [stdout]   --> src/capture/tcpdump.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct TcpdumpPcapProcess {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub pcap_path: std::path::PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `spawn`, `try_recv`, `recv_timeout`, and `is_running` are never used
[INFO] [stdout]    --> src/capture/tcpdump.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TcpdumpProcess {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  28 |     /// Spawn tcpdump and wait for it to become ready.
[INFO] [stdout]  29 |     pub fn spawn() -> Result<Self, CaptureError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn try_recv(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn recv_timeout(&self, timeout: Duration) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn is_running(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_rules_file` is never used
[INFO] [stdout]   --> src/enforce/iptables.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn generate_rules_file(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IPSET_TIMEOUT` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const IPSET_TIMEOUT: Duration = Duration::from_secs(5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ipset_available` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn ipset_available() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_fallback_warning` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn log_fallback_warning() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ipset` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn create_ipset(port: u16) -> Result<(), IpsetError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_ipset_command` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn run_ipset_command(args: &[&str]) -> Result<std::process::Output, IpsetError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_to_ipset` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn add_to_ipset(port: u16, ip: Ipv4Addr) -> Result<(), IpsetError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `destroy_ipset` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn destroy_ipset(port: u16) -> Result<(), IpsetError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_by_port` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub fn group_by_port(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ipsets_for_destinations` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn create_ipsets_for_destinations(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_ipset_rules` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn generate_ipset_rules(ports: &[u16], chain_name: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `CreateFailed`, `AddFailed`, `DestroyFailed`, and `MaxSizeExceeded` are never constructed
[INFO] [stdout]    --> src/enforce/ipset.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub enum IpsetError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 245 |     CreateFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     AddFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     DestroyFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     MaxSizeExceeded,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IpsetError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HOST_RESOLUTION_HINT_MS` is never used
[INFO] [stdout]    --> src/enforce/refresh.rs:157:7
[INFO] [stdout]     |
[INFO] [stdout] 157 | const HOST_RESOLUTION_HINT_MS: u64 = 5000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ResolutionFailed` is never constructed
[INFO] [stdout]    --> src/enforce/refresh.rs:290:5
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub enum RefreshError {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 290 |     ResolutionFailed { host: String, error: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RefreshError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     InvalidEntry,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     UnsupportedProtocol { protocol: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     EmptyPorts,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     PortOutOfRange { port: u32 },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     HostIsIpLiteral { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     InvalidIpv4 { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     Ipv6NotSupported { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     UnknownField { field: String, suggestion: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WriteFailed` is never constructed
[INFO] [stdout]   --> src/error.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum CaptureError {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 93 |     WriteFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CaptureError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CleanupFailed` is never constructed
[INFO] [stdout]    --> src/error.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub enum EnforceError {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 115 |     CleanupFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnforceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_EXECUTABLE` is never used
[INFO] [stdout]    --> src/error.rs:148:15
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub const NOT_EXECUTABLE: i32 = 126;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FOUND` is never used
[INFO] [stdout]    --> src/error.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub const NOT_FOUND: i32 = 127;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/lockfile/diff.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DiffResult {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 18 |     /// Check if the diff is empty (no changes).
[INFO] [stdout] 19 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/lockfile/types.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Lockfile {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `protocol`, `ports`, `ports_mut`, `identity_key`, `is_host`, and `is_ip` are never used
[INFO] [stdout]    --> src/lockfile/types.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl EgressEntry {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn protocol(&self) -> &Protocol {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn ports(&self) -> &BTreeSet<u16> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn ports_mut(&mut self) -> &mut BTreeSet<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn identity_key(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn is_host(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn is_ip(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Field` is never used
[INFO] [stdout]    --> src/lockfile/types.rs:146:10
[INFO] [stdout]     |
[INFO] [stdout] 146 |     enum Field {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tcpdump_available`, `iptables_available`, `ipv6_disabled`, and `chain_available` are never read
[INFO] [stdout]   --> src/preflight.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PreflightResult {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 21 |     pub tcpdump_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub iptables_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub ipv6_disabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub chain_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreflightResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ipset_available` is never used
[INFO] [stdout]    --> src/preflight.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn check_ipset_available() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/lockfile/types.rs:271:41
[INFO] [stdout]     |
[INFO] [stdout] 271 |                         if port == 0 || port > 65535 {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_capture` is never used
[INFO] [stdout]   --> src/capture/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn run_capture(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distinct_destinations` and `has_dependencies` are never used
[INFO] [stdout]    --> src/capture/correlate.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl CorrelationState {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn distinct_destinations(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn has_dependencies(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 |     Aaaa(std::net::Ipv6Addr),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 156 -     Aaaa(std::net::Ipv6Addr),
[INFO] [stdout] 156 +     Aaaa(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:157:11
[INFO] [stdout]     |
[INFO] [stdout] 157 |     Cname(String),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 157 -     Cname(String),
[INFO] [stdout] 157 +     Cname(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/capture/pcap.rs:158:11
[INFO] [stdout]     |
[INFO] [stdout] 158 |     Other(Vec<u8>),
[INFO] [stdout]     |     ----- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsRdata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 158 -     Other(Vec<u8>),
[INFO] [stdout] 158 +     Other(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError` and `Corrupted` are never constructed
[INFO] [stdout]    --> src/capture/pcap.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub enum PcapError {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 441 |     ParseError(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     Corrupted(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PcapError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout_receiver` and `pcap_path` are never read
[INFO] [stdout]   --> src/capture/tcpdump.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TcpdumpProcess {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 13 |     child: Child,
[INFO] [stdout] 14 |     stdout_receiver: Receiver<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pcap_path: Option<std::path::PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pcap_path` is never read
[INFO] [stdout]   --> src/capture/tcpdump.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct TcpdumpPcapProcess {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub pcap_path: std::path::PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `spawn`, `try_recv`, `recv_timeout`, and `is_running` are never used
[INFO] [stdout]    --> src/capture/tcpdump.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TcpdumpProcess {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  28 |     /// Spawn tcpdump and wait for it to become ready.
[INFO] [stdout]  29 |     pub fn spawn() -> Result<Self, CaptureError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn try_recv(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn recv_timeout(&self, timeout: Duration) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn is_running(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IPSET_TIMEOUT` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const IPSET_TIMEOUT: Duration = Duration::from_secs(5);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ipset_available` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn ipset_available() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_fallback_warning` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn log_fallback_warning() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ipset` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn create_ipset(port: u16) -> Result<(), IpsetError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_ipset_command` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn run_ipset_command(args: &[&str]) -> Result<std::process::Output, IpsetError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_to_ipset` is never used
[INFO] [stdout]   --> src/enforce/ipset.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn add_to_ipset(port: u16, ip: Ipv4Addr) -> Result<(), IpsetError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `destroy_ipset` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn destroy_ipset(port: u16) -> Result<(), IpsetError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_ipsets_for_destinations` is never used
[INFO] [stdout]    --> src/enforce/ipset.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn create_ipsets_for_destinations(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `CreateFailed`, `AddFailed`, `DestroyFailed`, and `MaxSizeExceeded` are never constructed
[INFO] [stdout]    --> src/enforce/ipset.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub enum IpsetError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 245 |     CreateFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     AddFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     DestroyFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     MaxSizeExceeded,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IpsetError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HOST_RESOLUTION_HINT_MS` is never used
[INFO] [stdout]    --> src/enforce/refresh.rs:157:7
[INFO] [stdout]     |
[INFO] [stdout] 157 | const HOST_RESOLUTION_HINT_MS: u64 = 5000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ResolutionFailed` is never constructed
[INFO] [stdout]    --> src/enforce/refresh.rs:290:5
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub enum RefreshError {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 290 |     ResolutionFailed { host: String, error: String },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RefreshError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     InvalidEntry,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     UnsupportedProtocol { protocol: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     EmptyPorts,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     PortOutOfRange { port: u32 },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     HostIsIpLiteral { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     InvalidIpv4 { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     Ipv6NotSupported { value: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     UnknownField { field: String, suggestion: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WriteFailed` is never constructed
[INFO] [stdout]   --> src/error.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum CaptureError {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 93 |     WriteFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CaptureError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CleanupFailed` is never constructed
[INFO] [stdout]    --> src/error.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub enum EnforceError {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 115 |     CleanupFailed(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnforceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_EXECUTABLE` is never used
[INFO] [stdout]    --> src/error.rs:148:15
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub const NOT_EXECUTABLE: i32 = 126;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_FOUND` is never used
[INFO] [stdout]    --> src/error.rs:151:15
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub const NOT_FOUND: i32 = 127;
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/lockfile/types.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Lockfile {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `protocol`, `ports_mut`, and `identity_key` are never used
[INFO] [stdout]    --> src/lockfile/types.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl EgressEntry {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn protocol(&self) -> &Protocol {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn ports_mut(&mut self) -> &mut BTreeSet<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn identity_key(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Field` is never used
[INFO] [stdout]    --> src/lockfile/types.rs:146:10
[INFO] [stdout]     |
[INFO] [stdout] 146 |     enum Field {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tcpdump_available`, `iptables_available`, `ipv6_disabled`, and `chain_available` are never read
[INFO] [stdout]   --> src/preflight.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PreflightResult {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 21 |     pub tcpdump_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub iptables_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub ipv6_disabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub chain_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreflightResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ipset_available` is never used
[INFO] [stdout]    --> src/preflight.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn check_ipset_available() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/lockfile/types.rs:271:41
[INFO] [stdout]     |
[INFO] [stdout] 271 |                         if port == 0 || port > 65535 {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.97s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f", kill_on_drop: false }`
[INFO] [stdout] 2c0fad1ab32d1334f2494650585df455e639a9f8d68211bde7d3508b1790c28f
