[INFO] cloning repository https://github.com/hack-different/demuxusb-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hack-different/demuxusb-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhack-different%2Fdemuxusb-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhack-different%2Fdemuxusb-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 56bf706912079ff61fe5660d0e1eee9d2a52bd50
[INFO] checking hack-different/demuxusb-rs against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhack-different%2Fdemuxusb-rs" "/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/hack-different/demuxusb-rs
[INFO] finished tweaking git repo https://github.com/hack-different/demuxusb-rs
[INFO] tweaked toml for git repo https://github.com/hack-different/demuxusb-rs written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hack-different/demuxusb-rs on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hack-different/demuxusb-rs 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" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded uuid v1.21.0
[INFO] [stderr]   Downloaded byteorder_slice v3.0.0
[INFO] [stderr]   Downloaded display_tree v1.1.2
[INFO] [stderr]   Downloaded clap_lex v1.0.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.9.0-alpha.0
[INFO] [stderr]   Downloaded getrandom v0.4.1
[INFO] [stderr]   Downloaded indextree-macros v0.1.3
[INFO] [stderr]   Downloaded display_tree_derive v1.0.3
[INFO] [stderr]   Downloaded quote v1.0.44
[INFO] [stderr]   Downloaded indextree v4.8.1
[INFO] [stderr]   Downloaded pcap-file v2.0.0
[INFO] [stderr]   Downloaded derive-into-owned v0.2.0
[INFO] [stderr]   Downloaded csv-core v0.1.13
[INFO] [stderr]   Downloaded clap v4.5.60
[INFO] [stderr]   Downloaded clap_builder v4.5.60
[INFO] [stderr]   Downloaded zerocopy v0.9.0-alpha.0
[INFO] [stderr]   Downloaded csv v1.4.0
[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" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 249f6e1997cfd1854dc508e5ef3ec4bd184f205fe22b91bdefecf98c73297564
[INFO] running `Command { std: "docker" "start" "-a" "249f6e1997cfd1854dc508e5ef3ec4bd184f205fe22b91bdefecf98c73297564", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "249f6e1997cfd1854dc508e5ef3ec4bd184f205fe22b91bdefecf98c73297564", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "249f6e1997cfd1854dc508e5ef3ec4bd184f205fe22b91bdefecf98c73297564", kill_on_drop: false }`
[INFO] [stdout] 249f6e1997cfd1854dc508e5ef3ec4bd184f205fe22b91bdefecf98c73297564
[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" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4bc91d26e1441f31b23cb139a99e2b22e9fd07ced0c2d1d3ee617f7589912099
[INFO] running `Command { std: "docker" "start" "-a" "4bc91d26e1441f31b23cb139a99e2b22e9fd07ced0c2d1d3ee617f7589912099", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling zerocopy v0.9.0-alpha.0
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking clap_lex v1.0.0
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking byteorder_slice v3.0.0
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking clap_builder v4.5.60
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking uuid v1.21.0
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]    Compiling derive-into-owned v0.2.0
[INFO] [stderr]    Compiling display_tree_derive v1.0.3
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking display_tree v1.1.2
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerocopy-derive v0.9.0-alpha.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking pcap-file v2.0.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling indextree-macros v0.1.3
[INFO] [stderr]     Checking indextree v4.8.1
[INFO] [stderr]     Checking demuxusb-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `USBRequestBlock`
[INFO] [stdout]  --> src/device.rs:5:75
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) use crate::usb_request_block::{USBConfiguration, USBInterface, USBRequestBlock, USBControlRequest, USBControlRequestType};
[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: `USBRequestBlock`
[INFO] [stdout]  --> src/device.rs:5:75
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) use crate::usb_request_block::{USBConfiguration, USBInterface, USBRequestBlock, USBControlRequest, USBControlRequestType};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBDeviceDescriptor` is more private than the item `USBDescriptor::Device::0`
[INFO] [stdout]    --> src/usb_request_block.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Device(USBDeviceDescriptor),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Device::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBDeviceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:323:1
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBConfigDescriptor` is more private than the item `USBDescriptor::Configuration::0`
[INFO] [stdout]    --> src/usb_request_block.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     Configuration(USBConfigDescriptor),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Configuration::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBConfigDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:394:1
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceDescriptor` is more private than the item `USBDescriptor::Interface::0`
[INFO] [stdout]    --> src/usb_request_block.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Interface(InterfaceDescriptor),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Interface::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EndpointDescriptor` is more private than the item `USBDescriptor::Endpoint::0`
[INFO] [stdout]    --> src/usb_request_block.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Endpoint(EndpointDescriptor),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Endpoint::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EndpointDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceAssociationDescriptor` is more private than the item `USBDescriptor::InterfaceAssociation::0`
[INFO] [stdout]    --> src/usb_request_block.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |     InterfaceAssociation(InterfaceAssociationDescriptor),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::InterfaceAssociation::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceAssociationDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:355:1
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BinaryObjectStoreDescriptor` is more private than the item `USBDescriptor::BOS::0`
[INFO] [stdout]    --> src/usb_request_block.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     BOS(BinaryObjectStoreDescriptor),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::BOS::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BinaryObjectStoreDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BosDevCapabilityDescriptor` is more private than the item `USBDescriptor::DeviceCapability::0`
[INFO] [stdout]    --> src/usb_request_block.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     DeviceCapability(BosDevCapabilityDescriptor),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::DeviceCapability::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BosDevCapabilityDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:417:1
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `csv_path` and `bin_path` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TotalPhaseReader {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 137 |     csv_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 138 |     bin_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_field` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:728:4
[INFO] [stdout]     |
[INFO] [stdout] 728 | fn record_field<'a>(row: &'a HashMap<String, String>, key: &str) -> &'a str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LibusbBtWirelessUsbDeviceCapability`, `LibusbBtUsb20Extension`, `LibusbBtSsUsbDeviceCapability`, and `LibusbBtContainerId` are never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | enum USBBinaryObjectStoreType {
[INFO] [stdout]     |      ------------------------ variants in this enum
[INFO] [stdout] 134 |     LibusbBtWirelessUsbDeviceCapability = 1,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |     LibusbBtUsb20Extension = 2,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 136 |     LibusbBtSsUsbDeviceCapability = 3,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 |     LibusbBtContainerId = 4,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBBinaryObjectStoreType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const DEVICE_SIZE: u8 = 18;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | const CONFIG_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const INTERFACE_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBDeviceDescriptor` is more private than the item `USBDescriptor::Device::0`
[INFO] [stdout]    --> src/usb_request_block.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Device(USBDeviceDescriptor),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Device::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBDeviceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:323:1
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ENDPOINT_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_AUDIO_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const ENDPOINT_AUDIO_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUB_NONVAR_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const HUB_NONVAR_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBConfigDescriptor` is more private than the item `USBDescriptor::Configuration::0`
[INFO] [stdout]    --> src/usb_request_block.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     Configuration(USBConfigDescriptor),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Configuration::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBConfigDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:394:1
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SS_ENDPOINT_COMPANION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const SS_ENDPOINT_COMPANION_SIZE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOS_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const BOS_SIZE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceDescriptor` is more private than the item `USBDescriptor::Interface::0`
[INFO] [stdout]    --> src/usb_request_block.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Interface(InterfaceDescriptor),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Interface::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const DEVICE_CAPABILITY_SIZE: u8 = 3;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_ASSOCIATION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | const INTERFACE_ASSOCIATION_SIZE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EndpointDescriptor` is more private than the item `USBDescriptor::Endpoint::0`
[INFO] [stdout]    --> src/usb_request_block.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Endpoint(EndpointDescriptor),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Endpoint::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EndpointDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_USB_2_0_EXTENSION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 | const BT_USB_2_0_EXTENSION_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | const BT_SS_USB_DEVICE_CAPABILITY_SIZE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE: u8 = 12;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_CONTAINER_ID_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:155:7
[INFO] [stdout]     |
[INFO] [stdout] 155 | const BT_CONTAINER_ID_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceAssociationDescriptor` is more private than the item `USBDescriptor::InterfaceAssociation::0`
[INFO] [stdout]    --> src/usb_request_block.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |     InterfaceAssociation(InterfaceAssociationDescriptor),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::InterfaceAssociation::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceAssociationDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:355:1
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_PLATFORM_DESCRIPTOR_MIN_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 | const BT_PLATFORM_DESCRIPTOR_MIN_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_ADDRESS_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:158:7
[INFO] [stdout]     |
[INFO] [stdout] 158 | const ENDPOINT_ADDRESS_MASK: u8 = 0x0f;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_DIR_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:159:7
[INFO] [stdout]     |
[INFO] [stdout] 159 | const ENDPOINT_DIR_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BinaryObjectStoreDescriptor` is more private than the item `USBDescriptor::BOS::0`
[INFO] [stdout]    --> src/usb_request_block.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     BOS(BinaryObjectStoreDescriptor),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::BOS::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BinaryObjectStoreDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_IN_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:170:7
[INFO] [stdout]     |
[INFO] [stdout] 170 | const USB_ENDPOINT_IN_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_OUT_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:171:7
[INFO] [stdout]     |
[INFO] [stdout] 171 | const USB_ENDPOINT_OUT_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_ID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const USB_ENDPOINT_ID: u8 = 0x7F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_VID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:174:7
[INFO] [stdout]     |
[INFO] [stdout] 174 | const APPLE_VID: u16 = 0x05ac;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_CLASS_APPLICATION_SPECIFIC` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 | const USB_CLASS_APPLICATION_SPECIFIC: u8 = 0xFF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_SUBCLASS_DFU` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const USB_SUBCLASS_DFU: u8 = 0x01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_SUBCLASS_USBMUX` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:177:7
[INFO] [stdout]     |
[INFO] [stdout] 177 | const APPLE_SUBCLASS_USBMUX: u8 = 0xFE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_PROTOCOL_USBMUX2` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const APPLE_PROTOCOL_USBMUX2: u8 = 0x02;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSFER_TYPE_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const TRANSFER_TYPE_MASK: u8 = 0x03;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `URBRecordType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:182:6
[INFO] [stdout]     |
[INFO] [stdout] 182 | enum URBRecordType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppleUSBDeviceID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 194 | enum AppleUSBDeviceID {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_id` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct USBSetAddress {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 223 |     device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id` and `index` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct USBGetDeviceDescriptor {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 227 |     device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 228 |     index: u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `global_id`, `local_device_id`, `configurations`, and `endpoints` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct USBDevice {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 262 |     global_id: Uuid,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 263 |     local_device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 264 |     configurations: Map<u8, USBConfiguration>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 265 |     endpoints: Map<u8, USBEndpoint>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interfaces` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct USBConfiguration {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 269 |     interfaces: Map<u8, USBInterface>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BosDevCapabilityDescriptor` is more private than the item `USBDescriptor::DeviceCapability::0`
[INFO] [stdout]    --> src/usb_request_block.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     DeviceCapability(BosDevCapabilityDescriptor),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::DeviceCapability::0` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BosDevCapabilityDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:417:1
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `csv_path` and `bin_path` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TotalPhaseReader {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 137 |     csv_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 138 |     bin_path: String,
[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 `configuration_id`, `input_id`, and `output_id` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct USBInterface {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 273 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     input_id: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 275 |     output_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_field` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:728:4
[INFO] [stdout]     |
[INFO] [stdout] 728 | fn record_field<'a>(row: &'a HashMap<String, String>, key: &str) -> &'a str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint_id`, `direction`, and `urbs` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct USBEndpoint {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 279 |     endpoint_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 280 |     direction: USBDirection,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 281 |     urbs: Vec<USBRequestBlock>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LibusbBtWirelessUsbDeviceCapability`, `LibusbBtUsb20Extension`, `LibusbBtSsUsbDeviceCapability`, and `LibusbBtContainerId` are never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | enum USBBinaryObjectStoreType {
[INFO] [stdout]     |      ------------------------ variants in this enum
[INFO] [stdout] 134 |     LibusbBtWirelessUsbDeviceCapability = 1,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |     LibusbBtUsb20Extension = 2,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 136 |     LibusbBtSsUsbDeviceCapability = 3,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 |     LibusbBtContainerId = 4,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBBinaryObjectStoreType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const DEVICE_SIZE: u8 = 18;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | const CONFIG_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const INTERFACE_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ENDPOINT_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_AUDIO_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const ENDPOINT_AUDIO_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 324 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 325 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 326 |     bcd_usb: u16,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 327 |     device_class: USBClassCode,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 328 |     device_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 329 |     device_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 330 |     max_packet_size: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 331 |     vendor_id: u16,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 332 |     product_id: u16,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 333 |     bcd_device: u16,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 334 |     index_manufacturer: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 335 |     index_product: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 336 |     index_serial_number: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 337 |     configuration_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBDeviceDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUB_NONVAR_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const HUB_NONVAR_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SS_ENDPOINT_COMPANION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const SS_ENDPOINT_COMPANION_SIZE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOS_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const BOS_SIZE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const DEVICE_CAPABILITY_SIZE: u8 = 3;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 342 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 343 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 344 |     endpoint_address: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |     attributes: USBAttributes,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 346 |     max_packet_size: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 347 |     polling_interval: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |     refresh: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 349 |     synch_address: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 350 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 351 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EndpointDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_ASSOCIATION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | const INTERFACE_ASSOCIATION_SIZE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_USB_2_0_EXTENSION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 | const BT_USB_2_0_EXTENSION_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | const BT_SS_USB_DEVICE_CAPABILITY_SIZE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE: u8 = 12;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:356:5
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     |        ------------------------------ fields in this struct
[INFO] [stdout] 356 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 357 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     first_interface: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 359 |     interface_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 360 |     function_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     function_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 362 |     function_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 363 |     function_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceAssociationDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_CONTAINER_ID_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:155:7
[INFO] [stdout]     |
[INFO] [stdout] 155 | const BT_CONTAINER_ID_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceAssociationDescriptorArray` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:366:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | struct InterfaceAssociationDescriptorArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_PLATFORM_DESCRIPTOR_MIN_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 | const BT_PLATFORM_DESCRIPTOR_MIN_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_ADDRESS_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:158:7
[INFO] [stdout]     |
[INFO] [stdout] 158 | const ENDPOINT_ADDRESS_MASK: u8 = 0x0f;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_DIR_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:159:7
[INFO] [stdout]     |
[INFO] [stdout] 159 | const ENDPOINT_DIR_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_IN_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:170:7
[INFO] [stdout]     |
[INFO] [stdout] 170 | const USB_ENDPOINT_IN_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_OUT_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:171:7
[INFO] [stdout]     |
[INFO] [stdout] 171 | const USB_ENDPOINT_OUT_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_ID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const USB_ENDPOINT_ID: u8 = 0x7F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_VID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:174:7
[INFO] [stdout]     |
[INFO] [stdout] 174 | const APPLE_VID: u16 = 0x05ac;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_CLASS_APPLICATION_SPECIFIC` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 | const USB_CLASS_APPLICATION_SPECIFIC: u8 = 0xFF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_SUBCLASS_DFU` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const USB_SUBCLASS_DFU: u8 = 0x01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_SUBCLASS_USBMUX` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:177:7
[INFO] [stdout]     |
[INFO] [stdout] 177 | const APPLE_SUBCLASS_USBMUX: u8 = 0xFE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_PROTOCOL_USBMUX2` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const APPLE_PROTOCOL_USBMUX2: u8 = 0x02;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSFER_TYPE_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const TRANSFER_TYPE_MASK: u8 = 0x03;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `URBRecordType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:182:6
[INFO] [stdout]     |
[INFO] [stdout] 182 | enum URBRecordType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppleUSBDeviceID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 194 | enum AppleUSBDeviceID {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_id` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct USBSetAddress {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 223 |     device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id` and `index` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct USBGetDeviceDescriptor {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 227 |     device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 228 |     index: u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `global_id`, `local_device_id`, `configurations`, and `endpoints` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct USBDevice {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 262 |     global_id: Uuid,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 263 |     local_device_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 264 |     configurations: Map<u8, USBConfiguration>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 265 |     endpoints: Map<u8, USBEndpoint>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interfaces` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct USBConfiguration {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 269 |     interfaces: Map<u8, USBInterface>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `configuration_id`, `input_id`, and `output_id` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct USBInterface {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 273 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     input_id: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 275 |     output_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:373:5
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 373 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 374 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 375 |     interface_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 376 |     interface_alternative: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 377 |     endpoint_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 378 |     interface_class: USBClassCode,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 379 |     interface_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 380 |     interface_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 381 |     interface_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 382 |     endpoint: EndpointDescriptor,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 383 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 384 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceDescriptor` 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 `altsetting` and `alternate_setting_count` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 388 | struct USBInterfaceDescriptor {
[INFO] [stdout]     |        ---------------------- fields in this struct
[INFO] [stdout] 389 |     altsetting: InterfaceDescriptor,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 390 |     alternate_setting_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBInterfaceDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 395 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 396 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 397 |     total_length: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 398 |     interface_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 399 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 400 |     configuration_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 401 |     attributes: USBAttributes,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 402 |     max_power: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 403 |     interface: USBInterfaceDescriptor,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 404 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 405 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBConfigDescriptor` 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 `SsEndpointCompanionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | struct SsEndpointCompanionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length`, `descriptor_type`, `compatability_type`, and `dev_capability_data` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     |        -------------------------- fields in this struct
[INFO] [stdout] 418 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 419 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 420 |     compatability_type: USBBinaryObjectStoreType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 421 |     dev_capability_data: *const u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BosDevCapabilityDescriptor` 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 `length`, `descriptor_type`, `total_length`, `device_capability_count`, and `dev_capability` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     |        --------------------------- fields in this struct
[INFO] [stdout] 426 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 427 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 428 |     total_length: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 429 |     device_capability_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 430 |     dev_capability: Vec<BosDevCapabilityDescriptor>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryObjectStoreDescriptor` 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 `LibusbUsb20ExtensionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:433:8
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct LibusbUsb20ExtensionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | struct SsUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperSpeedPlusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:451:6
[INFO] [stdout]     |
[INFO] [stdout] 451 | enum SuperSpeedPlusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeSublinkDirection` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:456:6
[INFO] [stdout]     |
[INFO] [stdout] 456 | enum SuperspeedplusSublinkAttributeSublinkDirection {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:461:6
[INFO] [stdout]     |
[INFO] [stdout] 461 | enum SuperspeedplusSublinkAttributeExponent {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeLinkProtocol` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:468:6
[INFO] [stdout]     |
[INFO] [stdout] 468 | enum SuperspeedplusSublinkAttributeLinkProtocol {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:473:6
[INFO] [stdout]     |
[INFO] [stdout] 473 | enum LibusbSuperspeedplusSublinkAttributeExponent { LibusbSsplusAttrExpBps = 0, LibusbSsplusAttrExpKbs = 1, LibusbSsplusAttrExpMbs ...
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:475:6
[INFO] [stdout]     |
[INFO] [stdout] 475 | enum LibusbSuperspeedplusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbSsplusSublinkAttribute` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 479 | struct LibusbSsplusSublinkAttribute {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsplusUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | struct SsplusUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerIdDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:497:8
[INFO] [stdout]     |
[INFO] [stdout] 497 | struct ContainerIdDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBPlatformDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:505:8
[INFO] [stdout]     |
[INFO] [stdout] 505 | struct USBPlatformDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Packet` is never constructed
[INFO] [stdout]  --> src/device.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Packet {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `InterfaceExpert` is never used
[INFO] [stdout]   --> src/device.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | trait InterfaceExpert {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Endpoint` is never constructed
[INFO] [stdout]   --> src/device.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Endpoint {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interface` is never constructed
[INFO] [stdout]   --> src/device.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Interface {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Configuration` is never constructed
[INFO] [stdout]   --> src/device.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Configuration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Device` is never constructed
[INFO] [stdout]   --> src/device.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Device {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_devices` is never used
[INFO] [stdout]   --> src/device.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn parse_devices(packets: Vec<EnhancedPacketBlock>) -> HashMap<u8, Vec<Device>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:527:22
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here              ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint_id`, `direction`, and `urbs` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct USBEndpoint {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 279 |     endpoint_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 280 |     direction: USBDirection,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 281 |     urbs: Vec<USBRequestBlock>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 324 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 325 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 326 |     bcd_usb: u16,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 327 |     device_class: USBClassCode,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 328 |     device_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 329 |     device_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 330 |     max_packet_size: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 331 |     vendor_id: u16,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 332 |     product_id: u16,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 333 |     bcd_device: u16,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 334 |     index_manufacturer: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 335 |     index_product: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 336 |     index_serial_number: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 337 |     configuration_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBDeviceDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] 342 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 343 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 344 |     endpoint_address: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |     attributes: USBAttributes,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 346 |     max_packet_size: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 347 |     polling_interval: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |     refresh: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 349 |     synch_address: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 350 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 351 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EndpointDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:356:5
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     |        ------------------------------ fields in this struct
[INFO] [stdout] 356 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 357 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     first_interface: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 359 |     interface_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 360 |     function_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     function_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 362 |     function_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 363 |     function_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceAssociationDescriptor` 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 `InterfaceAssociationDescriptorArray` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:366:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | struct InterfaceAssociationDescriptorArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:373:5
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 373 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 374 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 375 |     interface_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 376 |     interface_alternative: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 377 |     endpoint_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 378 |     interface_class: USBClassCode,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 379 |     interface_sub_class: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 380 |     interface_protocol: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 381 |     interface_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 382 |     endpoint: EndpointDescriptor,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 383 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 384 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceDescriptor` 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 `altsetting` and `alternate_setting_count` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 388 | struct USBInterfaceDescriptor {
[INFO] [stdout]     |        ---------------------- fields in this struct
[INFO] [stdout] 389 |     altsetting: InterfaceDescriptor,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 390 |     alternate_setting_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBInterfaceDescriptor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/usb_request_block.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     |        ------------------- fields in this struct
[INFO] [stdout] 395 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 396 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 397 |     total_length: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 398 |     interface_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 399 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 400 |     configuration_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 401 |     attributes: USBAttributes,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 402 |     max_power: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 403 |     interface: USBInterfaceDescriptor,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 404 |     extra: *const u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 405 |     extra_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBConfigDescriptor` 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 `SsEndpointCompanionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | struct SsEndpointCompanionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length`, `descriptor_type`, `compatability_type`, and `dev_capability_data` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     |        -------------------------- fields in this struct
[INFO] [stdout] 418 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 419 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 420 |     compatability_type: USBBinaryObjectStoreType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 421 |     dev_capability_data: *const u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BosDevCapabilityDescriptor` 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 `length`, `descriptor_type`, `total_length`, `device_capability_count`, and `dev_capability` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     |        --------------------------- fields in this struct
[INFO] [stdout] 426 |     length: u8,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 427 |     descriptor_type: USBDescriptorType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 428 |     total_length: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 429 |     device_capability_count: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 430 |     dev_capability: Vec<BosDevCapabilityDescriptor>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryObjectStoreDescriptor` 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 `LibusbUsb20ExtensionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:433:8
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct LibusbUsb20ExtensionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | struct SsUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperSpeedPlusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:451:6
[INFO] [stdout]     |
[INFO] [stdout] 451 | enum SuperSpeedPlusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeSublinkDirection` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:456:6
[INFO] [stdout]     |
[INFO] [stdout] 456 | enum SuperspeedplusSublinkAttributeSublinkDirection {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:461:6
[INFO] [stdout]     |
[INFO] [stdout] 461 | enum SuperspeedplusSublinkAttributeExponent {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeLinkProtocol` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:468:6
[INFO] [stdout]     |
[INFO] [stdout] 468 | enum SuperspeedplusSublinkAttributeLinkProtocol {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:473:6
[INFO] [stdout]     |
[INFO] [stdout] 473 | enum LibusbSuperspeedplusSublinkAttributeExponent { LibusbSsplusAttrExpBps = 0, LibusbSsplusAttrExpKbs = 1, LibusbSsplusAttrExpMbs ...
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:475:6
[INFO] [stdout]     |
[INFO] [stdout] 475 | enum LibusbSuperspeedplusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbSsplusSublinkAttribute` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 479 | struct LibusbSsplusSublinkAttribute {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsplusUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | struct SsplusUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerIdDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:497:8
[INFO] [stdout]     |
[INFO] [stdout] 497 | struct ContainerIdDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBPlatformDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:505:8
[INFO] [stdout]     |
[INFO] [stdout] 505 | struct USBPlatformDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Packet` is never constructed
[INFO] [stdout]  --> src/device.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Packet {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `InterfaceExpert` is never used
[INFO] [stdout]   --> src/device.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | trait InterfaceExpert {}
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Endpoint` is never constructed
[INFO] [stdout]   --> src/device.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Endpoint {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interface` is never constructed
[INFO] [stdout]   --> src/device.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Interface {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Configuration` is never constructed
[INFO] [stdout]   --> src/device.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Configuration {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Device` is never constructed
[INFO] [stdout]   --> src/device.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Device {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_devices` is never used
[INFO] [stdout]   --> src/device.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn parse_devices(packets: Vec<EnhancedPacketBlock>) -> HashMap<u8, Vec<Device>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:527:22
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here              ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packets`
[INFO] [stdout]   --> tests/test_parse.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let packets = reader.read();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_packets`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[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: `USBRequestBlock`
[INFO] [stdout]  --> src/device.rs:5:75
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) use crate::usb_request_block::{USBConfiguration, USBInterface, USBRequestBlock, USBControlRequest, USBControlRequestType};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArgMatches`
[INFO] [stdout]  --> src/main.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use clap::{arg, ArgMatches, Command};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[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: `USBRequestBlock`
[INFO] [stdout]  --> src/device.rs:5:75
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) use crate::usb_request_block::{USBConfiguration, USBInterface, USBRequestBlock, USBControlRequest, USBControlRequestType};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArgMatches`
[INFO] [stdout]  --> src/main.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use clap::{arg, ArgMatches, Command};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBDeviceDescriptor` is more private than the item `USBDescriptor::Device::0`
[INFO] [stdout]    --> src/usb_request_block.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Device(USBDeviceDescriptor),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Device::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBDeviceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:323:1
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBConfigDescriptor` is more private than the item `USBDescriptor::Configuration::0`
[INFO] [stdout]    --> src/usb_request_block.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     Configuration(USBConfigDescriptor),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Configuration::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBConfigDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:394:1
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceDescriptor` is more private than the item `USBDescriptor::Interface::0`
[INFO] [stdout]    --> src/usb_request_block.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Interface(InterfaceDescriptor),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Interface::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EndpointDescriptor` is more private than the item `USBDescriptor::Endpoint::0`
[INFO] [stdout]    --> src/usb_request_block.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Endpoint(EndpointDescriptor),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Endpoint::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EndpointDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceAssociationDescriptor` is more private than the item `USBDescriptor::InterfaceAssociation::0`
[INFO] [stdout]    --> src/usb_request_block.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |     InterfaceAssociation(InterfaceAssociationDescriptor),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::InterfaceAssociation::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceAssociationDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:355:1
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BinaryObjectStoreDescriptor` is more private than the item `USBDescriptor::BOS::0`
[INFO] [stdout]    --> src/usb_request_block.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     BOS(BinaryObjectStoreDescriptor),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::BOS::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BinaryObjectStoreDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BosDevCapabilityDescriptor` is more private than the item `USBDescriptor::DeviceCapability::0`
[INFO] [stdout]    --> src/usb_request_block.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     DeviceCapability(BosDevCapabilityDescriptor),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::DeviceCapability::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BosDevCapabilityDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:417:1
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DirectionNone` is never constructed
[INFO] [stdout]  --> src/usb_request_block.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum USBDirection {
[INFO] [stdout]   |          ------------ variant in this enum
[INFO] [stdout] 8 |     DirectionNone,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `USBDirection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Isochronous` and `Interrupt` are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum USBTransferType {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Isochronous,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     Interrupt,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBTransferType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum USBFunction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 24 |     UsbDefaultMaxPacket = 64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     SelectConfiguration = 0x0000,
[INFO] [stdout] 26 |     SelectInterface = 0x0001,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     AbortPipe = 0x0002,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 28 |     TakeFrameLengthControl = 0x0003,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     ReleaseFrameLengthControl = 0x0004,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     GetFrameLength = 0x0005,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     SetFrameLength = 0x0006,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     GetCurrentFrameNumber = 0x0007,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     IsochTransfer = 0x000A,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     GetDescriptorFromDevice = 0x000B,
[INFO] [stdout] 38 |     SetDescriptorToDevice = 0x000C,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     SetFeatureToDevice = 0x000D,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     SetFeatureToInterface = 0x000E,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     SetFeatureToEndpoint = 0x000F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     ClearFeatureToDevice = 0x0010,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     ClearFeatureToInterface = 0x0011,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     ClearFeatureToEndpoint = 0x0012,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     GetStatusFromDevice = 0x0013,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     GetStatusFromInterface = 0x0014,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     GetStatusFromEndpoint = 0x0015,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     VendorDevice = 0x0017,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 49 |     VendorInterface = 0x0018,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     VendorEndpoint = 0x0019,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     ClassDevice = 0x001A,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 52 |     ClassInterface = 0x001B,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     ClassEndpoint = 0x001C,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 54 |     SyncResetPipeAndClearStall = 0x001E,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     ClassOther = 0x001F,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 56 |     VendorOther = 0x0020,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 57 |     GetStatusFromOther = 0x0021,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     ClearFeatureToOther = 0x0022,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     UrbFunctionSetFeatureToOther = 0x0023,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     GetDescriptorFromEndpoint = 0x0024,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     SetDescriptorToEndpoint = 0x0025,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     GetConfiguration = 0x0026,
[INFO] [stdout] 63 |     GetInterface = 0x0027,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 64 |     GetDescriptorFromInterface = 0x0028,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     SetDescriptorToInterface = 0x0029,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Status` and `Complete` are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum USBControlStage {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 73 |     Status,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 74 |     Complete,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBControlStage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBClassCode` is never used
[INFO] [stdout]   --> src/usb_request_block.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum USBClassCode {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBDescriptorType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub enum USBDescriptorType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBDescriptor` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:119:10
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum USBDescriptor {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBBinaryObjectStoreType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:133:6
[INFO] [stdout]     |
[INFO] [stdout] 133 | enum USBBinaryObjectStoreType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const DEVICE_SIZE: u8 = 18;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | const CONFIG_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const INTERFACE_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ENDPOINT_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_AUDIO_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const ENDPOINT_AUDIO_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUB_NONVAR_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const HUB_NONVAR_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SS_ENDPOINT_COMPANION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const SS_ENDPOINT_COMPANION_SIZE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOS_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const BOS_SIZE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const DEVICE_CAPABILITY_SIZE: u8 = 3;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_ASSOCIATION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | const INTERFACE_ASSOCIATION_SIZE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_USB_2_0_EXTENSION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 | const BT_USB_2_0_EXTENSION_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | const BT_SS_USB_DEVICE_CAPABILITY_SIZE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE: u8 = 12;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_CONTAINER_ID_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:155:7
[INFO] [stdout]     |
[INFO] [stdout] 155 | const BT_CONTAINER_ID_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_PLATFORM_DESCRIPTOR_MIN_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 | const BT_PLATFORM_DESCRIPTOR_MIN_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_ADDRESS_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:158:7
[INFO] [stdout]     |
[INFO] [stdout] 158 | const ENDPOINT_ADDRESS_MASK: u8 = 0x0f;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_DIR_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:159:7
[INFO] [stdout]     |
[INFO] [stdout] 159 | const ENDPOINT_DIR_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_IN_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:170:7
[INFO] [stdout]     |
[INFO] [stdout] 170 | const USB_ENDPOINT_IN_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_OUT_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:171:7
[INFO] [stdout]     |
[INFO] [stdout] 171 | const USB_ENDPOINT_OUT_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_ID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const USB_ENDPOINT_ID: u8 = 0x7F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_VID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:174:7
[INFO] [stdout]     |
[INFO] [stdout] 174 | const APPLE_VID: u16 = 0x05ac;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_CLASS_APPLICATION_SPECIFIC` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 | const USB_CLASS_APPLICATION_SPECIFIC: u8 = 0xFF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_SUBCLASS_DFU` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const USB_SUBCLASS_DFU: u8 = 0x01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_SUBCLASS_USBMUX` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:177:7
[INFO] [stdout]     |
[INFO] [stdout] 177 | const APPLE_SUBCLASS_USBMUX: u8 = 0xFE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_PROTOCOL_USBMUX2` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const APPLE_PROTOCOL_USBMUX2: u8 = 0x02;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSFER_TYPE_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const TRANSFER_TYPE_MASK: u8 = 0x03;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `URBRecordType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:182:6
[INFO] [stdout]     |
[INFO] [stdout] 182 | enum URBRecordType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppleUSBDeviceID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 194 | enum AppleUSBDeviceID {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBSetAddress` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct USBSetAddress {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBGetDeviceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct USBGetDeviceDescriptor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `speed` and `duration_ns` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub struct USBRequestBlock {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 233 |     pub direction: USBDirection,
[INFO] [stdout] 234 |     pub speed: USBSpeed,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub duration_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBRequestBlock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_unconfigured`, `is_control`, and `is_default` are never used
[INFO] [stdout]    --> src/usb_request_block.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl USBRequestBlock {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 247 |     pub fn is_unconfigured(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn is_control(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn is_default(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBDevice` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct USBDevice {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBDeviceDescriptor` is more private than the item `USBDescriptor::Device::0`
[INFO] [stdout]    --> src/usb_request_block.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 |     Device(USBDeviceDescriptor),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Device::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBDeviceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:323:1
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interfaces` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct USBConfiguration {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 269 |     interfaces: Map<u8, USBInterface>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `configuration_id`, `input_id`, and `output_id` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct USBInterface {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 273 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     input_id: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 275 |     output_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBEndpoint` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct USBEndpoint {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `USBConfigDescriptor` is more private than the item `USBDescriptor::Configuration::0`
[INFO] [stdout]    --> src/usb_request_block.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |     Configuration(USBConfigDescriptor),
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Configuration::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `USBConfigDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:394:1
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:287:1
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub enum USBControlRequestType {
[INFO] [stdout]     |          --------------------- variants in this enum
[INFO] [stdout] 287 | UsbReqGetStatus =   0x00,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 288 | UsbReqClearFeature =      0x01,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 289 | UsbReqSetFeature =    0x03,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | UsbReqSetAddress =   0x05,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 291 | UsbReqGetDescriptor =     0x06,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 292 | UsbReqSetDescriptor =    0x07,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 293 |  UsbReqGetConfiguration =   0x08,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 294 | UsbReqSetConfiguration =  0x09,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 295 |  UsbReqGetInterface =  0x0A,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | UsbReqSetInterface =      0x0B,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 297 |  UsbReqSynchFrame =   0x0C,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 298 | UsbReqSetSel =  0x30,
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] 299 | UsbReqSetEncryption =     0x0D,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 300 | UsbReqGetEncryption =    0x0E,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 301 |  UsbReqSetHandshake =   0x0F,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 302 | UsbReqGetHandshake =   0x10,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 303 | UsbReqSetConnection =     0x11,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 304 |  UsbReqSetSecurityData =  0x12,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 305 | UsbReqGetSecurityData = 0x13,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 306 | UsbReqSetWusbData =  0x14,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 307 |  UsbReqLoopbackDataWrite =  0x15,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 308 | UsbReqLoopbackDataRead =  0x16,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 309 |  UsbReqSetInterfaceDs =  0x17,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBControlRequestType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceDescriptor` is more private than the item `USBDescriptor::Interface::0`
[INFO] [stdout]    --> src/usb_request_block.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout] 123 |     Interface(InterfaceDescriptor),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Interface::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:372:1
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `EndpointDescriptor` is more private than the item `USBDescriptor::Endpoint::0`
[INFO] [stdout]    --> src/usb_request_block.rs:124:14
[INFO] [stdout]     |
[INFO] [stdout] 124 |     Endpoint(EndpointDescriptor),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ field `USBDescriptor::Endpoint::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `EndpointDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBDeviceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `InterfaceAssociationDescriptor` is more private than the item `USBDescriptor::InterfaceAssociation::0`
[INFO] [stdout]    --> src/usb_request_block.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 |     InterfaceAssociation(InterfaceAssociationDescriptor),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::InterfaceAssociation::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `InterfaceAssociationDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:355:1
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EndpointDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceAssociationDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceAssociationDescriptorArray` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:366:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | struct InterfaceAssociationDescriptorArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:372:8
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBInterfaceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | struct USBInterfaceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBConfigDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BinaryObjectStoreDescriptor` is more private than the item `USBDescriptor::BOS::0`
[INFO] [stdout]    --> src/usb_request_block.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     BOS(BinaryObjectStoreDescriptor),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::BOS::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BinaryObjectStoreDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:425:1
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsEndpointCompanionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | struct SsEndpointCompanionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BosDevCapabilityDescriptor` is more private than the item `USBDescriptor::DeviceCapability::0`
[INFO] [stdout]    --> src/usb_request_block.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     DeviceCapability(BosDevCapabilityDescriptor),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `USBDescriptor::DeviceCapability::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BosDevCapabilityDescriptor` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/usb_request_block.rs:417:1
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BosDevCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:417:8
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryObjectStoreDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbUsb20ExtensionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:433:8
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct LibusbUsb20ExtensionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | struct SsUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperSpeedPlusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:451:6
[INFO] [stdout]     |
[INFO] [stdout] 451 | enum SuperSpeedPlusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeSublinkDirection` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:456:6
[INFO] [stdout]     |
[INFO] [stdout] 456 | enum SuperspeedplusSublinkAttributeSublinkDirection {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:461:6
[INFO] [stdout]     |
[INFO] [stdout] 461 | enum SuperspeedplusSublinkAttributeExponent {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeLinkProtocol` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:468:6
[INFO] [stdout]     |
[INFO] [stdout] 468 | enum SuperspeedplusSublinkAttributeLinkProtocol {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:473:6
[INFO] [stdout]     |
[INFO] [stdout] 473 | enum LibusbSuperspeedplusSublinkAttributeExponent { LibusbSsplusAttrExpBps = 0, LibusbSsplusAttrExpKbs = 1, LibusbSsplusAttrExpMbs ...
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:475:6
[INFO] [stdout]     |
[INFO] [stdout] 475 | enum LibusbSuperspeedplusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbSsplusSublinkAttribute` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 479 | struct LibusbSsplusSublinkAttribute {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsplusUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | struct SsplusUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerIdDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:497:8
[INFO] [stdout]     |
[INFO] [stdout] 497 | struct ContainerIdDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBPlatformDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:505:8
[INFO] [stdout]     |
[INFO] [stdout] 505 | struct USBPlatformDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ChipK`, `TinyK`, and `TinyJ` are never constructed
[INFO] [stdout]   --> src/total_phase_parser.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum USB3Signal {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 53 |     ChipK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     TinyK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 55 |     ChirpK,
[INFO] [stdout] 56 |     TinyJ,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USB3Signal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DirectionNone` is never constructed
[INFO] [stdout]  --> src/usb_request_block.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum USBDirection {
[INFO] [stdout]   |          ------------ variant in this enum
[INFO] [stdout] 8 |     DirectionNone,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `USBDirection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Isochronous` and `Interrupt` are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum USBTransferType {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Isochronous,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 18 |     Interrupt,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBTransferType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/total_phase_parser.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     PartialData(Vec<u8>),
[INFO] [stdout]     |     ----------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataRecord` 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] 132 -     PartialData(Vec<u8>),
[INFO] [stdout] 132 +     PartialData(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/total_phase_parser.rs:133:10
[INFO] [stdout]     |
[INFO] [stdout] 133 |     Data(Vec<u8>),
[INFO] [stdout]     |     ---- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataRecord` 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] 133 -     Data(Vec<u8>),
[INFO] [stdout] 133 +     Data(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `csv_path` and `bin_path` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TotalPhaseReader {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 137 |     csv_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 138 |     bin_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `short_data` and `children` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct USBPacket<'a> {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub short_data: DataRecord,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub children: Vec<&'a USBPacket<'a>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_child` and `dict_data` are never used
[INFO] [stdout]    --> src/total_phase_parser.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl<'a> USBPacket<'a> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn add_child(&mut self, child: &'a USBPacket) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn dict_data(&self) -> HashMap<&str, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read_data` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:555:12
[INFO] [stdout]     |
[INFO] [stdout] 488 | impl TotalPhaseReader {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_data(&mut self, packet: USBPacket) -> Option<Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_field` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:728:4
[INFO] [stdout]     |
[INFO] [stdout] 728 | fn record_field<'a>(row: &'a HashMap<String, String>, key: &str) -> &'a str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]  --> src/device.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Packet {
[INFO] [stdout]   |        ------ field in this struct
[INFO] [stdout] 8 |     data: Vec<u8>
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint_id` and `packets` are never read
[INFO] [stdout]   --> src/device.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Endpoint {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 12 |     endpoint_id: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 13 |     packets: Vec<Packet>
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `descriptor`, `endpoints`, and `expert` are never read
[INFO] [stdout]   --> src/device.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Interface {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 17 |   descriptor:  USBInterface,
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout] 18 |     endpoints: HashMap<u8, Endpoint>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     expert: Option<Box<dyn InterfaceExpert>>
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `descriptor`, `expert`, and `interfaces` are never read
[INFO] [stdout]   --> src/device.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Configuration {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 23 |     descriptor: USBConfiguration,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 24 |     expert: Option<Box<dyn InterfaceExpert>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     interfaces: HashMap<u8, Interface>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id`, `current_configuration`, `configurations`, and `strings` are never read
[INFO] [stdout]   --> src/device.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Device {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 29 |     device_id: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     current_configuration: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     configurations: HashMap<u8, Configuration>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     strings: HashMap<u8, HashMap<u8, String>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:527:22
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here              ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum USBFunction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 24 |     UsbDefaultMaxPacket = 64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     SelectConfiguration = 0x0000,
[INFO] [stdout] 26 |     SelectInterface = 0x0001,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     AbortPipe = 0x0002,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 28 |     TakeFrameLengthControl = 0x0003,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     ReleaseFrameLengthControl = 0x0004,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     GetFrameLength = 0x0005,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     SetFrameLength = 0x0006,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     GetCurrentFrameNumber = 0x0007,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     IsochTransfer = 0x000A,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     GetDescriptorFromDevice = 0x000B,
[INFO] [stdout] 38 |     SetDescriptorToDevice = 0x000C,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     SetFeatureToDevice = 0x000D,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     SetFeatureToInterface = 0x000E,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     SetFeatureToEndpoint = 0x000F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     ClearFeatureToDevice = 0x0010,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     ClearFeatureToInterface = 0x0011,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     ClearFeatureToEndpoint = 0x0012,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     GetStatusFromDevice = 0x0013,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     GetStatusFromInterface = 0x0014,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     GetStatusFromEndpoint = 0x0015,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     VendorDevice = 0x0017,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 49 |     VendorInterface = 0x0018,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     VendorEndpoint = 0x0019,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     ClassDevice = 0x001A,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 52 |     ClassInterface = 0x001B,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     ClassEndpoint = 0x001C,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 54 |     SyncResetPipeAndClearStall = 0x001E,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     ClassOther = 0x001F,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 56 |     VendorOther = 0x0020,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 57 |     GetStatusFromOther = 0x0021,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     ClearFeatureToOther = 0x0022,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     UrbFunctionSetFeatureToOther = 0x0023,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     GetDescriptorFromEndpoint = 0x0024,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     SetDescriptorToEndpoint = 0x0025,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     GetConfiguration = 0x0026,
[INFO] [stdout] 63 |     GetInterface = 0x0027,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 64 |     GetDescriptorFromInterface = 0x0028,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     SetDescriptorToInterface = 0x0029,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Status` and `Complete` are never constructed
[INFO] [stdout]   --> src/usb_request_block.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum USBControlStage {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 73 |     Status,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 74 |     Complete,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USBControlStage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBClassCode` is never used
[INFO] [stdout]   --> src/usb_request_block.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum USBClassCode {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBDescriptorType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub enum USBDescriptorType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBDescriptor` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:119:10
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum USBDescriptor {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `USBBinaryObjectStoreType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:133:6
[INFO] [stdout]     |
[INFO] [stdout] 133 | enum USBBinaryObjectStoreType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const DEVICE_SIZE: u8 = 18;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:141:7
[INFO] [stdout]     |
[INFO] [stdout] 141 | const CONFIG_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:142:7
[INFO] [stdout]     |
[INFO] [stdout] 142 | const INTERFACE_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ENDPOINT_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_AUDIO_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const ENDPOINT_AUDIO_SIZE: u8 = 9;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUB_NONVAR_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const HUB_NONVAR_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SS_ENDPOINT_COMPANION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:146:7
[INFO] [stdout]     |
[INFO] [stdout] 146 | const SS_ENDPOINT_COMPANION_SIZE: u8 = 6;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOS_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:147:7
[INFO] [stdout]     |
[INFO] [stdout] 147 | const BOS_SIZE: u8 = 5;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:148:7
[INFO] [stdout]     |
[INFO] [stdout] 148 | const DEVICE_CAPABILITY_SIZE: u8 = 3;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERFACE_ASSOCIATION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | const INTERFACE_ASSOCIATION_SIZE: u8 = 8;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_USB_2_0_EXTENSION_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 | const BT_USB_2_0_EXTENSION_SIZE: u8 = 7;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | const BT_SS_USB_DEVICE_CAPABILITY_SIZE: u8 = 10;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:154:7
[INFO] [stdout]     |
[INFO] [stdout] 154 | const BT_SSPLUS_USB_DEVICE_CAPABILITY_SIZE: u8 = 12;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_CONTAINER_ID_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:155:7
[INFO] [stdout]     |
[INFO] [stdout] 155 | const BT_CONTAINER_ID_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BT_PLATFORM_DESCRIPTOR_MIN_SIZE` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 | const BT_PLATFORM_DESCRIPTOR_MIN_SIZE: u8 = 20;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_ADDRESS_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:158:7
[INFO] [stdout]     |
[INFO] [stdout] 158 | const ENDPOINT_ADDRESS_MASK: u8 = 0x0f;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENDPOINT_DIR_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:159:7
[INFO] [stdout]     |
[INFO] [stdout] 159 | const ENDPOINT_DIR_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_IN_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:170:7
[INFO] [stdout]     |
[INFO] [stdout] 170 | const USB_ENDPOINT_IN_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_OUT_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:171:7
[INFO] [stdout]     |
[INFO] [stdout] 171 | const USB_ENDPOINT_OUT_MASK: u8 = 0x80;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_ENDPOINT_ID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const USB_ENDPOINT_ID: u8 = 0x7F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_VID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:174:7
[INFO] [stdout]     |
[INFO] [stdout] 174 | const APPLE_VID: u16 = 0x05ac;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_CLASS_APPLICATION_SPECIFIC` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:175:7
[INFO] [stdout]     |
[INFO] [stdout] 175 | const USB_CLASS_APPLICATION_SPECIFIC: u8 = 0xFF;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USB_SUBCLASS_DFU` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:176:7
[INFO] [stdout]     |
[INFO] [stdout] 176 | const USB_SUBCLASS_DFU: u8 = 0x01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_SUBCLASS_USBMUX` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:177:7
[INFO] [stdout]     |
[INFO] [stdout] 177 | const APPLE_SUBCLASS_USBMUX: u8 = 0xFE;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPLE_PROTOCOL_USBMUX2` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const APPLE_PROTOCOL_USBMUX2: u8 = 0x02;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSFER_TYPE_MASK` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | const TRANSFER_TYPE_MASK: u8 = 0x03;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `URBRecordType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:182:6
[INFO] [stdout]     |
[INFO] [stdout] 182 | enum URBRecordType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppleUSBDeviceID` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 194 | enum AppleUSBDeviceID {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBSetAddress` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct USBSetAddress {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBGetDeviceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct USBGetDeviceDescriptor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `speed` and `duration_ns` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub struct USBRequestBlock {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 233 |     pub direction: USBDirection,
[INFO] [stdout] 234 |     pub speed: USBSpeed,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub duration_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBRequestBlock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_unconfigured`, `is_control`, and `is_default` are never used
[INFO] [stdout]    --> src/usb_request_block.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl USBRequestBlock {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 247 |     pub fn is_unconfigured(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn is_control(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn is_default(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBDevice` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct USBDevice {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `interfaces` is never read
[INFO] [stdout]    --> src/usb_request_block.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct USBConfiguration {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 269 |     interfaces: Map<u8, USBInterface>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `configuration_id`, `input_id`, and `output_id` are never read
[INFO] [stdout]    --> src/usb_request_block.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct USBInterface {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 273 |     configuration_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 274 |     input_id: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 275 |     output_id: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBEndpoint` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub struct USBEndpoint {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:287:1
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub enum USBControlRequestType {
[INFO] [stdout]     |          --------------------- variants in this enum
[INFO] [stdout] 287 | UsbReqGetStatus =   0x00,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 288 | UsbReqClearFeature =      0x01,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 289 | UsbReqSetFeature =    0x03,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | UsbReqSetAddress =   0x05,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 291 | UsbReqGetDescriptor =     0x06,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 292 | UsbReqSetDescriptor =    0x07,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 293 |  UsbReqGetConfiguration =   0x08,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 294 | UsbReqSetConfiguration =  0x09,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 295 |  UsbReqGetInterface =  0x0A,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 296 | UsbReqSetInterface =      0x0B,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 297 |  UsbReqSynchFrame =   0x0C,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 298 | UsbReqSetSel =  0x30,
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] 299 | UsbReqSetEncryption =     0x0D,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 300 | UsbReqGetEncryption =    0x0E,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 301 |  UsbReqSetHandshake =   0x0F,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 302 | UsbReqGetHandshake =   0x10,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 303 | UsbReqSetConnection =     0x11,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 304 |  UsbReqSetSecurityData =  0x12,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 305 | UsbReqGetSecurityData = 0x13,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 306 | UsbReqSetWusbData =  0x14,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 307 |  UsbReqLoopbackDataWrite =  0x15,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 308 | UsbReqLoopbackDataRead =  0x16,
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 309 |  UsbReqSetInterfaceDs =  0x17,
[INFO] [stdout]     |  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `USBControlRequestType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBDeviceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | struct USBDeviceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EndpointDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout] 341 | struct EndpointDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceAssociationDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | struct InterfaceAssociationDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceAssociationDescriptorArray` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:366:8
[INFO] [stdout]     |
[INFO] [stdout] 366 | struct InterfaceAssociationDescriptorArray {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InterfaceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:372:8
[INFO] [stdout]     |
[INFO] [stdout] 372 | struct InterfaceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBInterfaceDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | struct USBInterfaceDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBConfigDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout] 394 | struct USBConfigDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsEndpointCompanionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | struct SsEndpointCompanionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BosDevCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:417:8
[INFO] [stdout]     |
[INFO] [stdout] 417 | struct BosDevCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryObjectStoreDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 | struct BinaryObjectStoreDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbUsb20ExtensionDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:433:8
[INFO] [stdout]     |
[INFO] [stdout] 433 | struct LibusbUsb20ExtensionDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:440:8
[INFO] [stdout]     |
[INFO] [stdout] 440 | struct SsUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperSpeedPlusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:451:6
[INFO] [stdout]     |
[INFO] [stdout] 451 | enum SuperSpeedPlusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeSublinkDirection` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:456:6
[INFO] [stdout]     |
[INFO] [stdout] 456 | enum SuperspeedplusSublinkAttributeSublinkDirection {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:461:6
[INFO] [stdout]     |
[INFO] [stdout] 461 | enum SuperspeedplusSublinkAttributeExponent {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuperspeedplusSublinkAttributeLinkProtocol` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:468:6
[INFO] [stdout]     |
[INFO] [stdout] 468 | enum SuperspeedplusSublinkAttributeLinkProtocol {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeExponent` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:473:6
[INFO] [stdout]     |
[INFO] [stdout] 473 | enum LibusbSuperspeedplusSublinkAttributeExponent { LibusbSsplusAttrExpBps = 0, LibusbSsplusAttrExpKbs = 1, LibusbSsplusAttrExpMbs ...
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibusbSuperspeedplusSublinkAttributeSublinkType` is never used
[INFO] [stdout]    --> src/usb_request_block.rs:475:6
[INFO] [stdout]     |
[INFO] [stdout] 475 | enum LibusbSuperspeedplusSublinkAttributeSublinkType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibusbSsplusSublinkAttribute` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 479 | struct LibusbSsplusSublinkAttribute {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SsplusUsbDeviceCapabilityDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:488:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | struct SsplusUsbDeviceCapabilityDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContainerIdDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:497:8
[INFO] [stdout]     |
[INFO] [stdout] 497 | struct ContainerIdDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `USBPlatformDescriptor` is never constructed
[INFO] [stdout]    --> src/usb_request_block.rs:505:8
[INFO] [stdout]     |
[INFO] [stdout] 505 | struct USBPlatformDescriptor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ChipK`, `TinyK`, and `TinyJ` are never constructed
[INFO] [stdout]   --> src/total_phase_parser.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub enum USB3Signal {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 53 |     ChipK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     TinyK,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 55 |     ChirpK,
[INFO] [stdout] 56 |     TinyJ,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `USB3Signal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/total_phase_parser.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     PartialData(Vec<u8>),
[INFO] [stdout]     |     ----------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataRecord` 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] 132 -     PartialData(Vec<u8>),
[INFO] [stdout] 132 +     PartialData(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/total_phase_parser.rs:133:10
[INFO] [stdout]     |
[INFO] [stdout] 133 |     Data(Vec<u8>),
[INFO] [stdout]     |     ---- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataRecord` 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] 133 -     Data(Vec<u8>),
[INFO] [stdout] 133 +     Data(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `csv_path` and `bin_path` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TotalPhaseReader {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 137 |     csv_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 138 |     bin_path: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `short_data` and `children` are never read
[INFO] [stdout]    --> src/total_phase_parser.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct USBPacket<'a> {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub short_data: DataRecord,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub children: Vec<&'a USBPacket<'a>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_child` and `dict_data` are never used
[INFO] [stdout]    --> src/total_phase_parser.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl<'a> USBPacket<'a> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn add_child(&mut self, child: &'a USBPacket) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn dict_data(&self) -> HashMap<&str, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `read_data` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:555:12
[INFO] [stdout]     |
[INFO] [stdout] 488 | impl TotalPhaseReader {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_data(&mut self, packet: USBPacket) -> Option<Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_field` is never used
[INFO] [stdout]    --> src/total_phase_parser.rs:728:4
[INFO] [stdout]     |
[INFO] [stdout] 728 | fn record_field<'a>(row: &'a HashMap<String, String>, key: &str) -> &'a str {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]  --> src/device.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Packet {
[INFO] [stdout]   |        ------ field in this struct
[INFO] [stdout] 8 |     data: Vec<u8>
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `endpoint_id` and `packets` are never read
[INFO] [stdout]   --> src/device.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Endpoint {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 12 |     endpoint_id: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 13 |     packets: Vec<Packet>
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `descriptor`, `endpoints`, and `expert` are never read
[INFO] [stdout]   --> src/device.rs:17:3
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Interface {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 17 |   descriptor:  USBInterface,
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout] 18 |     endpoints: HashMap<u8, Endpoint>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     expert: Option<Box<dyn InterfaceExpert>>
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `descriptor`, `expert`, and `interfaces` are never read
[INFO] [stdout]   --> src/device.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Configuration {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 23 |     descriptor: USBConfiguration,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 24 |     expert: Option<Box<dyn InterfaceExpert>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     interfaces: HashMap<u8, Interface>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device_id`, `current_configuration`, `configurations`, and `strings` are never read
[INFO] [stdout]   --> src/device.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Device {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 29 |     device_id: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     current_configuration: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     configurations: HashMap<u8, Configuration>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     strings: HashMap<u8, HashMap<u8, String>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:512:17
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                 ^^^^^^^^^                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 512 |     pub fn read(&mut self) -> Result<Vec<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/total_phase_parser.rs:527:22
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket>, Box<dyn Error>> {
[INFO] [stdout]     |                      ^^^^^^^^^ the lifetime is elided here              ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 527 |     pub fn read_tree(&mut self, interesting_only: bool) -> Result<Arena<USBPacket<'_>>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.40s
[INFO] running `Command { std: "docker" "inspect" "4bc91d26e1441f31b23cb139a99e2b22e9fd07ced0c2d1d3ee617f7589912099", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bc91d26e1441f31b23cb139a99e2b22e9fd07ced0c2d1d3ee617f7589912099", kill_on_drop: false }`
[INFO] [stdout] 4bc91d26e1441f31b23cb139a99e2b22e9fd07ced0c2d1d3ee617f7589912099
