[INFO] fetching crate wincrust 0.7.0...
[INFO] testing wincrust-0.7.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate wincrust 0.7.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate wincrust 0.7.0
[INFO] finished tweaking crates.io crate wincrust 0.7.0
[INFO] tweaked toml for crates.io crate wincrust 0.7.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate wincrust 0.7.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate wincrust 0.7.0 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277
[INFO] running `Command { std: "docker" "start" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling cmov v0.5.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling ctutils v0.4.2
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling rmcp v3.1.4
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling pxfm v0.1.30
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.27
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ref-cast v1.0.27
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling rmcp-macros v3.1.4
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling uuid v1.25.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling sse-stream v0.2.5
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling wincrust v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `encode_png_scaled` is never used
[INFO] [stdout]    --> src/capture.rs:543:8
[INFO] [stdout]     |
[INFO] [stdout] 543 | pub fn encode_png_scaled(f: &Frame, scale: f32, prep: Prep) -> Result<(Vec<u8>, f32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_gray` is never used
[INFO] [stdout]    --> src/capture.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn to_gray(img: &image::RgbImage) -> image::GrayImage {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `otsu_threshold` is never used
[INFO] [stdout]    --> src/capture.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn otsu_threshold(g: &image::GrayImage) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preprocess` is never used
[INFO] [stdout]    --> src/capture.rs:670:4
[INFO] [stdout]     |
[INFO] [stdout] 670 | fn preprocess(img: image::RgbImage, prep: Prep) -> image::RgbImage {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frame_from_png` is never used
[INFO] [stdout]    --> src/capture.rs:704:8
[INFO] [stdout]     |
[INFO] [stdout] 704 | pub fn frame_from_png(path: &std::path::Path) -> Result<Frame> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CORNER_PX` is never used
[INFO] [stdout]   --> src/guard.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const CORNER_PX: i32 = 10;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HOLD` is never used
[INFO] [stdout]   --> src/guard.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const HOLD: Duration = Duration::from_millis(500);
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COOLDOWN` is never used
[INFO] [stdout]   --> src/guard.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const COOLDOWN: Duration = Duration::from_secs(30);
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EstopState` is never constructed
[INFO] [stdout]   --> src/guard.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct EstopState {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `step` is never used
[INFO] [stdout]   --> src/guard.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl EstopState {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 51 |     /// Advance one tick. Returns whether the stop is engaged afterwards.
[INFO] [stdout] 52 |     pub fn step(&mut self, now_ms: u64, tick_ms: u64, in_corner: bool) -> bool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TEXT_UNITS` is never used
[INFO] [stdout]    --> src/input.rs:169:11
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub const MAX_TEXT_UNITS: usize = 2048;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_BACK` is never used
[INFO] [stdout]   --> src/keys.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const VK_BACK: u16 = 0x08;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_TAB` is never used
[INFO] [stdout]   --> src/keys.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const VK_TAB: u16 = 0x09;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_RETURN` is never used
[INFO] [stdout]   --> src/keys.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const VK_RETURN: u16 = 0x0D;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_ESCAPE` is never used
[INFO] [stdout]   --> src/keys.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const VK_ESCAPE: u16 = 0x1B;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_SPACE` is never used
[INFO] [stdout]   --> src/keys.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const VK_SPACE: u16 = 0x20;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_PRIOR` is never used
[INFO] [stdout]   --> src/keys.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const VK_PRIOR: u16 = 0x21; // Page Up
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_NEXT` is never used
[INFO] [stdout]   --> src/keys.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const VK_NEXT: u16 = 0x22; // Page Down
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_END` is never used
[INFO] [stdout]   --> src/keys.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const VK_END: u16 = 0x23;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_HOME` is never used
[INFO] [stdout]   --> src/keys.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const VK_HOME: u16 = 0x24;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_LEFT` is never used
[INFO] [stdout]   --> src/keys.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const VK_LEFT: u16 = 0x25;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_UP` is never used
[INFO] [stdout]   --> src/keys.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const VK_UP: u16 = 0x26;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_RIGHT` is never used
[INFO] [stdout]   --> src/keys.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const VK_RIGHT: u16 = 0x27;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_DOWN` is never used
[INFO] [stdout]   --> src/keys.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const VK_DOWN: u16 = 0x28;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_DELETE` is never used
[INFO] [stdout]   --> src/keys.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const VK_DELETE: u16 = 0x2E;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_OEM_PLUS` is never used
[INFO] [stdout]   --> src/keys.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const VK_OEM_PLUS: u16 = 0xBB;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_OEM_MINUS` is never used
[INFO] [stdout]   --> src/keys.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const VK_OEM_MINUS: u16 = 0xBD;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VK_F1` is never used
[INFO] [stdout]   --> src/keys.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const VK_F1: u16 = 0x70;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chord` is never constructed
[INFO] [stdout]   --> src/keys.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Chord {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `named` is never used
[INFO] [stdout]   --> src/keys.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn named(k: &str) -> Option<u16> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_chord` is never used
[INFO] [stdout]    --> src/keys.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn parse_chord(spec: &str) -> Result<Chord> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/keys.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn parse(spec: &str) -> Result<Vec<Chord>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `HmacSha256` is never used
[INFO] [stdout]   --> src/lease.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | type HmacSha256 = Hmac<Sha256>;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scope` is never constructed
[INFO] [stdout]   --> src/lease.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Scope {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `expired`, `encode`, and `decode` are never used
[INFO] [stdout]   --> src/lease.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl Scope {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 52 |     pub fn expired(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn encode(&self, key: &[u8]) -> Result<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn decode(token: &str, key: &[u8]) -> Result<Scope> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now` is never used
[INFO] [stdout]   --> src/lease.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn now() -> u64 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fold_confusables` is never used
[INFO] [stdout]   --> src/ocr.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn fold_confusables(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matches_text` is never used
[INFO] [stdout]   --> src/ocr.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) fn matches_text(haystack: &str, needle: &str) -> Option<MatchTier> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/ocr.rs:97:9
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub struct FindArgs<'a> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout]  97 |     pub query: Option<&'a str>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]  98 |     pub max_matches: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub hwnd: Option<isize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub scale: f32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub image: Option<&'a std::path::Path>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 110 |     /// Pixel preparation before recognition.
[INFO] [stdout] 111 |     pub prep: crate::capture::Prep,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub lang: Option<&'a str>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Confusable` is never constructed
[INFO] [stdout]   --> src/text.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum MatchTier {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Confusable,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MatchTier` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_tier` is never used
[INFO] [stdout]    --> src/text.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn contains_tier(haystack: &str, needle: &str) -> Option<MatchTier> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hwnd`, `max_depth`, `max_elements`, `ttl_secs`, `filter`, and `verbose` are never read
[INFO] [stdout]    --> src/uia/mod.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct DiscoverArgs {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 138 |     pub hwnd: Option<isize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 139 |     pub max_depth: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 140 |     pub max_elements: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 141 |     pub ttl_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 142 |     pub filter: Filter,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 143 |     pub verbose: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scope`, `select`, `path`, `action`, and `value` are never read
[INFO] [stdout]    --> src/uia/mod.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct ActArgs {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 272 |     pub scope: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub select: Option<Selector>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub path: Vec<u32>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 279 |     pub action: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 280 |     pub value: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/uia/mod.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[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] 303 -     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stdout] 303 +     ListWindows(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/uia/mod.rs:304:14
[INFO] [stdout]     |
[INFO] [stdout] 304 |     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 304 -     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stdout] 304 +     Discover((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/uia/mod.rs:305:9
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stdout]     |     --- ^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 305 -     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stdout] 305 +     Act((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lease_key` is never read
[INFO] [stdout]    --> src/uia/mod.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct EngineConfig {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 317 |     pub lease_key: Vec<u8>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 27s
[INFO] running `Command { std: "docker" "inspect" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling wincrust v0.7.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `encode_png_scaled` is never used
[INFO] [stdout]    --> src/capture.rs:543:8
[INFO] [stdout]     |
[INFO] [stdout] 543 | pub fn encode_png_scaled(f: &Frame, scale: f32, prep: Prep) -> Result<(Vec<u8>, f32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_gray` is never used
[INFO] [stdout]    --> src/capture.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn to_gray(img: &image::RgbImage) -> image::GrayImage {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `otsu_threshold` is never used
[INFO] [stdout]    --> src/capture.rs:637:4
[INFO] [stdout]     |
[INFO] [stdout] 637 | fn otsu_threshold(g: &image::GrayImage) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preprocess` is never used
[INFO] [stdout]    --> src/capture.rs:670:4
[INFO] [stdout]     |
[INFO] [stdout] 670 | fn preprocess(img: image::RgbImage, prep: Prep) -> image::RgbImage {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frame_from_png` is never used
[INFO] [stdout]    --> src/capture.rs:704:8
[INFO] [stdout]     |
[INFO] [stdout] 704 | pub fn frame_from_png(path: &std::path::Path) -> Result<Frame> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CORNER_PX` is never used
[INFO] [stdout]   --> src/guard.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const CORNER_PX: i32 = 10;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/ocr.rs:97:9
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub struct FindArgs<'a> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout]  97 |     pub query: Option<&'a str>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]  98 |     pub max_matches: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub hwnd: Option<isize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub scale: f32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub image: Option<&'a std::path::Path>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 110 |     /// Pixel preparation before recognition.
[INFO] [stdout] 111 |     pub prep: crate::capture::Prep,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub lang: Option<&'a str>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `hwnd`, `max_depth`, `max_elements`, `ttl_secs`, `filter`, and `verbose` are never read
[INFO] [stdout]    --> src/uia/mod.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct DiscoverArgs {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 138 |     pub hwnd: Option<isize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 139 |     pub max_depth: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 140 |     pub max_elements: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 141 |     pub ttl_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 142 |     pub filter: Filter,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 143 |     pub verbose: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scope`, `select`, `path`, `action`, and `value` are never read
[INFO] [stdout]    --> src/uia/mod.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct ActArgs {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 272 |     pub scope: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub select: Option<Selector>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub path: Vec<u32>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 279 |     pub action: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 280 |     pub value: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/uia/mod.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[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] 303 -     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stdout] 303 +     ListWindows(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/uia/mod.rs:304:14
[INFO] [stdout]     |
[INFO] [stdout] 304 |     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 304 -     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stdout] 304 +     Discover((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/uia/mod.rs:305:9
[INFO] [stdout]     |
[INFO] [stdout] 305 |     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stdout]     |     --- ^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 305 -     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stdout] 305 +     Act((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lease_key` is never read
[INFO] [stdout]    --> src/uia/mod.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct EngineConfig {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 317 |     pub lease_key: Vec<u8>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.38s
[INFO] running `Command { std: "docker" "inspect" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `encode_png_scaled` is never used
[INFO] [stderr]    --> src/capture.rs:543:8
[INFO] [stderr]     |
[INFO] [stderr] 543 | pub fn encode_png_scaled(f: &Frame, scale: f32, prep: Prep) -> Result<(Vec<u8>, f32)> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_gray` is never used
[INFO] [stderr]    --> src/capture.rs:631:4
[INFO] [stderr]     |
[INFO] [stderr] 631 | fn to_gray(img: &image::RgbImage) -> image::GrayImage {
[INFO] [stderr]     |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `otsu_threshold` is never used
[INFO] [stderr]    --> src/capture.rs:637:4
[INFO] [stderr]     |
[INFO] [stderr] 637 | fn otsu_threshold(g: &image::GrayImage) -> u8 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `preprocess` is never used
[INFO] [stderr]    --> src/capture.rs:670:4
[INFO] [stderr]     |
[INFO] [stderr] 670 | fn preprocess(img: image::RgbImage, prep: Prep) -> image::RgbImage {
[INFO] [stderr]     |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `frame_from_png` is never used
[INFO] [stderr]    --> src/capture.rs:704:8
[INFO] [stderr]     |
[INFO] [stderr] 704 | pub fn frame_from_png(path: &std::path::Path) -> Result<Frame> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CORNER_PX` is never used
[INFO] [stderr]   --> src/guard.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const CORNER_PX: i32 = 10;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/ocr.rs:97:9
[INFO] [stderr]     |
[INFO] [stderr]  96 | pub struct FindArgs<'a> {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr]  97 |     pub query: Option<&'a str>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]  98 |     pub max_matches: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub hwnd: Option<isize>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub scale: f32,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub image: Option<&'a std::path::Path>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 110 |     /// Pixel preparation before recognition.
[INFO] [stderr] 111 |     pub prep: crate::capture::Prep,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub lang: Option<&'a str>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `hwnd`, `max_depth`, `max_elements`, `ttl_secs`, `filter`, and `verbose` are never read
[INFO] [stderr]    --> src/uia/mod.rs:138:9
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct DiscoverArgs {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 138 |     pub hwnd: Option<isize>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 139 |     pub max_depth: u32,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 140 |     pub max_elements: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 141 |     pub ttl_secs: u64,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 142 |     pub filter: Filter,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 143 |     pub verbose: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `scope`, `select`, `path`, `action`, and `value` are never read
[INFO] [stderr]    --> src/uia/mod.rs:272:9
[INFO] [stderr]     |
[INFO] [stderr] 271 | pub struct ActArgs {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] 272 |     pub scope: String,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 275 |     pub select: Option<Selector>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 278 |     pub path: Vec<u32>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 279 |     pub action: String,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 280 |     pub value: Option<String>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/uia/mod.rs:303:17
[INFO] [stderr]     |
[INFO] [stderr] 303 |     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stderr]     |     ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 303 -     ListWindows(oneshot::Sender<Result<Vec<WindowInfo>>>),
[INFO] [stderr] 303 +     ListWindows(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]    --> src/uia/mod.rs:304:14
[INFO] [stderr]     |
[INFO] [stderr] 304 |     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stderr]     |     -------- ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]     |
[INFO] [stderr] 304 -     Discover(DiscoverArgs, oneshot::Sender<Result<Discovery>>),
[INFO] [stderr] 304 +     Discover((), ()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]    --> src/uia/mod.rs:305:9
[INFO] [stderr]     |
[INFO] [stderr] 305 |     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stderr]     |     --- ^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     fields in this variant
[INFO] [stderr]     |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]     |
[INFO] [stderr] 305 -     Act(ActArgs, oneshot::Sender<Result<ActResult>>),
[INFO] [stderr] 305 +     Act((), ()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `lease_key` is never read
[INFO] [stderr]    --> src/uia/mod.rs:317:9
[INFO] [stderr]     |
[INFO] [stderr] 316 | pub struct EngineConfig {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] 317 |     pub lease_key: Vec<u8>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `wincrust` (bin "wincrust" test) generated 13 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/wincrust/d5cd2f9d3804e3b8/out/wincrust-d5cd2f9d3804e3b8)
[INFO] [stdout] 
[INFO] [stdout] running 77 tests
[INFO] [stdout] test capture::tests::one_changed_pixel_yields_a_tight_box ... ok
[INFO] [stdout] test capture::tests::a_resize_counts_as_a_full_change ... ok
[INFO] [stdout] test capture::tests::crop_clamps_at_the_frame_edge ... ok
[INFO] [stdout] test capture::tests::crop_extracts_the_requested_region ... ok
[INFO] [stdout] test capture::tests::crop_carries_the_screen_origin ... ok
[INFO] [stdout] test guard::tests::empty_allowlist_permits_nothing ... ok
[INFO] [stdout] test guard::tests::allowlist_ignores_comments_and_blanks_and_folds_case ... ok
[INFO] [stdout] test capture::tests::scattered_changes_produce_a_hull_far_larger_than_the_change ... ok
[INFO] [stdout] test guard::tests::estop_cooldown_restarts_if_the_cursor_returns ... ok
[INFO] [stdout] test guard::tests::estop_requires_the_full_hold ... ok
[INFO] [stdout] test capture::tests::sub_tolerance_change_is_not_a_change ... ok
[INFO] [stdout] test input::tests::handles_a_negative_origin_on_the_y_axis ... ok
[INFO] [stdout] test guard::tests::estop_resets_the_hold_when_the_cursor_leaves ... ok
[INFO] [stdout] test input::tests::a_run_of_text_is_capped ... ok
[INFO] [stdout] test input::tests::empty_text_is_refused_rather_than_sent_as_nothing ... ok
[INFO] [stdout] test guard::tests::estop_stays_latched_through_the_cooldown_then_releases ... ok
[INFO] [stdout] test input::tests::survives_a_one_pixel_span ... ok
[INFO] [stdout] test input::tests::punctuation_that_no_vk_code_could_carry ... ok
[INFO] [stdout] test input::tests::handles_a_negative_virtual_origin ... ok
[INFO] [stdout] test input::tests::is_monotonic_across_the_span ... ok
[INFO] [stdout] test input::tests::maps_the_span_to_the_full_range ... ok
[INFO] [stdout] test keys::tests::a_run_of_keystrokes_is_capped ... ok
[INFO] [stdout] test keys::tests::a_trailing_plus_is_the_plus_key_not_a_dangling_separator ... ok
[INFO] [stdout] test keys::tests::an_empty_segment_inside_the_modifiers_is_still_refused ... ok
[INFO] [stdout] test keys::tests::function_keys_are_contiguous ... ok
[INFO] [stdout] test keys::tests::modifiers_are_reported_for_press_and_release ... ok
[INFO] [stdout] test keys::tests::modifiers_combine ... ok
[INFO] [stdout] test keys::tests::names_are_case_insensitive_and_aliased ... ok
[INFO] [stdout] test keys::tests::nonsense_is_refused_rather_than_guessed ... ok
[INFO] [stdout] test keys::tests::sequences_preserve_order ... ok
[INFO] [stdout] test keys::tests::path_punctuation_is_refused_but_points_somewhere ... ok
[INFO] [stdout] test keys::tests::single_characters_map_to_their_own_code ... ok
[INFO] [stdout] test keys::tests::the_case_that_forced_a_sendkeys_fallback ... ok
[INFO] [stdout] test lease::tests::rejects_a_tampered_payload ... ok
[INFO] [stdout] test lease::tests::rejects_an_expired_scope ... ok
[INFO] [stdout] test lease::tests::round_trips ... ok
[INFO] [stdout] test ocr::tests::does_not_match_unrelated_text ... ok
[INFO] [stdout] test lease::tests::rejects_a_different_key ... ok
[INFO] [stdout] test ocr::tests::exact_matching_still_works ... ok
[INFO] [stdout] test lease::tests::rejects_a_tampered_signature ... ok
[INFO] [stdout] test ocr::tests::folds_glyphs_ocr_cannot_separate ... ok
[INFO] [stdout] test ocr::tests::matches_through_a_digit_letter_confusion ... ok
[INFO] [stdout] test lease::tests::rejects_malformed_tokens ... ok
[INFO] [stdout] test server::host_tests::an_empty_default_stays_empty ... ok
[INFO] [stdout] test lease::tests::signature_is_truncated_to_128_bits ... ok
[INFO] [stdout] test server::host_tests::a_tailscale_bind_becomes_reachable ... ok
[INFO] [stdout] test server::host_tests::an_already_bracketed_ipv6_host_is_not_double_bracketed ... ok
[INFO] [stdout] test server::host_tests::an_ipv6_bind_is_bracketed_so_the_port_entry_is_not_dead ... ok
[INFO] [stdout] test server::host_tests::an_unlisted_host_is_rejected_by_the_same_matching ... ok
[INFO] [stdout] test server::host_tests::loopback_still_works_and_is_not_duplicated ... ok
[INFO] [stdout] test text::tests::a_doubled_ampersand_is_a_literal_one ... ok
[INFO] [stdout] test text::tests::a_parenthesised_digit_is_content_not_a_mnemonic ... ok
[INFO] [stdout] test text::tests::ambiguity_within_one_tier_is_preserved ... ok
[INFO] [stdout] test text::tests::full_width_latin_matches_half_width ... ok
[INFO] [stdout] test text::tests::german_umlaut_folds_where_ascii_case_folding_could_not ... ok
[INFO] [stdout] test text::tests::japanese_menu_matches_without_its_mnemonic ... ok
[INFO] [stdout] test text::tests::keep_best_tolerates_an_empty_search ... ok
[INFO] [stdout] test text::tests::non_breaking_and_ideographic_spaces_collapse ... ok
[INFO] [stdout] test text::tests::ocr_substring_matches_across_case_and_composition ... ok
[INFO] [stdout] test text::tests::ocr_substring_rejects_an_empty_needle ... ok
[INFO] [stdout] test text::tests::stacked_decoration_peels_completely ... ok
[INFO] [stdout] test text::tests::tiers_order_from_tightest_to_loosest ... ok
[INFO] [stdout] test text::tests::vietnamese_matches_across_nfd_and_nfc ... ok
[INFO] [stdout] test text::tests::whitespace_only_differences_are_exact_after_trim ... ok
[INFO] [stdout] test text::tests::zero_width_characters_are_dropped ... ok
[INFO] [stdout] test uia::selector_tests::describes_every_field_it_was_given ... ok
[INFO] [stdout] test uia::selector_tests::describes_only_what_was_set ... ok
[INFO] [stdout] test uia::wait_match_tests::an_empty_selector_matches_anything ... ok
[INFO] [stdout] test uia::wait_match_tests::automation_id_is_exact_and_case_sensitive ... ok
[INFO] [stdout] test uia::wait_match_tests::every_named_field_must_match ... ok
[INFO] [stdout] test uia::wait_match_tests::it_uses_the_same_locale_ladder_as_act ... ok
[INFO] [stdout] test text::tests::decoration_alone_does_not_match_everything ... ok
[INFO] [stdout] test text::tests::distinct_labels_stay_distinct ... ok
[INFO] [stdout] test capture::tests::identical_frames_report_no_change ... ok
[INFO] [stdout] test input::tests::an_astral_character_becomes_a_surrogate_pair ... ok
[INFO] [stdout] test text::tests::an_exact_match_suppresses_every_lenient_one ... ok
[INFO] [stdout] test uia::selector_tests::empty_selector_is_recognised ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 77 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277", kill_on_drop: false }`
[INFO] [stdout] 3add6397e96f857f9f392fd3902e78f610dd95f45ec88656b9c47b791fbde277
