[INFO] cloning repository https://github.com/Lisenblsh/srslist-parser
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lisenblsh/srslist-parser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisenblsh%2Fsrslist-parser", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisenblsh%2Fsrslist-parser'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b1c0d0181f71c1c7f0688a7432855075028d3324
[INFO] checking Lisenblsh/srslist-parser against 846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9 for pr-164812
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisenblsh%2Fsrslist-parser" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Lisenblsh/srslist-parser
[INFO] finished tweaking git repo https://github.com/Lisenblsh/srslist-parser
[INFO] tweaked toml for git repo https://github.com/Lisenblsh/srslist-parser written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Lisenblsh/srslist-parser on toolchain 846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Lisenblsh/srslist-parser 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" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c
[INFO] running `Command { std: "docker" "start" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c", 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" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c" "/opt/rustwide/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c", 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" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c" "/opt/rustwide/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]     Checking rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking http-body v1.1.0
[INFO] [stderr]    Compiling cc v1.4.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking memchr v2.8.3
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking ipnet v2.12.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking http-body-util v0.1.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rustls-native-certs v0.8.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking h2 v0.4.15
[INFO] [stderr]     Checking hyper v1.11.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-platform-verifier v0.7.0
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking reqwest v0.13.4
[INFO] [stderr]     Checking srs-reader v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, and `fs::File`
[INFO] [stdout]  --> src/parser/geoip.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fs::File,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 5 |     io::{self, Read},
[INFO] [stdout] 6 |     net::{IpAddr, Ipv4Addr, Ipv6Addr},
[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: `fs::File`
[INFO] [stdout]  --> src/utils.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{fs::File, str};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, and `fs::File`
[INFO] [stdout]  --> src/parser/geoip.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fs::File,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 5 |     io::{self, Read},
[INFO] [stdout] 6 |     net::{IpAddr, Ipv4Addr, Ipv6Addr},
[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: `fs::File`
[INFO] [stdout]  --> src/utils.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{fs::File, str};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::geoip::SrsGeoIp`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use parser::geoip::SrsGeoIp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::geoip::SrsGeoIp`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use parser::geoip::SrsGeoIp;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/parser/srs.rs:570:13
[INFO] [stdout]     |
[INFO] [stdout] 570 |             value => Err(Error::Invalid("invalid boolean value")),
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut srs = Srs::open(path)?;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DomainMatcher` is more private than the item `RuleItem::Domain::0`
[INFO] [stdout]    --> src/parser/srs.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Domain(DomainMatcher),
[INFO] [stdout]     |            ^^^^^^^^^^^^^ field `RuleItem::Domain::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `DomainMatcher` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser/srs.rs:625:1
[INFO] [stdout]     |
[INFO] [stdout] 625 | struct DomainMatcher {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SRS_MAGIC` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const SRS_MAGIC: &[u8; 3] = b"SRS";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_TYPE_DEFAULT` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RULE_TYPE_DEFAULT: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_ITEM_IP_CIDR` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RULE_ITEM_IP_CIDR: u8 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_ITEM_FINAL` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const RULE_ITEM_FINAL: u8 = 0xff;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IPSET_VERSION` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const IPSET_VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum Error {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ipv4Range` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Ipv4Range {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ipv6Range` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Ipv6Range {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SrsGeoIp` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct SrsGeoIp {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `open`, `parse`, `contains`, `ipv4_ranges`, and `ipv6_ranges` are never used
[INFO] [stdout]    --> src/parser/geoip.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl SrsGeoIp {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  81 |     pub fn open(path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn parse(data: &[u8]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn contains(&self, ip: IpAddr) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn ipv4_ranges(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn ipv6_ranges(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpSet` is never constructed
[INFO] [stdout]    --> src/parser/geoip.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | struct IpSet {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_ipset` is never used
[INFO] [stdout]    --> src/parser/geoip.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn read_ipset(reader: &mut Reader<'_>) -> Result<IpSet> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reader` is never constructed
[INFO] [stdout]    --> src/parser/geoip.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | struct Reader<'a> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/geoip.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl<'a> Reader<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 264 |     fn new(data: &'a [u8]) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn remaining(&self) -> &'a [u8] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn read_u8(&mut self) -> Result<u8> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     fn read_exact(&mut self, len: usize) -> Result<&'a [u8]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn read_u64_be(&mut self) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     fn read_uvarint(&mut self) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn read_bytes(&mut self) -> Result<&'a [u8]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnsupportedDomainVersion` is never constructed
[INFO] [stdout]   --> src/parser/srs.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum Error {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     UnsupportedDomainVersion(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Logical(LogicalRule),
[INFO] [stdout]     |     ------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Rule` has a derived impl for the trait `Debug`, but this is 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] 161 -     Logical(LogicalRule),
[INFO] [stdout] 161 +     Logical(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `invert` is never read
[INFO] [stdout]    --> src/parser/srs.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct DefaultRule {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 166 |     pub items: Vec<RuleItem>,
[INFO] [stdout] 167 |     pub invert: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DefaultRule` 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 `mode`, `rules`, and `invert` are never read
[INFO] [stdout]    --> src/parser/srs.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct LogicalRule {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 172 |     pub mode: LogicalMode,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 173 |     pub rules: Vec<Rule>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 174 |     pub invert: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogicalRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |     QueryType(Vec<u16>),
[INFO] [stdout]     |     --------- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 185 -     QueryType(Vec<u16>),
[INFO] [stdout] 185 +     QueryType(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |     Network(Vec<String>),
[INFO] [stdout]     |     ------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 186 -     Network(Vec<String>),
[INFO] [stdout] 186 +     Network(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Domain(DomainMatcher),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 188 -     Domain(DomainMatcher),
[INFO] [stdout] 188 +     Domain(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |     DomainKeyword(Vec<String>),
[INFO] [stdout]     |     ------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 189 -     DomainKeyword(Vec<String>),
[INFO] [stdout] 189 +     DomainKeyword(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:190:17
[INFO] [stdout]     |
[INFO] [stdout] 190 |     DomainRegex(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 190 -     DomainRegex(Vec<String>),
[INFO] [stdout] 190 +     DomainRegex(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/parser/srs.rs:570:13
[INFO] [stdout]     |
[INFO] [stdout] 570 |             value => Err(Error::Invalid("invalid boolean value")),
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:192:18
[INFO] [stdout]     |
[INFO] [stdout] 192 |     SourceIpCidr(IpSet),
[INFO] [stdout]     |     ------------ ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 192 -     SourceIpCidr(IpSet),
[INFO] [stdout] 192 +     SourceIpCidr(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     SourcePort(Vec<u16>),
[INFO] [stdout]     |     ---------- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 195 -     SourcePort(Vec<u16>),
[INFO] [stdout] 195 +     SourcePort(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 |     SourcePortRange(Vec<String>),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 196 -     SourcePortRange(Vec<String>),
[INFO] [stdout] 196 +     SourcePortRange(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:198:10
[INFO] [stdout]     |
[INFO] [stdout] 198 |     Port(Vec<u16>),
[INFO] [stdout]     |     ---- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 198 -     Port(Vec<u16>),
[INFO] [stdout] 198 +     Port(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:199:15
[INFO] [stdout]     |
[INFO] [stdout] 199 |     PortRange(Vec<String>),
[INFO] [stdout]     |     --------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 199 -     PortRange(Vec<String>),
[INFO] [stdout] 199 +     PortRange(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |     ProcessName(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 201 -     ProcessName(Vec<String>),
[INFO] [stdout] 201 +     ProcessName(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |     ProcessPath(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 202 -     ProcessPath(Vec<String>),
[INFO] [stdout] 202 +     ProcessPath(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |     PackageName(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 203 -     PackageName(Vec<String>),
[INFO] [stdout] 203 +     PackageName(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     WifiSsid(Vec<String>),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 205 -     WifiSsid(Vec<String>),
[INFO] [stdout] 205 +     WifiSsid(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |     WifiBssid(Vec<String>),
[INFO] [stdout]     |     --------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 206 -     WifiBssid(Vec<String>),
[INFO] [stdout] 206 +     WifiBssid(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:210:22
[INFO] [stdout]     |
[INFO] [stdout] 210 |     ProcessPathRegex(Vec<String>),
[INFO] [stdout]     |     ---------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 210 -     ProcessPathRegex(Vec<String>),
[INFO] [stdout] 210 +     ProcessPathRegex(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:212:17
[INFO] [stdout]     |
[INFO] [stdout] 212 |     NetworkType(Vec<u8>),
[INFO] [stdout]     |     ----------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 212 -     NetworkType(Vec<u8>),
[INFO] [stdout] 212 +     NetworkType(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NetworkInterfaceAddress` and `DefaultInterfaceAddress` are never constructed
[INFO] [stdout]    --> src/parser/srs.rs:216:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub enum RuleItem {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 216 |     NetworkInterfaceAddress,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 217 |     DefaultInterfaceAddress,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `set` is never read
[INFO] [stdout]    --> src/parser/srs.rs:626:5
[INFO] [stdout]     |
[INFO] [stdout] 625 | struct DomainMatcher {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 626 |     set: SuccinctSet,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DomainMatcher` 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 `leaves` and `labels` are never read
[INFO] [stdout]    --> src/parser/srs.rs:631:5
[INFO] [stdout]     |
[INFO] [stdout] 630 | struct SuccinctSet {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 631 |     leaves: Vec<u64>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 632 |     label_bitmap: Vec<u64>,
[INFO] [stdout] 633 |     labels: Vec<u8>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SuccinctSet` 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 `Prefix` is never constructed
[INFO] [stdout]    --> src/parser/srs.rs:664:12
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub struct Prefix {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_prefix` is never used
[INFO] [stdout]    --> src/parser/srs.rs:669:4
[INFO] [stdout]     |
[INFO] [stdout] 669 | fn read_prefix(reader: &mut Reader<'_>) -> Result<IpRange> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_default_interface_address` is never used
[INFO] [stdout]    --> src/parser/srs.rs:676:4
[INFO] [stdout]     |
[INFO] [stdout] 676 | fn read_default_interface_address(reader: &mut Reader<'_>) -> Result<Vec<IpRange>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_network_interface_address` is never used
[INFO] [stdout]    --> src/parser/srs.rs:690:4
[INFO] [stdout]     |
[INFO] [stdout] 690 | fn read_network_interface_address(reader: &mut Reader<'_>) -> Result<Vec<(u8, Vec<IpRange>)>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_low_bits` is never used
[INFO] [stdout]    --> src/parser/srs.rs:717:4
[INFO] [stdout]     |
[INFO] [stdout] 717 | fn mask_low_bits(n: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]    --> src/parser/srs.rs:726:4
[INFO] [stdout]     |
[INFO] [stdout] 726 | fn get_bit(bitmap: &[u64], index: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_domain` is never used
[INFO] [stdout]    --> src/parser/srs.rs:736:4
[INFO] [stdout]     |
[INFO] [stdout] 736 | fn reverse_domain(domain: &str) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `count_zeros` and `select_ith_one` are never used
[INFO] [stdout]    --> src/parser/srs.rs:784:8
[INFO] [stdout]     |
[INFO] [stdout] 748 | impl SuccinctSet {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 784 |     fn count_zeros(&self, index: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 801 |     fn select_ith_one(&self, index: usize) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nth_set_bit` is never used
[INFO] [stdout]    --> src/parser/srs.rs:834:4
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn nth_set_bit(mut value: u64, n: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `matches` and `has` are never used
[INFO] [stdout]    --> src/parser/srs.rs:851:8
[INFO] [stdout]     |
[INFO] [stdout] 850 | impl DomainMatcher {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 851 |     fn matches(&self, domain: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 856 |     fn has(&self, key: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut srs = Srs::open(path)?;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DomainMatcher` is more private than the item `RuleItem::Domain::0`
[INFO] [stdout]    --> src/parser/srs.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Domain(DomainMatcher),
[INFO] [stdout]     |            ^^^^^^^^^^^^^ field `RuleItem::Domain::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `DomainMatcher` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/parser/srs.rs:625:1
[INFO] [stdout]     |
[INFO] [stdout] 625 | struct DomainMatcher {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SRS_MAGIC` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const SRS_MAGIC: &[u8; 3] = b"SRS";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_TYPE_DEFAULT` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RULE_TYPE_DEFAULT: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_ITEM_IP_CIDR` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RULE_ITEM_IP_CIDR: u8 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RULE_ITEM_FINAL` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const RULE_ITEM_FINAL: u8 = 0xff;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IPSET_VERSION` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const IPSET_VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum Error {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/parser/geoip.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ipv4Range` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Ipv4Range {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ipv6Range` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Ipv6Range {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SrsGeoIp` is never constructed
[INFO] [stdout]   --> src/parser/geoip.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct SrsGeoIp {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `open`, `parse`, `contains`, `ipv4_ranges`, and `ipv6_ranges` are never used
[INFO] [stdout]    --> src/parser/geoip.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl SrsGeoIp {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  81 |     pub fn open(path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn parse(data: &[u8]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn contains(&self, ip: IpAddr) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn ipv4_ranges(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn ipv6_ranges(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpSet` is never constructed
[INFO] [stdout]    --> src/parser/geoip.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | struct IpSet {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_ipset` is never used
[INFO] [stdout]    --> src/parser/geoip.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn read_ipset(reader: &mut Reader<'_>) -> Result<IpSet> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reader` is never constructed
[INFO] [stdout]    --> src/parser/geoip.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | struct Reader<'a> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/geoip.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl<'a> Reader<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 264 |     fn new(data: &'a [u8]) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn remaining(&self) -> &'a [u8] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn read_u8(&mut self) -> Result<u8> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     fn read_exact(&mut self, len: usize) -> Result<&'a [u8]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn read_u64_be(&mut self) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     fn read_uvarint(&mut self) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn read_bytes(&mut self) -> Result<&'a [u8]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnsupportedDomainVersion` is never constructed
[INFO] [stdout]   --> src/parser/srs.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum Error {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     UnsupportedDomainVersion(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:161:13
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Logical(LogicalRule),
[INFO] [stdout]     |     ------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Rule` has a derived impl for the trait `Debug`, but this is 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] 161 -     Logical(LogicalRule),
[INFO] [stdout] 161 +     Logical(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `invert` is never read
[INFO] [stdout]    --> src/parser/srs.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct DefaultRule {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 166 |     pub items: Vec<RuleItem>,
[INFO] [stdout] 167 |     pub invert: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DefaultRule` 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 `mode`, `rules`, and `invert` are never read
[INFO] [stdout]    --> src/parser/srs.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct LogicalRule {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 172 |     pub mode: LogicalMode,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 173 |     pub rules: Vec<Rule>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 174 |     pub invert: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogicalRule` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |     QueryType(Vec<u16>),
[INFO] [stdout]     |     --------- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 185 -     QueryType(Vec<u16>),
[INFO] [stdout] 185 +     QueryType(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |     Network(Vec<String>),
[INFO] [stdout]     |     ------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 186 -     Network(Vec<String>),
[INFO] [stdout] 186 +     Network(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Domain(DomainMatcher),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 188 -     Domain(DomainMatcher),
[INFO] [stdout] 188 +     Domain(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |     DomainKeyword(Vec<String>),
[INFO] [stdout]     |     ------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 189 -     DomainKeyword(Vec<String>),
[INFO] [stdout] 189 +     DomainKeyword(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:190:17
[INFO] [stdout]     |
[INFO] [stdout] 190 |     DomainRegex(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 190 -     DomainRegex(Vec<String>),
[INFO] [stdout] 190 +     DomainRegex(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:192:18
[INFO] [stdout]     |
[INFO] [stdout] 192 |     SourceIpCidr(IpSet),
[INFO] [stdout]     |     ------------ ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 192 -     SourceIpCidr(IpSet),
[INFO] [stdout] 192 +     SourceIpCidr(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     SourcePort(Vec<u16>),
[INFO] [stdout]     |     ---------- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 195 -     SourcePort(Vec<u16>),
[INFO] [stdout] 195 +     SourcePort(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 |     SourcePortRange(Vec<String>),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 196 -     SourcePortRange(Vec<String>),
[INFO] [stdout] 196 +     SourcePortRange(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:198:10
[INFO] [stdout]     |
[INFO] [stdout] 198 |     Port(Vec<u16>),
[INFO] [stdout]     |     ---- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 198 -     Port(Vec<u16>),
[INFO] [stdout] 198 +     Port(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:199:15
[INFO] [stdout]     |
[INFO] [stdout] 199 |     PortRange(Vec<String>),
[INFO] [stdout]     |     --------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 199 -     PortRange(Vec<String>),
[INFO] [stdout] 199 +     PortRange(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |     ProcessName(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 201 -     ProcessName(Vec<String>),
[INFO] [stdout] 201 +     ProcessName(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |     ProcessPath(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 202 -     ProcessPath(Vec<String>),
[INFO] [stdout] 202 +     ProcessPath(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |     PackageName(Vec<String>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 203 -     PackageName(Vec<String>),
[INFO] [stdout] 203 +     PackageName(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     WifiSsid(Vec<String>),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 205 -     WifiSsid(Vec<String>),
[INFO] [stdout] 205 +     WifiSsid(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |     WifiBssid(Vec<String>),
[INFO] [stdout]     |     --------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 206 -     WifiBssid(Vec<String>),
[INFO] [stdout] 206 +     WifiBssid(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:210:22
[INFO] [stdout]     |
[INFO] [stdout] 210 |     ProcessPathRegex(Vec<String>),
[INFO] [stdout]     |     ---------------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 210 -     ProcessPathRegex(Vec<String>),
[INFO] [stdout] 210 +     ProcessPathRegex(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/srs.rs:212:17
[INFO] [stdout]     |
[INFO] [stdout] 212 |     NetworkType(Vec<u8>),
[INFO] [stdout]     |     ----------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is 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] 212 -     NetworkType(Vec<u8>),
[INFO] [stdout] 212 +     NetworkType(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NetworkInterfaceAddress` and `DefaultInterfaceAddress` are never constructed
[INFO] [stdout]    --> src/parser/srs.rs:216:5
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub enum RuleItem {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 216 |     NetworkInterfaceAddress,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 217 |     DefaultInterfaceAddress,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuleItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `set` is never read
[INFO] [stdout]    --> src/parser/srs.rs:626:5
[INFO] [stdout]     |
[INFO] [stdout] 625 | struct DomainMatcher {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 626 |     set: SuccinctSet,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DomainMatcher` 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 `leaves` and `labels` are never read
[INFO] [stdout]    --> src/parser/srs.rs:631:5
[INFO] [stdout]     |
[INFO] [stdout] 630 | struct SuccinctSet {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 631 |     leaves: Vec<u64>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 632 |     label_bitmap: Vec<u64>,
[INFO] [stdout] 633 |     labels: Vec<u8>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SuccinctSet` 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 `Prefix` is never constructed
[INFO] [stdout]    --> src/parser/srs.rs:664:12
[INFO] [stdout]     |
[INFO] [stdout] 664 | pub struct Prefix {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_prefix` is never used
[INFO] [stdout]    --> src/parser/srs.rs:669:4
[INFO] [stdout]     |
[INFO] [stdout] 669 | fn read_prefix(reader: &mut Reader<'_>) -> Result<IpRange> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_default_interface_address` is never used
[INFO] [stdout]    --> src/parser/srs.rs:676:4
[INFO] [stdout]     |
[INFO] [stdout] 676 | fn read_default_interface_address(reader: &mut Reader<'_>) -> Result<Vec<IpRange>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_network_interface_address` is never used
[INFO] [stdout]    --> src/parser/srs.rs:690:4
[INFO] [stdout]     |
[INFO] [stdout] 690 | fn read_network_interface_address(reader: &mut Reader<'_>) -> Result<Vec<(u8, Vec<IpRange>)>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_low_bits` is never used
[INFO] [stdout]    --> src/parser/srs.rs:717:4
[INFO] [stdout]     |
[INFO] [stdout] 717 | fn mask_low_bits(n: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]    --> src/parser/srs.rs:726:4
[INFO] [stdout]     |
[INFO] [stdout] 726 | fn get_bit(bitmap: &[u64], index: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_domain` is never used
[INFO] [stdout]    --> src/parser/srs.rs:736:4
[INFO] [stdout]     |
[INFO] [stdout] 736 | fn reverse_domain(domain: &str) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `count_zeros` and `select_ith_one` are never used
[INFO] [stdout]    --> src/parser/srs.rs:784:8
[INFO] [stdout]     |
[INFO] [stdout] 748 | impl SuccinctSet {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 784 |     fn count_zeros(&self, index: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 801 |     fn select_ith_one(&self, index: usize) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nth_set_bit` is never used
[INFO] [stdout]    --> src/parser/srs.rs:834:4
[INFO] [stdout]     |
[INFO] [stdout] 834 | fn nth_set_bit(mut value: u64, n: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `matches` and `has` are never used
[INFO] [stdout]    --> src/parser/srs.rs:851:8
[INFO] [stdout]     |
[INFO] [stdout] 850 | impl DomainMatcher {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 851 |     fn matches(&self, domain: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 856 |     fn has(&self, key: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.30s
[INFO] running `Command { std: "docker" "inspect" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c", kill_on_drop: false }`
[INFO] [stdout] 339b8be02ae9a6dccce18dbb932c971f950d3dd3c8ffae72ef5064cb3417796c
