[INFO] updating cached repository Jon0/usbdrivers [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Jon0/usbdrivers [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Jon0/usbdrivers" "work/ex/clippy-test-run/sources/stable/gh/Jon0/usbdrivers"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Jon0/usbdrivers'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Jon0/usbdrivers" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon0/usbdrivers"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon0/usbdrivers'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6a48811ff261e93446c5dd09f25bd61219742232 [INFO] sha for GitHub repo Jon0/usbdrivers: 6a48811ff261e93446c5dd09f25bd61219742232 [INFO] validating manifest of Jon0/usbdrivers on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of Jon0/usbdrivers on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing Jon0/usbdrivers [INFO] finished frobbing Jon0/usbdrivers [INFO] frobbed toml for Jon0/usbdrivers written to work/ex/clippy-test-run/sources/stable/gh/Jon0/usbdrivers/Cargo.toml [INFO] started frobbing Jon0/usbdrivers [INFO] finished frobbing Jon0/usbdrivers [INFO] frobbed toml for Jon0/usbdrivers written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon0/usbdrivers/Cargo.toml [INFO] crate Jon0/usbdrivers has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Jon0/usbdrivers against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Jon0/usbdrivers:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] daace5857f075e7501b12947e3ab8ec0e4b31692646aedcbb8eaa20675ac2400 [INFO] running `"docker" "start" "-a" "daace5857f075e7501b12947e3ab8ec0e4b31692646aedcbb8eaa20675ac2400"` [INFO] [stderr] Compiling libusb-sys v0.2.3 [INFO] [stderr] Checking bit-set v0.2.0 [INFO] [stderr] Checking libusb v0.3.0 [INFO] [stderr] Checking logictl v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | print_messages: print_messages [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `print_messages` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:52 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:58 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `g` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:64 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | print_messages: print_messages [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `print_messages` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:52 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:58 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `g` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:910:64 [INFO] [stderr] | [INFO] [stderr] 910 | config.led_mode = LedMode::Static{ r: r, g: g, b: b }; [INFO] [stderr] | ^^^^ help: replace it with: `b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Read` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::Read; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Seek` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::io::Seek; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::SeekFrom` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io::SeekFrom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::PathBuf` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::path::PathBuf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Hasher16`, `crc16` [INFO] [stderr] --> src/main.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 16 | use crc::{crc16, Hasher16}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / return UsbController { [INFO] [stderr] 59 | | handle: device.open().unwrap(), [INFO] [stderr] 60 | | interface: selected_interface, [INFO] [stderr] 61 | | read_address: selected_read_address, [INFO] [stderr] 62 | | write_address: selected_write_address, [INFO] [stderr] 63 | | print_messages: print_messages [INFO] [stderr] 64 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 58 | UsbController { [INFO] [stderr] 59 | handle: device.open().unwrap(), [INFO] [stderr] 60 | interface: selected_interface, [INFO] [stderr] 61 | read_address: selected_read_address, [INFO] [stderr] 62 | write_address: selected_write_address, [INFO] [stderr] 63 | print_messages: print_messages [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return (resp[4], resp[5]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(resp[4], resp[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | return (0, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `(0, 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | return (checksum_a, checksum_b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(checksum_a, checksum_b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:337:12 [INFO] [stderr] | [INFO] [stderr] 337 | if (poll_rate == 500) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:340:17 [INFO] [stderr] | [INFO] [stderr] 340 | else if (poll_rate == 333) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | else if (poll_rate == 250) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:452:7 [INFO] [stderr] | [INFO] [stderr] 452 | return crc; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `crc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:442:14 [INFO] [stderr] | [INFO] [stderr] 442 | crc ^= ((data as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:864:8 [INFO] [stderr] | [INFO] [stderr] 864 | if (config.print_endpoints) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:905:16 [INFO] [stderr] | [INFO] [stderr] 905 | if (parts.len() == 3) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Read` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::Read; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Seek` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::io::Seek; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::SeekFrom` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io::SeekFrom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::PathBuf` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::path::PathBuf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Hasher16`, `crc16` [INFO] [stderr] --> src/main.rs:16:11 [INFO] [stderr] | [INFO] [stderr] 16 | use crc::{crc16, Hasher16}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / return UsbController { [INFO] [stderr] 59 | | handle: device.open().unwrap(), [INFO] [stderr] 60 | | interface: selected_interface, [INFO] [stderr] 61 | | read_address: selected_read_address, [INFO] [stderr] 62 | | write_address: selected_write_address, [INFO] [stderr] 63 | | print_messages: print_messages [INFO] [stderr] 64 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 58 | UsbController { [INFO] [stderr] 59 | handle: device.open().unwrap(), [INFO] [stderr] 60 | interface: selected_interface, [INFO] [stderr] 61 | read_address: selected_read_address, [INFO] [stderr] 62 | write_address: selected_write_address, [INFO] [stderr] 63 | print_messages: print_messages [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | return (resp[4], resp[5]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(resp[4], resp[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | return (0, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `(0, 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | return (checksum_a, checksum_b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(checksum_a, checksum_b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:337:12 [INFO] [stderr] | [INFO] [stderr] 337 | if (poll_rate == 500) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:340:17 [INFO] [stderr] | [INFO] [stderr] 340 | else if (poll_rate == 333) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | else if (poll_rate == 250) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:452:7 [INFO] [stderr] | [INFO] [stderr] 452 | return crc; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `crc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:442:14 [INFO] [stderr] | [INFO] [stderr] 442 | crc ^= ((data as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:864:8 [INFO] [stderr] | [INFO] [stderr] 864 | if (config.print_endpoints) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:905:16 [INFO] [stderr] | [INFO] [stderr] 905 | if (parts.len() == 3) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | let result = self.handle.write_control(0x21, 9, 0x0210, 1, msg, Duration::from_secs(1)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let result = self.handle.write_control(0x21, 9, 0x0211, 1, msg, Duration::from_secs(1)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cmd_param` [INFO] [stderr] --> src/main.rs:316:13 [INFO] [stderr] | [INFO] [stderr] 316 | let cmd_param = 0x1d; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_cmd_param` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/main.rs:443:11 [INFO] [stderr] | [INFO] [stderr] 443 | for x in 0..8 { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_0` [INFO] [stderr] --> src/main.rs:506:13 [INFO] [stderr] | [INFO] [stderr] 506 | let command_type_0 = 0x0c; // root [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_0` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_1` [INFO] [stderr] --> src/main.rs:507:13 [INFO] [stderr] | [INFO] [stderr] 507 | let command_type_1 = 0x1c; // [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_2` [INFO] [stderr] --> src/main.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | let command_type_2 = 0x2c; // check connected [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_3` [INFO] [stderr] --> src/main.rs:509:13 [INFO] [stderr] | [INFO] [stderr] 509 | let command_type_3 = 0x3c; // color setting [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_4` [INFO] [stderr] --> src/main.rs:510:13 [INFO] [stderr] | [INFO] [stderr] 510 | let command_type_4 = 0x4c; // get status, returns err and current profile [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_4` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_6` [INFO] [stderr] --> src/main.rs:511:13 [INFO] [stderr] | [INFO] [stderr] 511 | let command_type_6 = 0x6c; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_6` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_7` [INFO] [stderr] --> src/main.rs:512:13 [INFO] [stderr] | [INFO] [stderr] 512 | let command_type_7 = 0x7c; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_7` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:589:13 [INFO] [stderr] | [INFO] [stderr] 589 | let result = self.handle.write_control(0x21, 9, 0x0210, 1, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:599:13 [INFO] [stderr] | [INFO] [stderr] 599 | let result = self.handle.write_control(0x21, 9, 0x0211, 1, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:605:13 [INFO] [stderr] | [INFO] [stderr] 605 | let result = self.handle.write_interrupt(self.write_address, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/main.rs:650:34 [INFO] [stderr] | [INFO] [stderr] 650 | fn enable_profile(&mut self, n: u8) { [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `mode_id` is never read [INFO] [stderr] --> src/main.rs:684:17 [INFO] [stderr] | [INFO] [stderr] 684 | let mut mode_id = 0x00; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:760:18 [INFO] [stderr] | [INFO] [stderr] 760 | let (err, p) = self.send_4_status(device_index, feature_index, swid); [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | let result = self.handle.write_control(0x21, 9, 0x0210, 1, msg, Duration::from_secs(1)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let result = self.handle.write_control(0x21, 9, 0x0211, 1, msg, Duration::from_secs(1)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cmd_param` [INFO] [stderr] --> src/main.rs:316:13 [INFO] [stderr] | [INFO] [stderr] 316 | let cmd_param = 0x1d; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_cmd_param` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/main.rs:443:11 [INFO] [stderr] | [INFO] [stderr] 443 | for x in 0..8 { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_0` [INFO] [stderr] --> src/main.rs:506:13 [INFO] [stderr] | [INFO] [stderr] 506 | let command_type_0 = 0x0c; // root [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_0` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_1` [INFO] [stderr] --> src/main.rs:507:13 [INFO] [stderr] | [INFO] [stderr] 507 | let command_type_1 = 0x1c; // [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_2` [INFO] [stderr] --> src/main.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | let command_type_2 = 0x2c; // check connected [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_3` [INFO] [stderr] --> src/main.rs:509:13 [INFO] [stderr] | [INFO] [stderr] 509 | let command_type_3 = 0x3c; // color setting [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_4` [INFO] [stderr] --> src/main.rs:510:13 [INFO] [stderr] | [INFO] [stderr] 510 | let command_type_4 = 0x4c; // get status, returns err and current profile [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_4` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_6` [INFO] [stderr] --> src/main.rs:511:13 [INFO] [stderr] | [INFO] [stderr] 511 | let command_type_6 = 0x6c; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_6` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_type_7` [INFO] [stderr] --> src/main.rs:512:13 [INFO] [stderr] | [INFO] [stderr] 512 | let command_type_7 = 0x7c; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_command_type_7` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:589:13 [INFO] [stderr] | [INFO] [stderr] 589 | let result = self.handle.write_control(0x21, 9, 0x0210, 1, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:599:13 [INFO] [stderr] | [INFO] [stderr] 599 | let result = self.handle.write_control(0x21, 9, 0x0211, 1, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:605:13 [INFO] [stderr] | [INFO] [stderr] 605 | let result = self.handle.write_interrupt(self.write_address, msg, Duration::from_secs(10)).unwrap(); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/main.rs:650:34 [INFO] [stderr] | [INFO] [stderr] 650 | fn enable_profile(&mut self, n: u8) { [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `mode_id` is never read [INFO] [stderr] --> src/main.rs:684:17 [INFO] [stderr] | [INFO] [stderr] 684 | let mut mode_id = 0x00; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/main.rs:760:18 [INFO] [stderr] | [INFO] [stderr] 760 | let (err, p) = self.send_4_status(device_index, feature_index, swid); [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:695:13 [INFO] [stderr] | [INFO] [stderr] 695 | let mut unknown = 0x01; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:695:13 [INFO] [stderr] | [INFO] [stderr] 695 | let mut unknown = 0x01; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:930:9 [INFO] [stderr] | [INFO] [stderr] 930 | let mut context = libusb::Context::new().unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `write_address` [INFO] [stderr] --> src/main.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | write_address: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_1_get_features` [INFO] [stderr] --> src/main.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | fn send_1_get_features(&mut self, di: u8, fi: u8, swid: u8, offset: u8, param_b: u8, param_c: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_2_connected` [INFO] [stderr] --> src/main.rs:136:5 [INFO] [stderr] | [INFO] [stderr] 136 | fn send_2_connected(&mut self, di: u8, fi: u8, swid: u8, offset: u8, param_b: u8, param_c: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_5_read_record` [INFO] [stderr] --> src/main.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | fn send_5_read_record(&mut self, di: u8, fi: u8, swid: u8, id_a: u8, profile: u8, offset: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_magic_numbers` [INFO] [stderr] --> src/main.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | fn get_magic_numbers(&self) -> (u8, u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_group_7_enable_profile` [INFO] [stderr] --> src/main.rs:456:5 [INFO] [stderr] | [INFO] [stderr] 456 | fn send_group_7_enable_profile(&mut self, di: u8, fi: u8, swid: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_init_commands` [INFO] [stderr] --> src/main.rs:500:5 [INFO] [stderr] | [INFO] [stderr] 500 | fn write_init_commands(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_ctl_7` [INFO] [stderr] --> src/main.rs:587:5 [INFO] [stderr] | [INFO] [stderr] 587 | fn send_ctl_7(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_ctl_20` [INFO] [stderr] --> src/main.rs:597:5 [INFO] [stderr] | [INFO] [stderr] 597 | fn send_ctl_20(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_msg` [INFO] [stderr] --> src/main.rs:604:5 [INFO] [stderr] | [INFO] [stderr] 604 | fn send_msg(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `enable_profile` [INFO] [stderr] --> src/main.rs:650:5 [INFO] [stderr] | [INFO] [stderr] 650 | fn enable_profile(&mut self, n: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `before_apply` [INFO] [stderr] --> src/main.rs:721:5 [INFO] [stderr] | [INFO] [stderr] 721 | fn before_apply(&mut self, profile: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Off` [INFO] [stderr] --> src/main.rs:820:5 [INFO] [stderr] | [INFO] [stderr] 820 | Off, Static { r: u8, g: u8, b: u8 }, Cycle { speed: u16, brightness: u8 } [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Cycle` [INFO] [stderr] --> src/main.rs:820:42 [INFO] [stderr] | [INFO] [stderr] 820 | Off, Static { r: u8, g: u8, b: u8 }, Cycle { speed: u16, brightness: u8 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | self.handle.detach_kernel_driver(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.handle.claim_interface(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | self.handle.release_interface(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the loop variable `b` is only used to index `out`. [INFO] [stderr] --> src/main.rs:80:22 [INFO] [stderr] | [INFO] [stderr] 80 | for b in 0..result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 80 | for in out.iter().take(result) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `swid` [INFO] [stderr] --> src/main.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | let byte_3 = 0x00 + swid; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (12/7) [INFO] [stderr] --> src/main.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | / fn send_3_color(&mut self, di: u8, fi: u8, swid: u8, led_mode: u8, led_r: u8, led_g: u8, led_b: u8, cycle_a: u8, cycle_b: u8, cycle_c: u8, param: u8) { [INFO] [stderr] 171 | | let command_3 = 0x30 + swid; [INFO] [stderr] 172 | | let buf: [u8; 20] = [ [INFO] [stderr] 173 | | 0x11, di, fi, command_3, 0x00, led_mode, led_r, led_g, [INFO] [stderr] ... | [INFO] [stderr] 180 | | self.read_response(&mut resp); [INFO] [stderr] 181 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:930:9 [INFO] [stderr] | [INFO] [stderr] 930 | let mut context = libusb::Context::new().unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `write_address` [INFO] [stderr] --> src/main.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | write_address: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_1_get_features` [INFO] [stderr] --> src/main.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | fn send_1_get_features(&mut self, di: u8, fi: u8, swid: u8, offset: u8, param_b: u8, param_c: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_2_connected` [INFO] [stderr] --> src/main.rs:136:5 [INFO] [stderr] | [INFO] [stderr] 136 | fn send_2_connected(&mut self, di: u8, fi: u8, swid: u8, offset: u8, param_b: u8, param_c: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_5_read_record` [INFO] [stderr] --> src/main.rs:209:5 [INFO] [stderr] | [INFO] [stderr] 209 | fn send_5_read_record(&mut self, di: u8, fi: u8, swid: u8, id_a: u8, profile: u8, offset: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_magic_numbers` [INFO] [stderr] --> src/main.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | fn get_magic_numbers(&self) -> (u8, u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_group_7_enable_profile` [INFO] [stderr] --> src/main.rs:456:5 [INFO] [stderr] | [INFO] [stderr] 456 | fn send_group_7_enable_profile(&mut self, di: u8, fi: u8, swid: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_init_commands` [INFO] [stderr] --> src/main.rs:500:5 [INFO] [stderr] | [INFO] [stderr] 500 | fn write_init_commands(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_ctl_7` [INFO] [stderr] --> src/main.rs:587:5 [INFO] [stderr] | [INFO] [stderr] 587 | fn send_ctl_7(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_ctl_20` [INFO] [stderr] --> src/main.rs:597:5 [INFO] [stderr] | [INFO] [stderr] 597 | fn send_ctl_20(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_msg` [INFO] [stderr] --> src/main.rs:604:5 [INFO] [stderr] | [INFO] [stderr] 604 | fn send_msg(&mut self, msg: &[u8]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `enable_profile` [INFO] [stderr] --> src/main.rs:650:5 [INFO] [stderr] | [INFO] [stderr] 650 | fn enable_profile(&mut self, n: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `before_apply` [INFO] [stderr] --> src/main.rs:721:5 [INFO] [stderr] | [INFO] [stderr] 721 | fn before_apply(&mut self, profile: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Off` [INFO] [stderr] --> src/main.rs:820:5 [INFO] [stderr] | [INFO] [stderr] 820 | Off, Static { r: u8, g: u8, b: u8 }, Cycle { speed: u16, brightness: u8 } [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Cycle` [INFO] [stderr] --> src/main.rs:820:42 [INFO] [stderr] | [INFO] [stderr] 820 | Off, Static { r: u8, g: u8, b: u8 }, Cycle { speed: u16, brightness: u8 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:369:12 [INFO] [stderr] | [INFO] [stderr] 369 | if dpi_array.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!dpi_array.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | self.handle.detach_kernel_driver(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:414:13 [INFO] [stderr] | [INFO] [stderr] 414 | / let mut range = packet.len(); [INFO] [stderr] 415 | | if crc_count == 0xf0 { [INFO] [stderr] 416 | | range = packet.len() - 2; // skip last 2 bytes [INFO] [stderr] 417 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let range = if crc_count == 0xf0 { packet.len() - 2 } else { packet.len() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.handle.claim_interface(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `packet`. [INFO] [stderr] --> src/main.rs:418:22 [INFO] [stderr] | [INFO] [stderr] 418 | for x in 0..range { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 418 | for in packet.iter().take(range) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | self.handle.release_interface(self.interface); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:442:15 [INFO] [stderr] | [INFO] [stderr] 442 | crc ^= ((data as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(data)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `((crc << 1) ^ 0x1021)` [INFO] [stderr] --> src/main.rs:445:21 [INFO] [stderr] | [INFO] [stderr] 445 | crc = ((crc << 1) ^ 0x1021) & 0xFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the loop variable `b` is only used to index `out`. [INFO] [stderr] --> src/main.rs:80:22 [INFO] [stderr] | [INFO] [stderr] 80 | for b in 0..result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 80 | for in out.iter().take(result) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `swid` [INFO] [stderr] --> src/main.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | let byte_3 = 0x00 + swid; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (12/7) [INFO] [stderr] --> src/main.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | / fn send_3_color(&mut self, di: u8, fi: u8, swid: u8, led_mode: u8, led_r: u8, led_g: u8, led_b: u8, cycle_a: u8, cycle_b: u8, cycle_c: u8, param: u8) { [INFO] [stderr] 171 | | let command_3 = 0x30 + swid; [INFO] [stderr] 172 | | let buf: [u8; 20] = [ [INFO] [stderr] 173 | | 0x11, di, fi, command_3, 0x00, led_mode, led_r, led_g, [INFO] [stderr] ... | [INFO] [stderr] 180 | | self.read_response(&mut resp); [INFO] [stderr] 181 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:369:12 [INFO] [stderr] | [INFO] [stderr] 369 | if dpi_array.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!dpi_array.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:414:13 [INFO] [stderr] | [INFO] [stderr] 414 | / let mut range = packet.len(); [INFO] [stderr] 415 | | if crc_count == 0xf0 { [INFO] [stderr] 416 | | range = packet.len() - 2; // skip last 2 bytes [INFO] [stderr] 417 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let range = if crc_count == 0xf0 { packet.len() - 2 } else { packet.len() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `packet`. [INFO] [stderr] --> src/main.rs:418:22 [INFO] [stderr] | [INFO] [stderr] 418 | for x in 0..range { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 418 | for in packet.iter().take(range) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:442:15 [INFO] [stderr] | [INFO] [stderr] 442 | crc ^= ((data as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(data)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `((crc << 1) ^ 0x1021)` [INFO] [stderr] --> src/main.rs:445:21 [INFO] [stderr] | [INFO] [stderr] 445 | crc = ((crc << 1) ^ 0x1021) & 0xFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.78s [INFO] running `"docker" "inspect" "daace5857f075e7501b12947e3ab8ec0e4b31692646aedcbb8eaa20675ac2400"` [INFO] running `"docker" "rm" "-f" "daace5857f075e7501b12947e3ab8ec0e4b31692646aedcbb8eaa20675ac2400"` [INFO] [stdout] daace5857f075e7501b12947e3ab8ec0e4b31692646aedcbb8eaa20675ac2400