[INFO] fetching crate libautomotive 0.1.2... [INFO] checking libautomotive-0.1.2 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] extracting crate libautomotive 0.1.2 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate libautomotive 0.1.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate libautomotive 0.1.2 [INFO] tweaked toml for crates.io crate libautomotive 0.1.2 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate libautomotive 0.1.2 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate libautomotive 0.1.2 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f45facb517ead8fdc7a4803d02aacb39af01b89c2bd1c0f0e07659806013a30c [INFO] running `Command { std: "docker" "start" "-a" "f45facb517ead8fdc7a4803d02aacb39af01b89c2bd1c0f0e07659806013a30c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f45facb517ead8fdc7a4803d02aacb39af01b89c2bd1c0f0e07659806013a30c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f45facb517ead8fdc7a4803d02aacb39af01b89c2bd1c0f0e07659806013a30c", kill_on_drop: false }` [INFO] [stdout] f45facb517ead8fdc7a4803d02aacb39af01b89c2bd1c0f0e07659806013a30c [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f4c647d6eecb7a3db0247dffd93bda1550c554eb958d0aa32ac22032f847f2c0 [INFO] running `Command { std: "docker" "start" "-a" "f4c647d6eecb7a3db0247dffd93bda1550c554eb958d0aa32ac22032f847f2c0", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking libautomotive v0.1.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `AutomotiveError` [INFO] [stdout] --> src/physical/mod.rs:41:20 [INFO] [stdout] | [INFO] [stdout] 41 | use crate::error::{AutomotiveError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/transport/doip.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{SocketAddr, TcpStream}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::{Duration, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/transport/lin.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | (!sum as u8) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 263 - (!sum as u8) [INFO] [stdout] 263 + !sum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/transport/lin.rs:274:5 [INFO] [stdout] | [INFO] [stdout] 274 | (!sum as u8) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 274 - (!sum as u8) [INFO] [stdout] 274 + !sum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering` [INFO] [stdout] --> src/transport/tests.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::atomic::{AtomicU32, Ordering}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/transport/tests.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AutomotiveError` [INFO] [stdout] --> src/physical/mod.rs:41:20 [INFO] [stdout] | [INFO] [stdout] 41 | use crate::error::{AutomotiveError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/transport/doip.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{SocketAddr, TcpStream}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::{Duration, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/transport/lin.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | (!sum as u8) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 263 - (!sum as u8) [INFO] [stdout] 263 + !sum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/transport/lin.rs:274:5 [INFO] [stdout] | [INFO] [stdout] 274 | (!sum as u8) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 274 - (!sum as u8) [INFO] [stdout] 274 + !sum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/application/uds.rs:427:12 [INFO] [stdout] | [INFO] [stdout] 427 | fn new(config: Self::Config) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/application/uds.rs:427:12 [INFO] [stdout] | [INFO] [stdout] 427 | fn new(config: Self::Config) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/transport/doip.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 179 | fn new(config: Self::Config) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/doip.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(mut stream) = self.stream.take() { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut frame = Frame { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | let mut cts_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:222:25 [INFO] [stdout] | [INFO] [stdout] 222 | let mut ack_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:334:17 [INFO] [stdout] | [INFO] [stdout] 334 | let mut rts_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/transport/doip.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 179 | fn new(config: Self::Config) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/doip.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(mut stream) = self.stream.take() { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout_ms` [INFO] [stdout] --> src/transport/lin.rs:154:37 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn read_response(&mut self, timeout_ms: u32) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:110:13 [INFO] [stdout] | [INFO] [stdout] 110 | let mut frame = Frame { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | let mut cts_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:222:25 [INFO] [stdout] | [INFO] [stdout] 222 | let mut ack_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/isobus.rs:334:17 [INFO] [stdout] | [INFO] [stdout] 334 | let mut rts_frame = Frame { [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/tests.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | let mut mock = MockPhysical::new(Some(Box::new(|_frame: &Frame| { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/application/obdii.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 295 | pub struct Obd { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 296 | config: ObdConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `handling_session_timing` is never read [INFO] [stdout] --> src/application/uds.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct Uds { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 138 | handling_session_timing: bool, // Flag to prevent recursive session timing handling [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_session_timing` is never used [INFO] [stdout] --> src/application/uds.rs:397:8 [INFO] [stdout] | [INFO] [stdout] 141 | impl Uds { [INFO] [stdout] | ------------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 397 | fn handle_session_timing(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_REQUEST` is never used [INFO] [stdout] --> src/network/j1939.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const PGN_REQUEST: u32 = 0xEA00; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tail` is never read [INFO] [stdout] --> src/physical/can.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 78 | struct RxQueue { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 81 | tail: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RxQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push` is never used [INFO] [stdout] --> src/physical/can.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 122 | impl RxQueue { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 132 | fn push(&mut self, frame: Frame) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tail` is never read [INFO] [stdout] --> src/physical/canfd.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 62 | struct RxQueue { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 65 | tail: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RxQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `head` is never read [INFO] [stdout] --> src/physical/canfd.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 70 | struct TxEventQueue { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 71 | events: Vec, [INFO] [stdout] 72 | head: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TxEventQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push` is never used [INFO] [stdout] --> src/physical/canfd.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 152 | impl RxQueue { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 162 | fn push(&mut self, frame: Frame) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pop` is never used [INFO] [stdout] --> src/physical/canfd.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 189 | impl TxEventQueue { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 212 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOIP_VEHICLE_IDENTIFICATION_REQUEST` is never used [INFO] [stdout] --> src/transport/doip.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const DOIP_VEHICLE_IDENTIFICATION_REQUEST: u16 = 0x0001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOIP_VEHICLE_IDENTIFICATION_RESPONSE` is never used [INFO] [stdout] --> src/transport/doip.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const DOIP_VEHICLE_IDENTIFICATION_RESPONSE: u16 = 0x0002; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `physical` is never read [INFO] [stdout] --> src/transport/doip.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct DoIP { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 111 | config: DoIPConfig, [INFO] [stdout] 112 | physical: P, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ISOBUS_PROTOCOL_VERSION` is never used [INFO] [stdout] --> src/transport/isobus.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const ISOBUS_PROTOCOL_VERSION: u8 = 0x03; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_REQUEST` is never used [INFO] [stdout] --> src/transport/isobus.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const PGN_REQUEST: u32 = 0x00EA00; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_TRANSPORT_PROTOCOL_DATA` is never used [INFO] [stdout] --> src/transport/isobus.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const PGN_TRANSPORT_PROTOCOL_DATA: u32 = 0x00EB00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_DIAGNOSTIC_MESSAGE` is never used [INFO] [stdout] --> src/transport/isobus.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const PGN_DIAGNOSTIC_MESSAGE: u32 = 0x00FECA; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_CTS` is never used [INFO] [stdout] --> src/transport/isobus.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const TP_CM_CTS: u8 = 0x11; // Clear to Send [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_EndOfMsgACK` is never used [INFO] [stdout] --> src/transport/isobus.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_BAM` is never used [INFO] [stdout] --> src/transport/isobus.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const TP_CM_BAM: u8 = 0x20; // Broadcast Announce Message [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_ABORT` is never used [INFO] [stdout] --> src/transport/isobus.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const TP_CM_ABORT: u8 = 0xFF; // Connection Abort [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T1_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const T1_TIMEOUT: u32 = 750; // Time between CTS and first data packet [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T2_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const T2_TIMEOUT: u32 = 1250; // Time between consecutive data packets [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T3_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | const T3_TIMEOUT: u32 = 1250; // Time between last data packet and EndOfMsgACK [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T4_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const T4_TIMEOUT: u32 = 1050; // Time waiting for CTS [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Idle`, `SendingData`, `WaitingForEndOfMsgACK`, and `ReceivingData` are never constructed [INFO] [stdout] --> src/transport/isobus.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 73 | enum TPSessionState { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 74 | Idle, [INFO] [stdout] | ^^^^ [INFO] [stdout] 75 | WaitingForCTS, [INFO] [stdout] 76 | SendingData, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | WaitingForEndOfMsgACK, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | ReceivingData, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TPSessionState` 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/transport/isobus.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 83 | struct TPSession { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 84 | state: TPSessionState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | total_size: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 86 | total_packets: u8, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 87 | next_packet: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 88 | data: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 89 | source_address: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 90 | destination_address: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 91 | pgn: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] 92 | last_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TPSession` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rx_buffer` is never read [INFO] [stdout] --> src/transport/isobus.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct ISOBUS { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 100 | rx_buffer: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_transport_protocol`, `handle_tp_connection`, `handle_tp_data`, and `handle_diagnostic_message` are never used [INFO] [stdout] --> src/transport/isobus.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 104 | impl ISOBUS { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 127 | fn handle_transport_protocol(&mut self, frame: &Frame) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | fn handle_tp_connection(&mut self, source_address: u8, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | fn handle_tp_data(&mut self, source_address: u8, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | fn handle_diagnostic_message(&mut self, frame: &Frame) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_DM2` is never used [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const PGN_DM2: u32 = 0x00FECB; // DM2: Previously Active Diagnostic Trouble Codes [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lamp_status` is never read [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct DiagnosticTroubleCode { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | lamp_status: LampStatus, // Status of the Malfunction Indicator Lamp [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiagnosticTroubleCode` 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: constant `SF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const SF_PCI: u8 = 0x00; // Single Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FF_PCI: u8 = 0x10; // First Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const CF_PCI: u8 = 0x20; // Consecutive Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FC_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const FC_PCI: u8 = 0x30; // Flow Control [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Break`, `Sync`, `Id`, `Data`, and `Checksum` are never constructed [INFO] [stdout] --> src/transport/lin.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum LinState { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 23 | Idle, [INFO] [stdout] 24 | Break, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 25 | Sync, [INFO] [stdout] | ^^^^ [INFO] [stdout] 26 | Id, [INFO] [stdout] | ^^ [INFO] [stdout] 27 | Data, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | Checksum, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LinState` 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 `state` is never read [INFO] [stdout] --> src/transport/lin.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Lin { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 65 | state: LinState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout_ms` [INFO] [stdout] --> src/transport/lin.rs:154:37 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn read_response(&mut self, timeout_ms: u32) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_EndOfMsgACK` should have an upper case name [INFO] [stdout] --> src/transport/isobus.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 22 - const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] 22 + const TP_CM_END_OF_MSG_ACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `TP_CM_EndOfMsgACK` should have an upper case name [INFO] [stdout] --> src/transport/isobus.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | TP_CM_EndOfMsgACK => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TP_CM_END_OF_MSG_ACK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/application/obdii.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 295 | pub struct Obd { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 296 | config: ObdConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `handling_session_timing` is never read [INFO] [stdout] --> src/application/uds.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct Uds { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 138 | handling_session_timing: bool, // Flag to prevent recursive session timing handling [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_session_timing` is never used [INFO] [stdout] --> src/application/uds.rs:397:8 [INFO] [stdout] | [INFO] [stdout] 141 | impl Uds { [INFO] [stdout] | ------------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 397 | fn handle_session_timing(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_REQUEST` is never used [INFO] [stdout] --> src/network/j1939.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const PGN_REQUEST: u32 = 0xEA00; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tail` is never read [INFO] [stdout] --> src/physical/can.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 78 | struct RxQueue { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 81 | tail: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RxQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push` is never used [INFO] [stdout] --> src/physical/can.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 122 | impl RxQueue { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 132 | fn push(&mut self, frame: Frame) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tail` is never read [INFO] [stdout] --> src/physical/canfd.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 62 | struct RxQueue { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 65 | tail: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RxQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `head` is never read [INFO] [stdout] --> src/physical/canfd.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 70 | struct TxEventQueue { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 71 | events: Vec, [INFO] [stdout] 72 | head: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TxEventQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `push` is never used [INFO] [stdout] --> src/physical/canfd.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 152 | impl RxQueue { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 162 | fn push(&mut self, frame: Frame) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pop` is never used [INFO] [stdout] --> src/physical/canfd.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 189 | impl TxEventQueue { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 212 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOIP_VEHICLE_IDENTIFICATION_REQUEST` is never used [INFO] [stdout] --> src/transport/doip.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const DOIP_VEHICLE_IDENTIFICATION_REQUEST: u16 = 0x0001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOIP_VEHICLE_IDENTIFICATION_RESPONSE` is never used [INFO] [stdout] --> src/transport/doip.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const DOIP_VEHICLE_IDENTIFICATION_RESPONSE: u16 = 0x0002; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `physical` is never read [INFO] [stdout] --> src/transport/doip.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct DoIP { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 111 | config: DoIPConfig, [INFO] [stdout] 112 | physical: P, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ISOBUS_PROTOCOL_VERSION` is never used [INFO] [stdout] --> src/transport/isobus.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const ISOBUS_PROTOCOL_VERSION: u8 = 0x03; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_REQUEST` is never used [INFO] [stdout] --> src/transport/isobus.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const PGN_REQUEST: u32 = 0x00EA00; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_TRANSPORT_PROTOCOL_DATA` is never used [INFO] [stdout] --> src/transport/isobus.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const PGN_TRANSPORT_PROTOCOL_DATA: u32 = 0x00EB00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_DIAGNOSTIC_MESSAGE` is never used [INFO] [stdout] --> src/transport/isobus.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const PGN_DIAGNOSTIC_MESSAGE: u32 = 0x00FECA; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_CTS` is never used [INFO] [stdout] --> src/transport/isobus.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const TP_CM_CTS: u8 = 0x11; // Clear to Send [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_EndOfMsgACK` is never used [INFO] [stdout] --> src/transport/isobus.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_BAM` is never used [INFO] [stdout] --> src/transport/isobus.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const TP_CM_BAM: u8 = 0x20; // Broadcast Announce Message [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_ABORT` is never used [INFO] [stdout] --> src/transport/isobus.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const TP_CM_ABORT: u8 = 0xFF; // Connection Abort [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T1_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const T1_TIMEOUT: u32 = 750; // Time between CTS and first data packet [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T2_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const T2_TIMEOUT: u32 = 1250; // Time between consecutive data packets [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T3_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | const T3_TIMEOUT: u32 = 1250; // Time between last data packet and EndOfMsgACK [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T4_TIMEOUT` is never used [INFO] [stdout] --> src/transport/isobus.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const T4_TIMEOUT: u32 = 1050; // Time waiting for CTS [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Idle`, `SendingData`, `WaitingForEndOfMsgACK`, and `ReceivingData` are never constructed [INFO] [stdout] --> src/transport/isobus.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 73 | enum TPSessionState { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 74 | Idle, [INFO] [stdout] | ^^^^ [INFO] [stdout] 75 | WaitingForCTS, [INFO] [stdout] 76 | SendingData, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | WaitingForEndOfMsgACK, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | ReceivingData, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TPSessionState` 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/transport/isobus.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 83 | struct TPSession { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 84 | state: TPSessionState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 85 | total_size: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 86 | total_packets: u8, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 87 | next_packet: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 88 | data: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 89 | source_address: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 90 | destination_address: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 91 | pgn: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] 92 | last_timestamp: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TPSession` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rx_buffer` is never read [INFO] [stdout] --> src/transport/isobus.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 95 | pub struct ISOBUS { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 100 | rx_buffer: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_transport_protocol`, `handle_tp_connection`, `handle_tp_data`, and `handle_diagnostic_message` are never used [INFO] [stdout] --> src/transport/isobus.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 104 | impl ISOBUS { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 127 | fn handle_transport_protocol(&mut self, frame: &Frame) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | fn handle_tp_connection(&mut self, source_address: u8, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | fn handle_tp_data(&mut self, source_address: u8, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | fn handle_diagnostic_message(&mut self, frame: &Frame) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PGN_DM2` is never used [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const PGN_DM2: u32 = 0x00FECB; // DM2: Previously Active Diagnostic Trouble Codes [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `lamp_status` is never read [INFO] [stdout] --> src/transport/isobus_diagnostic.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct DiagnosticTroubleCode { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | lamp_status: LampStatus, // Status of the Malfunction Indicator Lamp [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiagnosticTroubleCode` 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: constant `SF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const SF_PCI: u8 = 0x00; // Single Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FF_PCI: u8 = 0x10; // First Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CF_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const CF_PCI: u8 = 0x20; // Consecutive Frame [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FC_PCI` is never used [INFO] [stdout] --> src/transport/isotp.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const FC_PCI: u8 = 0x30; // Flow Control [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Break`, `Sync`, `Id`, `Data`, and `Checksum` are never constructed [INFO] [stdout] --> src/transport/lin.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum LinState { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 23 | Idle, [INFO] [stdout] 24 | Break, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 25 | Sync, [INFO] [stdout] | ^^^^ [INFO] [stdout] 26 | Id, [INFO] [stdout] | ^^ [INFO] [stdout] 27 | Data, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | Checksum, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LinState` 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 `state` is never read [INFO] [stdout] --> src/transport/lin.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Lin { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 65 | state: LinState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TP_CM_EndOfMsgACK` should have an upper case name [INFO] [stdout] --> src/transport/isobus.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 22 - const TP_CM_EndOfMsgACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] 22 + const TP_CM_END_OF_MSG_ACK: u8 = 0x13; // End of Message Acknowledgment [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `TP_CM_EndOfMsgACK` should have an upper case name [INFO] [stdout] --> src/transport/isobus.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | TP_CM_EndOfMsgACK => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TP_CM_END_OF_MSG_ACK` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.29s [INFO] running `Command { std: "docker" "inspect" "f4c647d6eecb7a3db0247dffd93bda1550c554eb958d0aa32ac22032f847f2c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f4c647d6eecb7a3db0247dffd93bda1550c554eb958d0aa32ac22032f847f2c0", kill_on_drop: false }` [INFO] [stdout] f4c647d6eecb7a3db0247dffd93bda1550c554eb958d0aa32ac22032f847f2c0