[INFO] cloning repository https://github.com/BaxHugh/chorded-key-remapper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BaxHugh/chorded-key-remapper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaxHugh%2Fchorded-key-remapper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaxHugh%2Fchorded-key-remapper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 46aae7081d04c58920ea9877a9de858524ca986b
[INFO] checking BaxHugh/chorded-key-remapper against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaxHugh%2Fchorded-key-remapper" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BaxHugh/chorded-key-remapper
[INFO] finished tweaking git repo https://github.com/BaxHugh/chorded-key-remapper
[INFO] tweaked toml for git repo https://github.com/BaxHugh/chorded-key-remapper written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BaxHugh/chorded-key-remapper on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BaxHugh/chorded-key-remapper already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded predicates v2.1.1
[INFO] [stderr]   Downloaded serde_spanned v0.6.1
[INFO] [stderr]   Downloaded predicates-tree v1.0.5
[INFO] [stderr]   Downloaded predicates-core v1.0.3
[INFO] [stderr]   Downloaded testing_logger v0.1.1
[INFO] [stderr]   Downloaded toml v0.7.2
[INFO] [stderr]   Downloaded termtree v0.2.4
[INFO] [stderr]   Downloaded mockall v0.11.2
[INFO] [stderr]   Downloaded is-terminal v0.4.3
[INFO] [stderr]   Downloaded fragile v1.2.1
[INFO] [stderr]   Downloaded wyz v0.5.0
[INFO] [stderr]   Downloaded evdev v0.12.0
[INFO] [stderr]   Downloaded mockall_derive v0.11.2
[INFO] [stderr]   Downloaded toml_edit v0.19.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 424848e69ac4edcacb088afa239bcceb55213d92db760ff8e3b26426d68d91e5
[INFO] running `Command { std: "docker" "start" "-a" "424848e69ac4edcacb088afa239bcceb55213d92db760ff8e3b26426d68d91e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "424848e69ac4edcacb088afa239bcceb55213d92db760ff8e3b26426d68d91e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "424848e69ac4edcacb088afa239bcceb55213d92db760ff8e3b26426d68d91e5", kill_on_drop: false }`
[INFO] [stdout] 424848e69ac4edcacb088afa239bcceb55213d92db760ff8e3b26426d68d91e5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a26c7e657834b53ab84f97c719ff0467bca8d891bd3391c011c1a8a6830fdc85
[INFO] running `Command { std: "docker" "start" "-a" "a26c7e657834b53ab84f97c719ff0467bca8d891bd3391c011c1a8a6830fdc85", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.46
[INFO] [stderr]    Compiling unicode-ident v1.0.5
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]    Compiling thiserror v1.0.37
[INFO] [stderr]     Checking aho-corasick v0.7.19
[INFO] [stderr]     Checking predicates-core v1.0.3
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking nom8 v0.2.0
[INFO] [stderr]     Checking wyz v0.5.0
[INFO] [stderr]     Checking termtree v0.2.4
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking fragile v1.2.1
[INFO] [stderr]     Checking predicates-tree v1.0.5
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking testing_logger v0.1.1
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking io-lifetimes v1.0.5
[INFO] [stderr]     Checking nix v0.23.1
[INFO] [stderr]     Checking rustix v0.36.8
[INFO] [stderr]     Checking regex v1.6.0
[INFO] [stderr]     Checking predicates v2.1.1
[INFO] [stderr]     Checking is-terminal v0.4.3
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.37
[INFO] [stderr]    Compiling mockall_derive v0.11.2
[INFO] [stderr]     Checking mockall v0.11.2
[INFO] [stderr]     Checking serde_spanned v0.6.1
[INFO] [stderr]     Checking toml_datetime v0.6.1
[INFO] [stderr]     Checking evdev v0.12.0
[INFO] [stderr]     Checking toml_edit v0.19.3
[INFO] [stderr]     Checking toml v0.7.2
[INFO] [stderr]     Checking chorded-key-remapper v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/config/deserialize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/config/deserialize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::ConfigError`
[INFO] [stdout]  --> src/config/deserialize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::errors::ConfigError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Key`
[INFO] [stdout]  --> src/config/deserialize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::Key;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttributeSetRef`
[INFO] [stdout]  --> src/device/device.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use evdev::{AttributeSet, AttributeSetRef};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/device/device.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log;
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Device` and `VirtualDevice`
[INFO] [stdout]  --> src/device/mod.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use device::{get_all_devices, Device, DeviceInfo, VirtualDevice};
[INFO] [stdout]   |                                   ^^^^^^              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/config/deserialize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/config/deserialize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::ConfigError`
[INFO] [stdout]  --> src/config/deserialize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::errors::ConfigError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Key`
[INFO] [stdout]  --> src/config/deserialize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::Key;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttributeSetRef`
[INFO] [stdout]  --> src/device/device.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use evdev::{AttributeSet, AttributeSetRef};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/device/device.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log;
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Device` and `VirtualDevice`
[INFO] [stdout]  --> src/device/mod.rs:3:35
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use device::{get_all_devices, Device, DeviceInfo, VirtualDevice};
[INFO] [stdout]   |                                   ^^^^^^              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mappings` is never read
[INFO] [stdout]  --> src/config/schema.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Config {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub mappings: Option<MappingsConfig>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `maps` is never read
[INFO] [stdout]   --> src/config/schema.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct MappingsConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 22 |     pub maps: Option<Vec<Map>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MappingsConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VirtualDevice` is never constructed
[INFO] [stdout]   --> src/device/device.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct VirtualDevice(pub evdev::uinput::VirtualDevice);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VirtualDeviceInfo` is never used
[INFO] [stdout]   --> src/device/device.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait VirtualDeviceInfo {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_template_device` are never used
[INFO] [stdout]   --> src/device/device.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl VirtualDevice {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 35 |     #[inline]
[INFO] [stdout] 36 |     pub const fn new(virtual_device: evdev::uinput::VirtualDevice) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn from_template_device<T: DeviceInfo>(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Message` is never constructed
[INFO] [stdout]  --> src/errors.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Error {
[INFO] [stdout]   |          ----- variant in this enum
[INFO] [stdout] 7 |     #[error("{0}")]
[INFO] [stdout] 8 |     Message(String),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Message` is never constructed
[INFO] [stdout]   --> src/errors.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum VirtualDeviceCreationError {
[INFO] [stdout]    |          -------------------------- variant in this enum
[INFO] [stdout] 25 |     #[error("{0}")]
[INFO] [stdout] 26 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VirtualDeviceCreationError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Message` and `DeviceNotFound` are never constructed
[INFO] [stdout]   --> src/errors.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum DeviceError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 37 |     #[error("{0}")]
[INFO] [stdout] 38 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     DeviceNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Message` and `ParseKeyError` are never constructed
[INFO] [stdout]   --> src/errors.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum ConfigError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 55 |     #[error("{0}")]
[INFO] [stdout] 56 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     ParseKeyError(String),
[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: fields `input` and `output` are never read
[INFO] [stdout]  --> src/mapping.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Map {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 6 |     pub input: Vec<Key>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 7 |     pub output: Vec<Key>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Map` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/config/parsing.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 113 |     impl MockDevice {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 114 |         pub fn new(name: &str, is_keyboard: bool) -> MockDevice {
[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 `mappings` is never read
[INFO] [stdout]  --> src/config/schema.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Config {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub mappings: Option<MappingsConfig>,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Config` 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 `maps` is never read
[INFO] [stdout]   --> src/config/schema.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct MappingsConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 22 |     pub maps: Option<Vec<Map>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MappingsConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VirtualDevice` is never constructed
[INFO] [stdout]   --> src/device/device.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct VirtualDevice(pub evdev::uinput::VirtualDevice);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VirtualDeviceInfo` is never used
[INFO] [stdout]   --> src/device/device.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub trait VirtualDeviceInfo {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_template_device` are never used
[INFO] [stdout]   --> src/device/device.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl VirtualDevice {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 35 |     #[inline]
[INFO] [stdout] 36 |     pub const fn new(virtual_device: evdev::uinput::VirtualDevice) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn from_template_device<T: DeviceInfo>(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Message` is never constructed
[INFO] [stdout]  --> src/errors.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Error {
[INFO] [stdout]   |          ----- variant in this enum
[INFO] [stdout] 7 |     #[error("{0}")]
[INFO] [stdout] 8 |     Message(String),
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Message` is never constructed
[INFO] [stdout]   --> src/errors.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum VirtualDeviceCreationError {
[INFO] [stdout]    |          -------------------------- variant in this enum
[INFO] [stdout] 25 |     #[error("{0}")]
[INFO] [stdout] 26 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VirtualDeviceCreationError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Message` and `DeviceNotFound` are never constructed
[INFO] [stdout]   --> src/errors.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum DeviceError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 37 |     #[error("{0}")]
[INFO] [stdout] 38 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     DeviceNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Message` and `ParseKeyError` are never constructed
[INFO] [stdout]   --> src/errors.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum ConfigError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 55 |     #[error("{0}")]
[INFO] [stdout] 56 |     Message(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     ParseKeyError(String),
[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: fields `input` and `output` are never read
[INFO] [stdout]  --> src/mapping.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Map {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 6 |     pub input: Vec<Key>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 7 |     pub output: Vec<Key>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Map` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `test_DevicesConfig_extract_devices_to_remap` should have a snake case name
[INFO] [stdout]    --> src/config/parsing.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | mod test_DevicesConfig_extract_devices_to_remap {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `test_devices_config_extract_devices_to_remap`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.42s
[INFO] running `Command { std: "docker" "inspect" "a26c7e657834b53ab84f97c719ff0467bca8d891bd3391c011c1a8a6830fdc85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a26c7e657834b53ab84f97c719ff0467bca8d891bd3391c011c1a8a6830fdc85", kill_on_drop: false }`
[INFO] [stdout] a26c7e657834b53ab84f97c719ff0467bca8d891bd3391c011c1a8a6830fdc85
