[INFO] cloning repository https://github.com/lavers/g815-driver
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lavers/g815-driver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flavers%2Fg815-driver", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flavers%2Fg815-driver'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 24664baf038977af14dc6434903d294d184025db
[INFO] checking lavers/g815-driver against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flavers%2Fg815-driver" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lavers/g815-driver
[INFO] finished tweaking git repo https://github.com/lavers/g815-driver
[INFO] tweaked toml for git repo https://github.com/lavers/g815-driver written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lavers/g815-driver on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lavers/g815-driver 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded filetime v0.2.12
[INFO] [stderr]   Downloaded zvariant v2.5.0
[INFO] [stderr]   Downloaded ctrlc v3.1.6
[INFO] [stderr]   Downloaded zbus_macros v1.8.0
[INFO] [stderr]   Downloaded libpulse-sys v1.18.0
[INFO] [stderr]   Downloaded yaml-rust v0.4.4
[INFO] [stderr]   Downloaded serde_yaml v0.8.13
[INFO] [stderr]   Downloaded macro-attr v0.2.0
[INFO] [stderr]   Downloaded ncurses v5.100.0
[INFO] [stderr]   Downloaded hidapi v1.2.3
[INFO] [stderr]   Downloaded libpulse-binding v2.23.0
[INFO] [stderr]   Downloaded zvariant_derive v2.5.0
[INFO] [stderr]   Downloaded enum_derive v0.1.7
[INFO] [stderr]   Downloaded zbus v1.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2d65f8ea6993c4bc2f7afaa27098f3de0d47da2c8e1e67e4f03419b60ca8ecbb
[INFO] running `Command { std: "docker" "start" "-a" "2d65f8ea6993c4bc2f7afaa27098f3de0d47da2c8e1e67e4f03419b60ca8ecbb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2d65f8ea6993c4bc2f7afaa27098f3de0d47da2c8e1e67e4f03419b60ca8ecbb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d65f8ea6993c4bc2f7afaa27098f3de0d47da2c8e1e67e4f03419b60ca8ecbb", kill_on_drop: false }`
[INFO] [stdout] 2d65f8ea6993c4bc2f7afaa27098f3de0d47da2c8e1e67e4f03419b60ca8ecbb
[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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0f18b29e76be43b25e4e902b79187ea1bb3b84ae1a9fc7b259febf678f9719b5
[INFO] running `Command { std: "docker" "start" "-a" "0f18b29e76be43b25e4e902b79187ea1bb3b84ae1a9fc7b259febf678f9719b5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.86
[INFO] [stderr]    Compiling proc-macro2 v1.0.19
[INFO] [stderr]    Compiling syn v1.0.38
[INFO] [stderr]    Compiling pkg-config v0.3.18
[INFO] [stderr]    Compiling serde_derive v1.0.115
[INFO] [stderr]    Compiling serde v1.0.115
[INFO] [stderr]    Compiling cc v1.0.58
[INFO] [stderr]     Checking futures-core v0.3.12
[INFO] [stderr]     Checking futures-io v0.3.12
[INFO] [stderr]     Checking pin-project-lite v0.2.4
[INFO] [stderr]    Compiling memoffset v0.5.5
[INFO] [stderr]     Checking futures-sink v0.3.12
[INFO] [stderr]     Checking futures-task v0.3.12
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking aho-corasick v0.7.13
[INFO] [stderr]     Checking byteorder v1.4.2
[INFO] [stderr]     Checking linked-hash-map v0.5.3
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]    Compiling g815-driver v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking yaml-rust v0.4.4
[INFO] [stderr]     Checking futures-lite v1.11.3
[INFO] [stderr]     Checking futures-channel v0.3.12
[INFO] [stderr]     Checking dtoa v0.4.6
[INFO] [stderr]     Checking enum_derive v0.1.7
[INFO] [stderr]     Checking hsl v0.1.1
[INFO] [stderr]     Checking macro-attr v0.2.0
[INFO] [stderr]    Compiling libpulse-sys v1.18.0
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking crossbeam v0.7.3
[INFO] [stderr]    Compiling hidapi v1.2.3
[INFO] [stderr]    Compiling ncurses v5.100.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking inotify-sys v0.1.3
[INFO] [stderr]     Checking polling v2.0.2
[INFO] [stderr]     Checking nix v0.17.0
[INFO] [stderr]     Checking nb-connect v1.0.2
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking filetime v0.2.12
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking inotify v0.7.1
[INFO] [stderr]     Checking async-io v1.3.1
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking pretty_env_logger v0.4.0
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking notify v4.0.15
[INFO] [stderr]     Checking ctrlc v3.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.12
[INFO] [stderr]    Compiling enumflags2_derive v0.6.4
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling serde_repr v0.1.6
[INFO] [stderr]     Checking futures-util v0.3.12
[INFO] [stderr]     Checking libpulse-binding v2.23.0
[INFO] [stderr]     Checking futures-executor v0.3.12
[INFO] [stderr]     Checking futures v0.3.12
[INFO] [stderr]     Checking enumflags2 v0.6.4
[INFO] [stderr]     Checking serde_yaml v0.8.13
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling zvariant_derive v2.5.0
[INFO] [stderr]    Compiling zbus_macros v1.8.0
[INFO] [stderr]     Checking zvariant v2.5.0
[INFO] [stderr]     Checking zbus v1.8.0
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |             move || windowsystem::WindowSystem::new().unwrap().run(ww_thread_rx, main_thread_tx)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |             move || <dyn windowsystem::WindowSystem>::new().unwrap().run(ww_thread_rx, main_thread_tx)
[INFO] [stdout]     |                     ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 |             move || windowsystem::WindowSystem::new().unwrap().run(ww_thread_rx, main_thread_tx)
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |             move || <dyn windowsystem::WindowSystem>::new().unwrap().run(ww_thread_rx, main_thread_tx)
[INFO] [stdout]     |                     ++++                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tx` is never read
[INFO] [stdout]   --> src/dbus.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Server
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     tx: Sender<MainThreadSignal>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |     MediaKeyUp(MediaKey),
[INFO] [stdout]    |     ---------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 41 -     MediaKeyUp(MediaKey),
[INFO] [stdout] 41 +     MediaKeyUp(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 84 |     HidError(hidapi::HidError),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 84 -     HidError(hidapi::HidError),
[INFO] [stdout] 84 +     HidError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |     LogicError(String),
[INFO] [stdout]    |     ---------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 85 -     LogicError(String),
[INFO] [stdout] 85 +     LogicError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 |     Failure(String)
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 86 -     Failure(String)
[INFO] [stdout] 86 +     Failure(())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_capability` is never used
[INFO] [stdout]    --> src/device/g815.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl G815Keyboard
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn has_capability(&self, capability: Capability) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effect` is never used
[INFO] [stdout]  --> src/device/rgb.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Effect
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnableToWrite` and `SerializeError` are never constructed
[INFO] [stdout]   --> src/config.rs:19:2
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ConfigError
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     UnableToWrite(std::io::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     ParseError(serde_yaml::Error),
[INFO] [stdout] 21 |     SerializeError(serde_yaml::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigError` 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 `save` is never used
[INFO] [stdout]    --> src/config.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Configuration
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn save(&self) -> Result<(), ConfigError>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tx` is never read
[INFO] [stdout]   --> src/dbus.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Server
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     tx: Sender<MainThreadSignal>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |     MediaKeyUp(MediaKey),
[INFO] [stdout]    |     ---------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 41 -     MediaKeyUp(MediaKey),
[INFO] [stdout] 41 +     MediaKeyUp(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 84 |     HidError(hidapi::HidError),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 84 -     HidError(hidapi::HidError),
[INFO] [stdout] 84 +     HidError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |     LogicError(String),
[INFO] [stdout]    |     ---------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 85 -     LogicError(String),
[INFO] [stdout] 85 +     LogicError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/device/mod.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 |     Failure(String)
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 86 -     Failure(String)
[INFO] [stdout] 86 +     Failure(())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_capability` is never used
[INFO] [stdout]    --> src/device/g815.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl G815Keyboard
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn has_capability(&self, capability: Capability) -> bool
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Effect` is never used
[INFO] [stdout]  --> src/device/rgb.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Effect
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnableToWrite` and `SerializeError` are never constructed
[INFO] [stdout]   --> src/config.rs:19:2
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ConfigError
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     UnableToWrite(std::io::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     ParseError(serde_yaml::Error),
[INFO] [stdout] 21 |     SerializeError(serde_yaml::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigError` 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 `save` is never used
[INFO] [stdout]    --> src/config.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Configuration
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn save(&self) -> Result<(), ConfigError>
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.56s
[INFO] running `Command { std: "docker" "inspect" "0f18b29e76be43b25e4e902b79187ea1bb3b84ae1a9fc7b259febf678f9719b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f18b29e76be43b25e4e902b79187ea1bb3b84ae1a9fc7b259febf678f9719b5", kill_on_drop: false }`
[INFO] [stdout] 0f18b29e76be43b25e4e902b79187ea1bb3b84ae1a9fc7b259febf678f9719b5
