[INFO] cloning repository https://github.com/ykskb/rust-user-net
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ykskb/rust-user-net" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykskb%2Frust-user-net", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykskb%2Frust-user-net'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3a063dff0f254ba950b37c65b19397ce65349c4d
[INFO] checking ykskb/rust-user-net against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykskb%2Frust-user-net" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ykskb/rust-user-net
[INFO] finished tweaking git repo https://github.com/ykskb/rust-user-net
[INFO] tweaked toml for git repo https://github.com/ykskb/rust-user-net written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ykskb/rust-user-net on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ykskb/rust-user-net 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ioctl-sys v0.6.0
[INFO] [stderr]   Downloaded os_str_bytes v6.4.0
[INFO] [stderr]   Downloaded ifstructs v0.1.1
[INFO] [stderr]   Downloaded clap v4.0.26
[INFO] [stderr]   Downloaded libc v0.2.129
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e47552d5fb5cdf005049fd48dd52b9891c6854972b2022de2382ca4bfca9520f
[INFO] running `Command { std: "docker" "start" "-a" "e47552d5fb5cdf005049fd48dd52b9891c6854972b2022de2382ca4bfca9520f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e47552d5fb5cdf005049fd48dd52b9891c6854972b2022de2382ca4bfca9520f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e47552d5fb5cdf005049fd48dd52b9891c6854972b2022de2382ca4bfca9520f", kill_on_drop: false }`
[INFO] [stdout] e47552d5fb5cdf005049fd48dd52b9891c6854972b2022de2382ca4bfca9520f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec6b590e67c38b4385c3904f129df03476dde75f9fb1ce5929f3b1593d52441c
[INFO] running `Command { std: "docker" "start" "-a" "ec6b590e67c38b4385c3904f129df03476dde75f9fb1ce5929f3b1593d52441c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.129
[INFO] [stderr]    Compiling proc-macro2 v1.0.47
[INFO] [stderr]    Compiling unicode-ident v1.0.5
[INFO] [stderr]    Compiling syn v1.0.103
[INFO] [stderr]    Compiling time-core v0.1.0
[INFO] [stderr]     Checking itoa v1.0.4
[INFO] [stderr]     Checking os_str_bytes v6.4.0
[INFO] [stderr]    Compiling signal-hook v0.3.14
[INFO] [stderr]     Checking once_cell v1.16.0
[INFO] [stderr]     Checking ioctl-sys v0.6.0
[INFO] [stderr]    Compiling time-macros v0.2.6
[INFO] [stderr]     Checking clap_lex v0.3.0
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking time v0.3.17
[INFO] [stderr]     Checking nix v0.25.0
[INFO] [stderr]     Checking ifstructs v0.1.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking simplelog v0.12.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v4.0.21
[INFO] [stderr]     Checking clap v4.0.26
[INFO] [stderr]     Checking rust-user-net v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::protocols::ip::icmp`
[INFO] [stdout]  --> src/app.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocols::ip::icmp;
[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: `crate::protocols::ip::ip_addr_to_bytes`
[INFO] [stdout]  --> src/app.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocols::ip::ip_addr_to_bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::protocols::ip::ip_addr_to_str`
[INFO] [stdout]  --> src/app.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::protocols::ip::ip_addr_to_str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IPAdress`
[INFO] [stdout]   --> src/app.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     IPAdress, IPEndpoint, IPHeaderIdManager, IPInterface, IPRoute, IPRoutes,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::byte::le_to_be_u32`
[INFO] [stdout]   --> src/app.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::utils::byte::le_to_be_u32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]   --> src/app.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::process;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::protocols::ip::icmp`
[INFO] [stdout]  --> src/app.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocols::ip::icmp;
[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: `crate::protocols::ip::ip_addr_to_bytes`
[INFO] [stdout]  --> src/app.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::protocols::ip::ip_addr_to_bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::protocols::ip::ip_addr_to_str`
[INFO] [stdout]  --> src/app.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::protocols::ip::ip_addr_to_str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IPAdress`
[INFO] [stdout]   --> src/app.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     IPAdress, IPEndpoint, IPHeaderIdManager, IPInterface, IPRoute, IPRoutes,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::byte::le_to_be_u32`
[INFO] [stdout]   --> src/app.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::utils::byte::le_to_be_u32;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process`
[INFO] [stdout]   --> src/app.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::process;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/app.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let args = Cli::parse();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_ip`
[INFO] [stdout]    --> src/app.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |                         local_ip,
[INFO] [stdout]     |                         ^^^^^^^^ help: try ignoring the field: `local_ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_port`
[INFO] [stdout]    --> src/app.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                         local_port,
[INFO] [stdout]     |                         ^^^^^^^^^^ help: try ignoring the field: `local_port: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_ip`
[INFO] [stdout]    --> src/app.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         local_ip,
[INFO] [stdout]     |                         ^^^^^^^^ help: try ignoring the field: `local_ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_port`
[INFO] [stdout]    --> src/app.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         local_port,
[INFO] [stdout]     |                         ^^^^^^^^^^ help: try ignoring the field: `local_port: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]  --> src/drivers/pcap.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn read_data(device: &NetDevice) -> (usize, [u8; ETH_FRAME_MAX]) {
[INFO] [stdout]   |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/app.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let args = Cli::parse();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_ip`
[INFO] [stdout]    --> src/app.rs:118:25
[INFO] [stdout]     |
[INFO] [stdout] 118 |                         local_ip,
[INFO] [stdout]     |                         ^^^^^^^^ help: try ignoring the field: `local_ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_port`
[INFO] [stdout]    --> src/app.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                         local_port,
[INFO] [stdout]     |                         ^^^^^^^^^^ help: try ignoring the field: `local_port: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_ip`
[INFO] [stdout]    --> src/app.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         local_ip,
[INFO] [stdout]     |                         ^^^^^^^^ help: try ignoring the field: `local_ip: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_port`
[INFO] [stdout]    --> src/app.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                         local_port,
[INFO] [stdout]     |                         ^^^^^^^^^^ help: try ignoring the field: `local_port: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pcbs`
[INFO] [stdout]    --> src/protocols/ip/icmp.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pcbs: &mut ControlBlocks,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pcbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remote`
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1237:5
[INFO] [stdout]      |
[INFO] [stdout] 1237 |     remote: &IPEndpoint,
[INFO] [stdout]      |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]  --> src/drivers/pcap.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn read_data(device: &NetDevice) -> (usize, [u8; ETH_FRAME_MAX]) {
[INFO] [stdout]   |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/protocols/ip/udp.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut entry = &mut self.entries[pcb_id];
[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: unused variable: `device`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     device: &mut NetDevice,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iface`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     iface: &IPInterface,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_iface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contexts`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     contexts: &mut ProtocolContexts,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contexts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pcbs`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     pcbs: &mut ControlBlocks,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pcbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pcbs`
[INFO] [stdout]    --> src/protocols/ip/icmp.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pcbs: &mut ControlBlocks,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pcbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_FLAG_P2P` is never used
[INFO] [stdout]   --> src/devices/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const DEVICE_FLAG_P2P: u16 = 0x0040;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `index`, `header_len`, and `address_len` are never read
[INFO] [stdout]   --> src/devices/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct NetDevice {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 33 |     index: u8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub header_len: u16,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 39 |     pub address_len: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `close` is never used
[INFO] [stdout]    --> src/devices/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl NetDevice {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn close(&self) -> Result<(), &str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pcap` is never constructed
[INFO] [stdout]  --> src/drivers/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum DriverType {
[INFO] [stdout]   |          ---------- variant in this enum
[INFO] [stdout] 8 |     Tap,
[INFO] [stdout] 9 |     Pcap,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DriverType` 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 `irq` is never read
[INFO] [stdout]   --> src/drivers/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DriverData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     irq: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DriverData` 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 `flags` and `next` are never read
[INFO] [stdout]  --> src/interrupt.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct IRQEntry {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 7 |     pub irq: i32,
[INFO] [stdout] 8 |     flags: u8,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     next: Option<Box<IRQEntry>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IRQEntry` 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 `IPV6` is never constructed
[INFO] [stdout]  --> src/net.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum NetInterfaceFamily {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 3 |     IP,
[INFO] [stdout] 4 |     IPV6,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NetInterfaceFamily` 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 `next` is never read
[INFO] [stdout]   --> src/net.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct NetInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout]  9 |     pub family: NetInterfaceFamily,
[INFO] [stdout] 10 |     pub next: Option<Box<NetInterface>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetInterface` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Incomplete` and `Static` are never constructed
[INFO] [stdout]   --> src/protocols/arp.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum ArpTableEntryState {
[INFO] [stdout]    |      ------------------ variants in this enum
[INFO] [stdout] 22 |     Incomplete,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 23 |     Resolved,
[INFO] [stdout] 24 |     Static,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `target_hw_addr` is never read
[INFO] [stdout]   --> src/protocols/arp.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct ArpMessage {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     target_hw_addr: [u8; ETH_ADDR_LEN],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next` is never read
[INFO] [stdout]   --> src/protocols/ip/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct IPInterface {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 57 |     pub interface: NetInterface,
[INFO] [stdout] 58 |     pub next: Option<Box<IPInterface>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IPInterface` 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 `service_type`, `id`, `ttl`, and `opts` are never read
[INFO] [stdout]    --> src/protocols/ip/mod.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct IPHeader {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 171 |     ver_len: u8,      // version (4 bits) + IHL (4 bits)
[INFO] [stdout] 172 |     service_type: u8, // | Precedence: 3 | Delay: 1 | Throughput: 1 | Reliability: 1 | Reserved: 2 |
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 173 |     total_len: u16,
[INFO] [stdout] 174 |     id: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 175 |     offset: u16, // flags: | 0 | Don't fragment: 1 | More fragment: 1 | + fragment offset (13 bits)
[INFO] [stdout] 176 |     ttl: u8,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     opts: [u8; 0],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `check_sum` is never read
[INFO] [stdout]   --> src/protocols/ip/icmp.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ICMPHeader {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     check_sum: u16,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TCP_SRC_PORT_MIN` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const TCP_SRC_PORT_MIN: u16 = 49152;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TCP_SRC_PORT_MAX` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const TCP_SRC_PORT_MAX: u16 = 65535;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `src`, `dst`, `zero`, `protocol`, and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct PseudoHeader {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 34 |     src: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 35 |     dst: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 36 |     zero: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 37 |     protocol: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     len: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PseudoHeader` 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 `URG` is never constructed
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | enum TcpFlag {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     URG = 0x20,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tcp_flag_is` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn tcp_flag_is(flags: u8, flag: TcpFlag) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sum` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct TcpHeader {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sum: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct TcpSegmentInfo {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TcpSegmentInfo` 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 `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct TcpPcbSendContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TcpPcbRecvContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mtu` and `mss` are never read
[INFO] [stdout]    --> src/protocols/ip/tcp.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct TcpPcb {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     mtu: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 161 |     mss: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1123:8
[INFO] [stdout]      |
[INFO] [stdout] 1123 | pub fn open(pcbs: &mut ControlBlocks) -> usize {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1132:8
[INFO] [stdout]      |
[INFO] [stdout] 1132 | pub fn connect(
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bind` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1205:8
[INFO] [stdout]      |
[INFO] [stdout] 1205 | pub fn bind(pcb_id: usize, local: IPEndpoint, pcbs: &mut ControlBlocks) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listen` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1227:8
[INFO] [stdout]      |
[INFO] [stdout] 1227 | pub fn listen(pcb_id: usize, pcbs: &mut ControlBlocks) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `accept` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1235:8
[INFO] [stdout]      |
[INFO] [stdout] 1235 | pub fn accept(
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1435:8
[INFO] [stdout]      |
[INFO] [stdout] 1435 | pub fn close(
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `src`, `dst`, `zero`, `protocol`, and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PseudoHeader {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 23 |     src: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 24 |     dst: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 25 |     zero: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     protocol: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 27 |     len: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `checksum` is never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct UdpHeader {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     checksum: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Closing` is never constructed
[INFO] [stdout]   --> src/protocols/ip/udp.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum UdpPcbState {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 43 |     Closing,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remote_endpoint` and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct UdpDataEntry {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 69 |     pub remote_endpoint: IPEndpoint,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub len: usize,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_entry` is never used
[INFO] [stdout]   --> src/protocols/ip/udp.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl UdpPcbs {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn delete_entry(&mut self, pcb_id: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remote`
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1237:5
[INFO] [stdout]      |
[INFO] [stdout] 1237 |     remote: &IPEndpoint,
[INFO] [stdout]      |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/protocols/ip/udp.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut entry = &mut self.entries[pcb_id];
[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: unused variable: `device`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     device: &mut NetDevice,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iface`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     iface: &IPInterface,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_iface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contexts`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     contexts: &mut ProtocolContexts,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contexts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pcbs`
[INFO] [stdout]    --> src/protocols/ip/udp.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     pcbs: &mut ControlBlocks,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pcbs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_FLAG_P2P` is never used
[INFO] [stdout]   --> src/devices/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const DEVICE_FLAG_P2P: u16 = 0x0040;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `index`, `header_len`, and `address_len` are never read
[INFO] [stdout]   --> src/devices/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct NetDevice {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 33 |     index: u8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub header_len: u16,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 39 |     pub address_len: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `close` is never used
[INFO] [stdout]    --> src/devices/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl NetDevice {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn close(&self) -> Result<(), &str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pcap` is never constructed
[INFO] [stdout]  --> src/drivers/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum DriverType {
[INFO] [stdout]   |          ---------- variant in this enum
[INFO] [stdout] 8 |     Tap,
[INFO] [stdout] 9 |     Pcap,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DriverType` 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 `irq` is never read
[INFO] [stdout]   --> src/drivers/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DriverData {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     irq: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DriverData` 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 `flags` and `next` are never read
[INFO] [stdout]  --> src/interrupt.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct IRQEntry {
[INFO] [stdout]   |            -------- fields in this struct
[INFO] [stdout] 7 |     pub irq: i32,
[INFO] [stdout] 8 |     flags: u8,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     next: Option<Box<IRQEntry>>,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IRQEntry` 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 `IPV6` is never constructed
[INFO] [stdout]  --> src/net.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum NetInterfaceFamily {
[INFO] [stdout]   |          ------------------ variant in this enum
[INFO] [stdout] 3 |     IP,
[INFO] [stdout] 4 |     IPV6,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NetInterfaceFamily` 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 `next` is never read
[INFO] [stdout]   --> src/net.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct NetInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout]  9 |     pub family: NetInterfaceFamily,
[INFO] [stdout] 10 |     pub next: Option<Box<NetInterface>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetInterface` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Incomplete` and `Static` are never constructed
[INFO] [stdout]   --> src/protocols/arp.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum ArpTableEntryState {
[INFO] [stdout]    |      ------------------ variants in this enum
[INFO] [stdout] 22 |     Incomplete,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 23 |     Resolved,
[INFO] [stdout] 24 |     Static,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `target_hw_addr` is never read
[INFO] [stdout]   --> src/protocols/arp.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct ArpMessage {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     target_hw_addr: [u8; ETH_ADDR_LEN],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next` is never read
[INFO] [stdout]   --> src/protocols/ip/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct IPInterface {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 57 |     pub interface: NetInterface,
[INFO] [stdout] 58 |     pub next: Option<Box<IPInterface>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IPInterface` 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 `service_type`, `id`, `ttl`, and `opts` are never read
[INFO] [stdout]    --> src/protocols/ip/mod.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct IPHeader {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 171 |     ver_len: u8,      // version (4 bits) + IHL (4 bits)
[INFO] [stdout] 172 |     service_type: u8, // | Precedence: 3 | Delay: 1 | Throughput: 1 | Reliability: 1 | Reserved: 2 |
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 173 |     total_len: u16,
[INFO] [stdout] 174 |     id: u16,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 175 |     offset: u16, // flags: | 0 | Don't fragment: 1 | More fragment: 1 | + fragment offset (13 bits)
[INFO] [stdout] 176 |     ttl: u8,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     opts: [u8; 0],
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `check_sum` is never read
[INFO] [stdout]   --> src/protocols/ip/icmp.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ICMPHeader {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     check_sum: u16,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TCP_SRC_PORT_MIN` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const TCP_SRC_PORT_MIN: u16 = 49152;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TCP_SRC_PORT_MAX` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const TCP_SRC_PORT_MAX: u16 = 65535;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `src`, `dst`, `zero`, `protocol`, and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct PseudoHeader {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 34 |     src: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 35 |     dst: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 36 |     zero: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 37 |     protocol: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     len: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PseudoHeader` 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 `URG` is never constructed
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | enum TcpFlag {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 47 |     URG = 0x20,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tcp_flag_is` is never used
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn tcp_flag_is(flags: u8, flag: TcpFlag) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sum` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct TcpHeader {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     sum: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct TcpSegmentInfo {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TcpSegmentInfo` 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 `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct TcpPcbSendContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `urg_ptr` is never read
[INFO] [stdout]   --> src/protocols/ip/tcp.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TcpPcbRecvContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     urg_ptr: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mtu` and `mss` are never read
[INFO] [stdout]    --> src/protocols/ip/tcp.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct TcpPcb {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     mtu: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 161 |     mss: u16,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1123:8
[INFO] [stdout]      |
[INFO] [stdout] 1123 | pub fn open(pcbs: &mut ControlBlocks) -> usize {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1132:8
[INFO] [stdout]      |
[INFO] [stdout] 1132 | pub fn connect(
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bind` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1205:8
[INFO] [stdout]      |
[INFO] [stdout] 1205 | pub fn bind(pcb_id: usize, local: IPEndpoint, pcbs: &mut ControlBlocks) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listen` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1227:8
[INFO] [stdout]      |
[INFO] [stdout] 1227 | pub fn listen(pcb_id: usize, pcbs: &mut ControlBlocks) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `accept` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1235:8
[INFO] [stdout]      |
[INFO] [stdout] 1235 | pub fn accept(
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close` is never used
[INFO] [stdout]     --> src/protocols/ip/tcp.rs:1435:8
[INFO] [stdout]      |
[INFO] [stdout] 1435 | pub fn close(
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `src`, `dst`, `zero`, `protocol`, and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PseudoHeader {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 23 |     src: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 24 |     dst: IPAdress,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 25 |     zero: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     protocol: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 27 |     len: u16,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `checksum` is never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct UdpHeader {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     checksum: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Closing` is never constructed
[INFO] [stdout]   --> src/protocols/ip/udp.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum UdpPcbState {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 43 |     Closing,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `remote_endpoint` and `len` are never read
[INFO] [stdout]   --> src/protocols/ip/udp.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct UdpDataEntry {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 69 |     pub remote_endpoint: IPEndpoint,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub len: usize,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_entry` is never used
[INFO] [stdout]   --> src/protocols/ip/udp.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl UdpPcbs {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn delete_entry(&mut self, pcb_id: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.00s
[INFO] running `Command { std: "docker" "inspect" "ec6b590e67c38b4385c3904f129df03476dde75f9fb1ce5929f3b1593d52441c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec6b590e67c38b4385c3904f129df03476dde75f9fb1ce5929f3b1593d52441c", kill_on_drop: false }`
[INFO] [stdout] ec6b590e67c38b4385c3904f129df03476dde75f9fb1ce5929f3b1593d52441c
